Вход/Регистрация
Maple 9.5/10 в математике, физике и образовании
вернуться

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

Шрифт:

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

  • Читать дальше
  • 1
  • ...
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: