> L(3, х);

> L(2, а, х);

> Р(2, х);

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

> Т(5, х);
> U(5, х);
В отличие от ряда элементарных функций, ортогональные многочлены определены только для действительного аргумента х. При комплексном аргументе ранее результат просто повторял исходное выражение с многочленом:
> evalf(U(2,2+3*I));
Но уже в Maple 9 ортогональные полиномы с комплексными аргументами могут вычисляться:
> evalf(U(2,2+3*I));
Ортогональные многочлены не определены и для дробного показателя n. Впрочем, надо отметить, что такие многочлены на практике используются крайне редко.
5.4.3. Построение графиков ортогональных полиномов
Представляет интерес построение графиков ортогональных многочленов. На рис. 5.6 построены графики ряда многочленов Гегенбауэра и Эрмита. На рис. 5.7 построены графики ортогональных многочленов Лагерра и Лежандра. Наконец на рис. 5.8 даны графики ортогональных многочленов Чебышева

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

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

Рис. 5.8. Графики ортогональных многочленов Чебышева
Приведенные графики дают начальное представление о поведении ортогональных многочленов. К примеру, многочлены Чебышева имеют минимальное отклонение от оси абсцисс в заданном интервале изменения х. Это их свойство объясняет полезное применение таких многочленов при решении задач аппроксимации функций, которые рассматриваются в этой главе далее. Можно порекомендовать читателю по их образцу и подобию построить графики ортогональных многочленов при других значения параметра
5.4.4. Работа с рядами ортогональных многочленов
Для работы с рядами ортогональных многочленов имеется пакет OrthogonalSeries для работы с рядами ортогональных многочленов. Он имеет довольно представительный набор функций:
> with(OrthogonalSeries);
Поскольку этот пакет представляет интерес, в основном, для опытных математиков, мы не будем рассматривать его функции (в целом достаточно простые) подробно и ограничимся несколькими примерами. В следующем примере с помощью функции Create создается бесконечный ряд с ортогональным многочленом Эрмита в составе базового выражения ряда:
> OrthogonalSeries[Create](u(n),HermiteH(n,x));

В другом примере показано представление полиномиального выражения в новом базисе с ортогональными многочленами Чебышева с помощью функции ChangeBasis:
> OrthogonalSeries[ChangeBasis](1+3*у*х^2+у^3*х,
ChebyshevT(n,х), ChebyshevU(m, y));
> OrthogonalSeries[Evaluate](%);
Обратите внимание на то, что новое выражение после исполнения команды 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