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

> М := 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

 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.

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

Отметить Добавить цитату