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

ЖАНРЫ

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

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

Шрифт:
x+1

> psqrt(x+y);

_NOSQRT

> proot(x+y, 2);

_ NOROOT

> р:=х^3-3*х^2+5*х-10;

p:=x³ - 3x² + 5x - 10

> discrim(p,x);

– 1355

> readlib(realroot):

> realroot(p);

[[0, 4]]

> randpoly([x],degree=10);

63x10 + 57x8– 59x5 + 45x4– 8x3– 93

> randpoly([x],degree=10);

– 5x9 + 99x8– 61x6– 50x5– 12x3– 18x

> randpoly([x],degree=10);

41x9– 58x8– 90x7 + 53x6– x4 + 94x

> Primitive(х^4+х+1) mod 2;

true

Обратите

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

С полиномами можно выполнять обычные операции, используя для этого соответствующие операторы:

> readlib(psqrt):

> readlib(proot):

> Primitive(х^4+х+1) mod 2;

true

> p1:=a1*x^3+b1*x^2+c1*x+d1: p2:=а2*х^2+b2*х+с2:

> p1+p2;

a1х³ + b1х² + c1x + d1 + a2x² + b2х + с2

> p1*p2;

(a1x³ + b1x² + c1x + d1) + (a2x² + b2х + с2)

> collect(%,х);

a1a2x5 + (b1а2 + а1b2)х4 + (c1a2 + b1b2 + а1с2)х3 + (d1a2 + c1b2 + b1с2)х2 + (d1b2 + c1c2)x + d1c2

> p1/p2;

> expand(%,х);

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

> diff(p1, х);

3а1х² + 2b1х + c1

> diff(p1, x$2);

6a1x + 2b1

> Int(p1,x)=int(p1,x);

> Int(p1,х=0..1)=int(p1,х=0..1);

5.3.9. Операции над степенными многочленами с отрицательными степенями

Хотя в подавляющем большинстве случаев используются степенные многочлены (полиномы) с положительными степенями, Maple не накладывает особых ограничений и на многочлены с отрицательными степенями. Например, можно задать такой степенной многочлен:

> pp:=а*х^(-2)+b*x^(-1)+c*x+d+e*x^2+f*х^3;

Нетрудно

показать, что с ним можно выполнять различные операции:

> рр+рр;

> рр-рр;

0

> pp^2

> simplify(%);

> Diff(pp, x)=diff(pp, x)

> Int(pp,x);

> int(рр,х);

Хотя Maple и не накладывает ограничений на применение степенных многочленов (полиномов) с отрицательными степенями свойства таких полиномов заметно отличаются от свойств полиномов с положительными степенями, поэтому при применении первых надо проявлять известную осторожность.

5.4. Работа с ортогональными полиномами

5.4.1. Состав пакета orthopoly

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

В пакете orthopoly системы Maple 9.5 задано 6 функций:

> with(orthopoly);

[G, Н, L, Р, Т, U]

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

Отметим определения указанных функций:

G(n,a,x) — полином Гегенбауэра (из семейства ультрасферических полиномов);

H(n,x) — полином Эрмита;

L(n,x) — полином Лагерра;

L(n,a,x) — обобщенный полином Лагерра;

P(n,x) — полином Лежандра;

P(n,a,b,x) — полином Якоби;

T(n,x) — обобщенный полином Чебышева первого рода;

U(n,x) — обобщенный полином Чебышева второго рода.

Свойства ортогональных многочленов хорошо известны. Все они характеризуются целочисленным порядком n, аргументом х и иногда дополнительными параметрами а и b. Существуют простые рекуррентные формулы, позволяющие найти полином n-го порядка по значению полинома (n-1)-го порядка. Эти формулы и используются для вычисления полиномов высшего порядка.

5.4.2. Вычисление ортогональных полиномов

Ниже представлены примеры вычисления ортогональных полиномов (файл orthpol):

> G(0, 1, х);

1

> G(1, 1, х);

> G(1, 1, 5);

10

> Н(3, х);

8x³ - 12х

> L(3, х);

> L(2, а, х);

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