Купить Matlab  |  Mathematica  |  Mathcad  |  Maple  |  Statistica  |  Другие пакеты Поиск по сайту
Internet-класс  |  Примеры  |  Методики  |  Форум  |  Download
https://hub.exponenta.ru/


Программирование в среде Maple


В начало книги

 

Предметный указатель

Программирование свойств и правил вычисления функций и операторов. Команда define
К предыдущему разделуК следующему разделу

Команда define задает свойства оператора или функции.

Команду define можно применять тремя различными способами.

Способ 1

Можно определить оператор, как принадлежащий некоторому абстрактному алгебраическому пространству aa командой define ( aa (оператор)) ( в настоящее время программа позволяет определять пространство aa как линейное ( aa = Linear ) или как группу ( aa = Groop ).

Например введем оператор H как линейный

> define(h,linear,h(1)=1);

Если мы воздействуем этим оператором на некоторую функцию, скажем многочлен 2*x+3*x^2, то получим

> h(2*x+3*x^2);

[Maple Math]

То есть мы видим, что выражения, содержащие этот оператор упрощаются. Это не случайный факт, при задании оператора командой define автоматически создаются входы для таких команд, как simplify , eval , expand , diff , series , и testeq так, чтобы осуществить необходимые свойства оператора.

Если абстрактное алгебраическое поле - группа, то команда define записывается следующим образом

define (Group(Имя оператора, Единица, Оператор обращения)), где

Имя оператора - Имя бинарного оператора, определяемого на группе
Единица - Символ единицы (единичного элемента) группы
Оператор обращения - унарный оператор, который вычисляет обратный элемент для любого элемента группы. При такой записи команда define задает оператор над группой, тем самым задавая правила вычислений, преобразований и упрощений этого оператора.

Свойства группы:

Замкнутость
Ассоциативность
Единичный оператор действует как слева так и справа.
Оператор обращения - унарный оператор.

Приведем пример

define(E,algebraic,E(1)=0);

> z &+ E;

[Maple Math]

> &- (&- a);

[Maple Math]

> a &+ (&- a);

[Maple Math]

Способ 2

Можно определить оператор заданием некоторых свойств. В этом случае команду define нужно применять в следующей записи

define (оператор, свойство1, свойство2, ...), где свойство.i - наименование свойства оператора

Операторы могут использоваться в инфиксной нотации (&-имена):
a &+ b; a &* b &* c; &A x

или в функциональной нотации (любое имя):
Op(a,b); Op(a); Op(a,b,c)

В настоящее время Maple позволяет задавать следующие свойства:

unary ; - свойство унарности оператора.

binary ; свойство бинарности.

associative ; свойство ассоциативности: f(x,f(y,z)) = f(f(x,y),z) = f(x,y,z).

commutative или symmetric ; свойство коммутативности (симметричности): f(x,y) = f(y,x).

antisymmetric ; свойство антисимметричности: f(x,y) = -f(y,x).

inverse =g; Определяет обратный (для унарного) оператор к оператору g.

identity =x; Выражение x, примененное к оператору f как слева так и справа дает единичный оператор

zero =x; определяет x как нулевой элемент оператора f, так что если любой аргумент f есть x tто результат также x.

Приведем пример

define(`&A`, associative, commutative, identity=0, zero=y);

> x &A (t &A z) &A (0 &A x);t &A z;0 &A x;x &A (t &A z);

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

>define(f, commutative, associative, inverse=g);

Warning: new definition for f

> f( g(x), x,y);

[Maple Math]

> f( g(x),f(x));

[Maple Math]

> f( g(x), z, f(x,y), y );

[Maple Math]

Способ 3

Можно задать конкретные правила выполнения оператора при помощи уравнений. В этом случае команда define записывается следующим образом

define (F, forall ( переменные , F( аргумент1 )= результат1 , F( аргумент2 )= результат2 , ...)

где

переменные - имя или имя с присвоенным типом, или список имен
F - имя определяемого при помощи команды defined оператора
аргументы.i - аргументы, с которыми данный оператор будет использоваться
результаты.i - программированные результаты применения F(аргументы.i)

Выражение forall () - необходимый аргумент команды define , который обеспечивает назначение свойств оператору..

Соотношение F( аргументы.i )=результаты.i вынуждает оператор выдавать результаты.i каждый раз, когда он получает аргументы.i . Заданные в команде переменные используются как сравниваемые аргументы, которые могут иметь любое значение. Замена затем будет выполнена для всех таких значений.

Имена переменных должны появляться строго один раз в аргументы.i. Параметр переменные может быть именем или списком имен, в этом случае эти имена могут сравниваться с любым выражением. Если имена приведены в форме тип(имя) , где тип является одним из имеющих силу типов и имя - некоторое имя, то имя будет сравниваться только в случае, если оно имеет указанный тип.

Приведем примеры.

> restart;define(F,forall([n,x],F(x^n)=n*F(x)),F(sin(x))=exp(x+b));

> F(sin(x)^3.5)+F(1/sin(x));

[Maple Math]

В начало страницы К предыдущему разделуК следующему разделу

Предметный указатель

| На первую страницу | Поиск | Купить Matlab

Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter


Copyright © 1993-2024. Компания Softline. Все права защищены.

Дата последнего обновления информации на сайте: 04.03.17
Сайт начал работу 01.09.00