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

ЖАНРЫ

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

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

Шрифт:

> Р(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).

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