Ознакомительная версия.
> Mr := ComplexAsFloat(М);
Действие всех функций этого пакета вполне очевидно из приведенных примеров.
9.4.13. Пакет анализа ошибок научных вычислений ScientificErrorAnalysis
В Maple 9 был введен пакет расширения для анализа ошибок научных вычислений. Пакет вызывается командой
> with(ScientificErrorAnalysis);
С возможностями этого пакета можно познакомиться по справке. На Интернет-сайте корпорации MapleSoft можно найти раздел SEAApps с большим числом примеров применения этого пакета, полезного, прежде всего, физикам, занятым обработкой данных физических экспериментов и прогнозом ошибок в научных вычислениях.
9.5. Пакеты расширения системного характера
9.5.1. Пакеты генерации кодов — codegen и CodeGeneration
Пакет codegen представляет собой набор команд, предназначенных для организации взаимодействия системы Maple с другими программными средствами:
> with(codegen);
Warning, the protected name MathML has been redefined and unprotected
[C, GRAD, GRADIENT, HESSIAN, JACOBIAN, MathML, WebEQ, cost, declare, dontreturn, eqn, fortran, horner, intrep2maple, joinprocs, makeglobal, makeparam, makeproc, makevoid, maple2intrep, optimize, packargs, packlocals, packparams, prep2trans, renamevar, split, swapargs ]
Этот пакет очень полезен программистам, занимающимся разработкой сложных программных комплексов. Пакет позволяет создавать процедуры на языке Maple и транслировать их в программные модули, записанные на других языках программирования, таких как Фортран или Си.
В Maple 9 появился пакет генерации кодов — CodeGeneration:
> with(CodeGeneration);
Warning, the name С has been rebound
Warning, the protected name Matlab has been redefined and unprotected
[C, Fortran, IntermediateCode , Java, LanguageDefinition, Matlab, Names, Translate, VisualBasic]
Получение матрицы, элементы которой имеют нулевые действительные части:
> Fill(0,Mr,0,2), М;
Наиболее интересной в новом пакете является поддержка трансляции в коды языков Java, MATLAB и VisualBasiс. Ниже даны примеры трансляции Maple-выражений в codegen):
> х := 'х': s := 's': t := 't': r := 'r':
> cs := [s=1.0+x, t=sin(s)*exp(-x), r=ln(-x)+x/c];
> Matlab(cs);
s = 0.10e1 + x;
t = sin(s) * exp(-x);
r = log(-x) + x / t;
> f := proc(x) local a; if x =1.0 then a := 1.0 else a := sin(x)/x end if; return a; end proc:
VisualBasic(f);
Imports System.Math
Public Module CodeGenerationModule
Public Function f(ByVal x As Double) As Double
Dim a As Double
If (x = 0.10E1) Then
a = 0.10E1
Else
a = Sin(x) /x
End If
Return a
End Function
End Module
Применение этих пакетов имеет важное значение при обеспечении совместной работы различных программных средств.
9.5.2. Пакет создания контекстных меню context
Пакет context служит для создания контекстных меню. Он содержит небольшое число функций:
> with(context);
[buildcontext, clearlabels, defaultcontext, display, installcontext, restoredefault, testactions, troubleshoot]
Этот пакет используется довольно редко и, в основном, пользователями, решающими в среде Maple не вычислительные, а системные задачи. Описание таких задач выходит за рамки данной книги. Множество примеров применения пакета можно найти в справке и в файле context_exmples, который можно найти на Интернет-сайте корпорации MapleSoft.
9.5.3. Пакет организации многопроцессорной работы — process
Этот узкоспециализированный пакет содержит ряд функций по организации работы на нескольких процессорах:
> with(process);
[block, exec, fork, kill, launch, pclose, pipe, popen, wait]
Данные функции представляют интерес для пользователей операционной системой UNIX, так что в проблематику данной книги не входят
9.5.4. Пакет поддержки стандарта MathML
Для представления математической информации на страницах Интернета в последние годы был создан специальный язык MathML. Пока для большинства пользователей MathML просто «экзотика», но так как наряду с XML его поддерживает World Wide Web Consortium, его вынуждены поддерживать все солидные фирмы — причем не только создающие системы компьютерной математики. Среди них такие крупные корпорации, как Intel, IBM и Microsoft. Уже в Maple 7 была предусмотрена новая возможность поддержки стандарта MathML 2.0. Для такой поддержки используется MathML Viewer и пакет MathML.
Пакет MathML дает минимальный набор функций для использования языка MathML:
> with(MathML);
[Export, ExportContent, ExportPresentation, Import, ImportContent]
Первые три функции служат для экспорта выражений:
Export(expr) — преобразует Maple-выражение expr в параллельное MathML-выражение;
ExportContent(expr) — преобразует Maple-выражение expr в MathML-выражение формате содержания;
ExportPresentation(expr) — преобразует Maple-выражение expr в MathML-выражение в формате представления.
Еще две функции служат для импорта строки в формате MathML и его преобразования в Марк-выражение:
Import(mmlstring
и
ImportContent(mmlstring)
Следующий пример наглядно иллюстрирует применение функций пакета расширения MathML для преобразования математического выражения а*х+b вначале в запись на MathML, а затем преобразование этой записи str в Maple-выражение:
> str :=MathML[Export] ( а*х + b );
str := "<math xmlns='http://www.w3.org/1998/Math/MathML'><semantics><mrow xref='id1'><mo
>⁢</mo><mi xref='id2'>x</mi></mrow><mo>+</ mo><mi xref='id4'>b</mi></mrow><annotation-xml encoding='MathML-Content'><apply><
ci id='id '>a</ci><ci id='id2'>x</ci></apply:
apply>
</annotation></semantics></math>"
> Import(str);
ax + b
Этот пример показателен тем, что дает представление о виде записей на языке MathML. Нетрудно заметить, что это достаточно громоздкий язык. Функции, представленные выше, автоматизируют процесс составления записей на языке MathML обычных математических выражений, что делает доступной для обычных пользователей подготовку публикации в Интернете, содержащей математические выражения.
Пакет XMLTools служит для поддержки средств языка XML, широко используемого в Интернете. Этот пакет предоставляет весьма внушительное число функций. Для получения их списка достаточно исполнить команду:
> with(XMLTools);
Рассмотрение этих средств (как и средств поддержки HTML) далеко выходит за пределы тематики данной книги, хотя многие из них достаточно просты.
9.5.6. Пакет StringTools для работы со строками
Для расширенной работы со строками служит пакет StringTools. При исполнении команды:
> with(StringTools);
Выводится весьма внушительный список функций этого пакета. Применительно к математическим расчетам этот пакет расширения находит ограниченное применение. Скорее он нужен для такой «экзотики», как обработка в Maple текстовой информации. В связи с этим ограничимся несколькими примерами применения его функций:
> Char(65);Char(66);Char(70);
"А" "В" "F"
> IsASCII('А');
true
> Reverse(Hello);
"olleH"
Более полно с возможностями пакета можно познакомиться по справке о нем.
9.5.7. Пакет создания внешних программ ExternalCalling
Пакет ExternalCalling служит для создания внешних программ, записанных на языке Maple (или С++). Состав пакета представлен небольшим числом функций:
DefineExternal(fn,extlib) — используя функцию define_external Maple задает внешнюю функцию fn в таблице функций внешних библиотек extlib;
ExternalLibraryName(basename, precision) — задает имя basename функции и точность вычислений precision для функции внешней библиотеки.
Детальное знакомство с этим пакетом мы опускаем. Заинтересованный читатель найдет нужные сведения в справке по этому пакету.
9.5.8. Пакет работы с документами Worksheet
В Maple 9 был введен пакет расширения для работы и подготовки документов — Worksheet вводится командой:
> with(Worksheet);
[Compare, Convert, Display, DisplayFile, FromString, ReadFile, ToString, Writefile, worksheet]
Пакет обеспечивает сравнение документов, различные преобразования их, запись и считывание файлов документов и другие возможности. Детали применения функций пакета можно найти в справке.
9.6. Пакет расширения Student Package
9.6.1. Состав пакета Student Package и его идеология
Одним из самых серьезных усовершенствований системы Maple 9 стал необычный пакет расширения Student Package. Он состоит из трех частей — подпакетов:
• Calculus1 — пакет вычислений с функциями одной переменной для студентов первого курса;
• Linear Algebra — расширенный пакет по линейной алгебре;
• Precalculus — пакет вычислений по стандартному курсу математики.
В принципе, пакет Student Package не имеет чего-либо принципиально нового, по сравнению со средствами математических вычислений, описанными в предшествующих главах. Однако подборка его средств наилучшим образом соответствует задачам обучения студентов вузов. Наряду с со средствами командного режима, новый пакет содержит множество специальных интерактивных панелей (окон) в которых весьма наглядно представлены данные для вычислений и результаты вычислений. Эти панели имеют стандартный вид, так что мы ограничимся только несколькими характерными примерами применения данного пакета.
Ознакомительная версия.