Говорухин В., Цибулин Б. Компьютер в математическом исследовании (1185927), страница 47
Текст из файла (страница 47)
Пример преобразования тестового документа (см. рис. 9.1) в КТГ- документ дан на рис. 9.3. Начиная с версии 5.1 в Мар1е появилась функция перекодировки рабочих документов в НТМ1.-формат (Нурег Техт Маг!(цр (апятзаяе Гогшас). Эта возможность позволяет использовать Мар1е и как среду автоматической разработки математических электронных публикаций. Поскольку последние версии М!стево(с Жогс( поддер- 248 Глава р. Мар1е и другие программы живают НТМ1.-формат, то это предоставляет еще одну возможность автоматического преобразования Мар!е-документов в текстовые документы алого!.
В результате преобразования по умолчанию создается основной файл с расширением .пгю1и именем, совпадающим с именем Мар!е-документа, который должен загружаться прогрйммами, поддерживающими фреймы, например Тх1еьзсаре илн М!сгоээГЬ Ехр1огег.
Кроме того, создается ряд дополнительных НТМ1-файлов и файлы с рисунками, причем все формулы и рисунки преобразуются в растровые графические файлы формата б1Р. Все эти файлы имеют имена с номерами. В основном файле содержатся ссылки на дополнительные НТМ1.-файлы. Перед конвертацией появляется диалоговое окно, в котором предлагается выбрать имя каталога для размещения графических файлов и можно отказаться от использования фреймов.
Ниже приведен текст основного НТМ1.-файла с поддержкой фреймов для нашего примера; <ПСв1> <Пело> <С>Ь1е>1агех>ого.пгв1</СЬС1е> <!- Сгеасес Ьу Мар1е б. !ВМ 1ИТЕС ИТ -> </пело> <Ьаее/опт егхе=з> <Ггавееег со1э-"25Х.*"> </гаво эгс="1агехиогоТОС.ПСв1" паве-"ТашеОГСопгепге"> </гаво эгс-"1агехиого1.ПСв1" паве="Сопсепг"> <паугевее> Воггу.
СЫ е оосовепг геси1гез Слег уоиг Ьгохеег еоррогт /гавел <а Пгег-"1асев<огс1 Пгв1" Сегдег="Сопгепг">Тше 11пг</а> ю 11 Саге уоо Со а поп-Ггавее ргеэепгаС1оп ог Тле Оосивепг. </поугавеэ> </Ггавезег> </Ьасегопг> <ФСв1> Результат считывания полученного документа программой М1сгозоГТ Ехр1огег дан на рис. 9А. Взаимодействие с МАП.АВ Хотя версия Мар!е 6.0 уже практически ни в чем не уступает другим пакетам при реализации многих операций численного анализа, иногда удобно воспользоваться для проведения вычислений высокоэффективными алгоритмами МАТ|АВ.
Описанию этой системы посвящена вторая часть книги, а здесь мы рассмотрим вызов команд МАТЕАВ иэ сеанса Мар!е и обмен данными между двумя вычислительными средами. Понятно, что это обсуждение полезно только в том случае, если на компьютере правильно установлены оба этих программных продукта. Отметим еше, что в состав МАТ1.АВ может входить библиотека символьных вычислений из ядра Мар! е, что также описано во второй части книги. Воаможиость обмена информацией между двумя вычислительными средами посредством файлов предоставляют команды ввода-вывода нз пакета Мар1е НпеагА!йеЬга (см, главу 5 <Алгебра в Мар1е»), которые обеспечивают АБС1 стандарт записи информации МАТ1.АВ.
Например, если в МАТ1АВ была записана матрица д-[1: 3;4: 51 командой эауе Ш1оеир1теег -езс11 Взаимодействие с МЛТ(ДВ 249 С (огожет рива(Мери Втоввлвегехгмге Вмг( Это пример Мар1е-документа, включающего формулы, поля ввода и вывода Мар1е, а также рисунки, Документ будет нами использован для демонстрации преобразований х) Мар1е-документа в различные форматы. 1агехтагогб.пптз Формула в тексте: ) в(л(х) ат -сов(х) > вшаг(р101(-соа(х)); Середе — Сорго 1 Рис. 9.4.
Тестовый документ в формате НТМС в окне программы М1сговоа1птегпе( Ехр(огег В результате команды из приведенного списка становятся доступны. В случае неправильной установки МАТ1.АВ библиотека найдена не будет и вместо приведенного списка появится сообщение об ошибке. При подключении пакета или при обращении к любой из его команд происходит автоматический запуск программы МАТ1.АВ (см. рис.
9.5). Перечислим в следующих двух таблицах команды пакета Мас(аЬ. В табл.9.2 даны команды, реализующие известные численные методы, причем зги команды автоматически поддерживают обмен данными между двумя программами. В табл. 9.3 даны команды Мар1е, обеспечивающие динамическое взаимодействие Мар1е и МАТ1.АВ. то считать ее в Мар!е можно следующим образом: > С:-1ирогаиасгтх("С;Осевртттевс".воигсв-ВВС1аы: 1 1.0000000 2.0000000 3.00000001 'С4.0000000 5.0000000 6.0000000) Более гибкое и универсальное взаимодействие обеспечивает пакет Мзт(аЬ, который позволяет осуществлять обмен данными между сеансами двух вычислительных сред и обращаться из Мар1е к командам МАТ1.АВ. Пакет нужно подключить командой > ы1си(иа11аы; (сдо1, с!ове!!л(с, с(едлегу, гуег, гу!глене!олх, е(а, ева!М,.(д, аеггаг, иге, !и, ог!е45, орел!!лк, чг, велгаг, Иве, валахе, и алврохе 1 250 Глава'9. Мар1е и другие программы Таблица 9.2.
Математические команды пакета Мат)аЬ Команда Описание Факторизация Холецкого Вычисление определителя матрицы Вычисление собственных значений матрицы Быстрое преобразование Фурье Вычисление обратной матрицы ЬО-разложение матрицы Решение задачи Коши для системы обыкновенных дифференциальных уравнений методом Рунге-Кутты 4-5-го порядка Ой разложение матрицы Транспонирование матрицы спо! лет е)д 1пч 1о обе45 цг тгапзрозе Таблица 9.3.
Команды, обеспечивающие взаимодействие Мар1е и МАТЬАВ Описание Команда Закрытие сеанса МАТ)АВ Проверка существования переменных в сеансе МАТ!АВ Вычисление размеров матрицы с использованием команды Мар1е Выполнение любого выражения МАТ)АВ в его сеансе Передача значения переменной или массива из сеанса МАТЬАВ в сеанс Мар1е Открытие сеанса МАТЮКАВ Передача значения переменной или массива из сеанса Мар)е в сеанс МАТ)АВ Вычисление размеров матрицы с использованием команды МАТ)АВ Проверна квадратности матрицы с1оэе1 э ох Пет1пед д1пеп51опэ еча!М детчаг ореп11пк эесчвг юге зцоаге Проиллюстрируем взаимодействие двух вычислительных сред и использование некоторых перечисленных команд. Определим случайную числовую матрицу при помощи команды пакета Ила!9: > А:-11па191гапамтг1х)(35,35): Теперь с помощью команды пакета Иас!аЬ вычислим ее собственные числа > еч:-е191А): Полученные собственные значения из,переменной еч передадим в сеанс МАТТ.АВ, определив в нем для этого одноименную переменную.
Переменная МАТ!.АВ ука- зывается в кавычках в качестве первого параметра команды зесчаг, а в качестве второго ее параметра выступает переменная сеанса Мар!е: > зетчагГеч",еч); Теперь выполним команду МАТ!.АВ построения графика, указав ее в двойных кавычках в качестве параметра команды еч а1 М: > еча1КГр!ос(вч.'ко')"):, Взаимодействие с МАТ[АВ 251 В результате появляется графическое окно МАТ[.АВ с изображением собствен- ных значений (см. рис. 9.5).
Теперь в среде МАТ[.АВ определим массив х; > ета)М("х-1:0.1:10"): Следующие две команды проверяют существование переменных х и А в сеансе МАТ[.АВ: > Оеттпеж "х"): дегтпеб("А"): и'нс уа)зе гаа«1 о о о о оо > Хт: с ° ХЫ..З,1..З): Ф%, Гох 1 стаи 1 Во З Ео Хт)1;>л)жт о о О 1 а 1о -0.5 Рис. 9.$. Окна при вазове команд МАТ[АВ из Мар1е. Нааарху слева изобрамен фрагмент командного окна МАТ[АВ, наверху справа — графическое окно МАТ[АВ, а внизу — окно Мар)е Теперь определим переменную Мар[е х и передадим ей содержимое массива х из сеанса МАТ[.АВ.
Имя переменных МАТ)[АВ должно быть указано в двойных кавычках в качестве параметра команды дестаг: > х: деттагГх"): 91 Беюепт Кон Тгесвк Т)еса Туре: ноас[8[ ж Зюпгзе: гестапзп)аг СЫег: ропгап оп)ег Следующая команда выведет размерность массива из х сеанса МАТ[.АВ: то еес етагтее, тере оле от тл лг. . е" я тг« ",, бй Рог ргоаоот 1лто ол, тере тфта ~'';у ргг>«го ~В)а))жк«« ,ь«В,~~'-' 1Ф-;, о о а оо о о о о 252 Глава 9.
Мар!е и другие программы > з1зе!"х"); ]:-З[2]: [1,911 Определим двумерный массив ХУ размерности Зх2 и присвоим каждому [1. Ц-му элементу значение х[1], а [1.2]-му — значение функции з)п в этой точке. Затем построим график табулированной функции средствами Мар!е (см. рис. 9.5): > ХУ:-аггау!1.
],!..2): Гог 1 Ггом ! то ) оо Хт[1. Ц:-х[1]: ХУ[1,2]:=«1п!х[1]) оо: > р1омсопчегт!Хт,11зс1тзт).со1огмн ась): Последняя команда примера закрывает сеанс МАТ[.АВ; > с1озе11пм ): Приведенный пример показывает, что взаимодействие двух вычислительных сред реализовано достаточно просто и эффективно, что значительно повышает эффективность их использования в математическом исследовании. Еще один пример совместного применения Мар!е и МАТ[.ЛВ для решения реальной задачи математического моделирования дан в главе 1О «Примеры решения задач».
~абота с Мар1е из среды Ехсе! Если на компъютере установлена программа М!сгозо[! Ехсе! 2000, то к ней можно подключить программу Мар[е 6. Такое подключение происходит автоматически при использовании англоязычной версии ))[г[пс]отче, а для иных версий подключение происходит после открытия файла )ч)п!и) р!ех.х!а (находится в подкаталоге Мар1е Ехсе1) в Ехсе1. После подключения становится возможным вызов из Ехсе! любой команды Мар1е и в меню появится дополнительная кнопочная панель Мар1е (см.
рис. 9.6), В табл. 9А описаны все значки этой панели. Для активизации некоторых команд необходимо подключить соответствующий пакет, обратившись к значку установки параметров Мар1е в Ехсе!. С помощью меню, которое изображено на правой части рис. 9.6, имеется возможность подключения или отключения специализированных пакетов Мар1е либо пакетов, разработанных пользователем. Таблица 9.4. Значки меню Мар!е в Ехсе! Значок Описание Копировать данные из Ехсе! в Мар!е И й Копировать данные из Мар!е в Ехсе! Установка параметров использования Мар!е в Енсе! Подсказка по установленным в Ехсе! функциям Мар!е Подсказка по командам Мар!е и его использованию в среде Ехсе! Обращение к команде пар1 е сова Мар1е осуществляется в Ехсе1 командой нар!е!"кер1е соты") Работа с Мар(е иа среды Ехсе( 253 го =Мер(е("р(ойг](агп(х'у],х=-РЕ,Р(,у=Рг Рг];"] 1 2 Ма (еР(о 3 4 е 2 5 7, 5 8; 10 агавам аг ьпваг орегагом Оге го Оезог оге го меэог Оге 1о Зьй аппгп~гагога арргуорг ОК( агреога огарпка Рагнаре змее(та(](яр Рис.