Чтение онлайн

ЖАНРЫ

Maple 9.5/10 в математике, физике и образовании

Дьяконов Владимир Павлович

Шрифт:

9.4.8. Пакет средств симметрии Ли — liesymm

В этом пакете, являющемся реализацией алгоритма Харрисона-Эстабрука, имеется ряд функций, список которых выводит команда:

> with(liesymm);

Эти функции достаточно специфичны и могу пригодится лишь узким специалистам. Детали применения пакета можно найти в справке по нему.

9.4.9. Пакет команд для решения уравнений SolveTools

Пакет команд с весьма многообещающим названием SolveTools на самом деле содержит вовсе не средства для решения уравнений, а несколько весьма специфических

функций:

> with(SolveTools);

[Basis, CancelInverses, Combine, Complexity, GreaterComplexity, Linear, RationalCoefficients, SortByComplexity]

Они позволяют найти базис выражений, дескрипторы и рациональные коэффициенты. Примеры применения этого пакета очень просты и с ними несложно ознакомиться по справке.

9.4.10. Пакет для работы с таблицами — Spread

Загрузка этого пакета командой

> with(Spread);

дает средства для работы с таблицами. Функции пакета не имеют самостоятельного значения и призваны поддерживать работу с электронными таблицами, которая уже была подробно описана. Они дают такие средства, как создание в документе шаблона таблиц, проведение операций по заполнению и редактированию ячеек таблиц, копированию содержимого таблиц в буфер памяти и т.д.

9.4.11. Пакет линейных операторов LinearOperators

Пакет линейных операторов LinearOperators — новый пакет, содержащий средства для работы с линейными операторами. Состав пакета можно увидеть после его вызова командой:

> with(LinearOperators);

Набор функций пакета достаточно представителен. Но, поскольку область применения пакета весьма специфична, рекомендуется знакомиться с его возможностями по справке.

9.4.12. Пакет для работы с массивами ArrayTools

Для упрощения работы с массивами в Maple 9 был введен пакет ArrawTools (файл at):

> with(ArrayTools);

[Alias, ComplexAsFloat, Copy, DataTranspose, Fill]

Он вводит всего пять новых функций. Примеры их применения, взятые из справки по пакету, представлены ниже:

Создание вектора-строки

> М := Vector[row](10,i->i);

М := [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Дублирование первых 5 элементов в следующих 5 элементах

> Copy(5,М,М,5), М;

[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]

Очистка каждого второго элемента

> Fill(0,М,1,2), М;

[1, 0, 3, 0, 5, 0, 2, 0, 4, 0]

Формирование матрицы 2×5

> Alias(М, [2,5], С_order)

Создание матрицы с комплексными элементами

> М := Matrix(2,3,(i,j)->i+I*j, datatype=complex[8], order=C_order);

Создание «двойной» матрицы с элементами в формате плавающей точки

> 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

Поделиться с друзьями: