Категории
Самые читаемые
onlinekniga.com » Научные и научно-популярные книги » Математика » Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов

Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов

Читать онлайн Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 57 58 59 60 61 62 63 64 65 ... 125
Перейти на страницу:

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

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, а, х);

> Р(2, х);

> Р(2, 1, 1, х);

> Т(5, х);

16х5 - 20х3 + 5х

> U(5, х);

32х5 - 32х3 + 6х

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

> evalf(U(2,2+3*I));

Р(2, 2+3I)

Но уже в Maple 9 ортогональные полиномы с комплексными аргументами могут вычисляться:

> evalf(U(2,2+3*I));

-21. +48.I

Ортогональные многочлены не определены и для дробного показателя n. Впрочем, надо отметить, что такие многочлены на практике используются крайне редко.

5.4.3. Построение графиков ортогональных полиномов

Представляет интерес построение графиков ортогональных многочленов. На рис. 5.6 построены графики ряда многочленов Гегенбауэра и Эрмита. На рис. 5.7 построены графики ортогональных многочленов Лагерра и Лежандра. Наконец на рис. 5.8 даны графики ортогональных многочленов Чебышева T(n, х) и U(n, x).

Рис. 5.6. Графики ортогональных многочленов Гегенбауэра и Эрмита

Рис. 5.7. Графики ортогональных многочленов Лагерра и Лежандра

Рис. 5.8. Графики ортогональных многочленов Чебышева

Приведенные графики дают начальное представление о поведении ортогональных многочленов. К примеру, многочлены Чебышева имеют минимальное отклонение от оси абсцисс в заданном интервале изменения х. Это их свойство объясняет полезное применение таких многочленов при решении задач аппроксимации функций, которые рассматриваются в этой главе далее. Можно порекомендовать читателю по их образцу и подобию построить графики ортогональных многочленов при других значения параметра n и диапазонах изменения аргумента х.

5.4.4. Работа с рядами ортогональных многочленов

Для работы с рядами ортогональных многочленов имеется пакет OrthogonalSeries для работы с рядами ортогональных многочленов. Он имеет довольно представительный набор функций:

> with(OrthogonalSeries);

[Add, ApplyOperator, ChangeBasis, Coefficients, ConvertToSum, Copy, Create, Degree, Derivate, DerivativeRepresentation, Evaluate, GetInfo, Multiply, PolynomialMultiply, ScalarMultiply, SimplifyCoefficients, Truncate]

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

> OrthogonalSeries[Create](u(n),HermiteH(n,x));

В другом примере показано представление полиномиального выражения в новом базисе с ортогональными многочленами Чебышева с помощью функции ChangeBasis:

> OrthogonalSeries[ChangeBasis](1+3*у*х^2+у^3*х,

 ChebyshevT(n,х), ChebyshevU(m, y));

1 + ¾ChebyshevT(2, x) ChebyshevU(1, y) + ¾ChebyshevU(1, y) + ½ChebyshevT(1, x) ChebyshevU(1, y)

> OrthogonalSeries[Evaluate](%);

3x²y + yx + 1

Обратите внимание на то, что новое выражение после исполнения команды Evaluate приняло вид исходного выражения.

Следующий пример демонстрирует создание ряда на основе ортогональных многочленов Чебышева и его копирование с помощью функции Сору:

> S:=Create((-1)^n/n!, ChebyshevT(n, х));

> Т:=Сору(S);

Вычисление производной от ряда с ортогональными многочленами представлено ниже:

> S := Create(u(n),ChebyshevT(n,х));

> Derivate(S, х);

Еще один пример демонстрирует операцию скалярного умножения ряда с помощью функции ScalarMultiply:

> S := Create(n+1,Kravchouk(n,p,q,x));

> ScalarMultiply(alpha, S);

> simplify(%);

5.5. Пакет PolynomialTools

5.5.1. Обзор возможностей пакета PolynomialTools

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

> with(PolynomialTools);

[CoefficientList, CoefficientVector, Hurwitz, IsSelfReciprocal, MinimalPolynomial , PDEToPolynomial, PolynomialToPDE, Shorten, Shorter, Sort, Split, Splits, Translate]

В пакет входят функции расщепления, сортировки и преобразования полиномов (в том числе в дифференциальные уравнения и наоборот) и др.

5.5.2. Функции для работы с полиномами

Рассмотрим несколько функций пакета PolynomialTools общего характера.

Функция IsSelfReciprocal(a, х, 'р') — проверяет полином а(х) на условие соeff(a,x,k)=coeff(a,x,d-k) для всех k=0..d, где d=degree(a, х) — порядок полинома. Если это условие выполняется, то возвращается логическое значение true, иначе — false. Если порядок d четный и если задан третий аргумент р, то р будет представлять полином P порядка d/2, такой, что x^(d/2)*P(x+1/x)=а. При нечетном d, полином а будет взаимо-обратным, что подразумевает деление на х+1. В этом случае если p указано, результат вычисляется в форме а/(х+1).

Примеры применения этой функции представлены ниже (файл poltools):

> with(PolynomialTools):

IsSelfReciprocal(х^4+х^3+х+1, x, 'p');

true

> p;

-2 + x + x²

> IsSelfReciprocal(х^5-3*х^4+х^3+х^2-3*х+1, x, 'p');

true

> p;

3-4x+x²

> r := evalf(1+sqrt(2));

r := 2.414213562

Функция MinimalPolynomial(r, n, acc) возвращает полином минимальной степени не превышающей n, имеющий корень r. Необязательный аргумент acc задает погрешность приближения. Функция MinimalPolynomial(r, n) использует решетчатый алгоритм и находит полином степени n (или менее) с наименьшими целыми коэффициентами. Корень r может быть действительным или комплексным. Результат зависит от значения переменной окружения Digits. По умолчанию acc задано как 10^(Digits-2). Примеры применения данной функции:

> MinimalPolynomial(r, 2);

-1 - 2_Х + _Х²

> r := 1+sqrt(2);

r:= 1 + √2

> ( r, 2 );

1+√2, 2

> MinimalPolynomial( 1.234, 3 );

-109 + 61_Х - 5_Х² + 22_ X³

> fsolve( %, X );

1.234000001

Функция Split(a, х, b) служит для расщепления полинома а с независимой переменной х. Параметр b — не обязательный. Функция Split(a, х) осуществляет комплексную факторизацию инвариантного полинома а по х. Если третий аргумент b задан, он представляет множество элементов {t1, … ,tm}, таких что полином а расщепляется над K=Q(t1, …, tm), где Q означает поле рациональных чисел.

Примеры:

> Split(х^2+х+1,х);

(х - RootOf(_Z² + _Z + 1))(х + 1 + RootOf(_Z² + _Z + 1))

> Split(х^2+у*х+1+у^2, x, 'b');

(x - RootOf(_Z² + y_Z + 1 + r))(x + y + RootOf(_Z² + y_Z + 1 + y²))

> b;

{RootOf(_Z² + у _Z + 1 + y²)}

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

Функция Translate(a, х, х0) преобразует полином а(х) с подстановкой х=х+х0, где х0 — константа. Примеры применения этой функции даны ниже:

> Translate(х^2, х, 1);

1 + 2x + x²

> expand(eval(х^2,х=х+1));

1 + 2х + х²

> Translate(х^3,х,2);

8 + 12х + 6х² + х³

> expand(eval(х^3,х=х+2));

8 + 12х + 6х² + х³

> Translate((х+1)^3,х,-1);

5.5.3. Функции сортировки полиномов

Для сортировки полиномов предназначены следующие три функции:

Shorter(f, g, х)

1 ... 57 58 59 60 61 62 63 64 65 ... 125
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов.
Комментарии