orthpoly:: legendre

Полиномы лежандра

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

orthpoly::legendre(n, x)

Описание

orthpoly::legendre(n,x) вычисляет значение n-th Полином лежандра степени в точке x.

Эти полиномы имеют рациональные коэффициенты.

Оценка для действительных значений с плавающей точкой x от интервала [-1.0, 1.0] численно стабилен. Смотрите Пример 2.

Используйте numeric::gldata, чтобы вычислить корни Полиномов лежандра. Cf. Пример 3.

Примеры

Пример 1

Многочленные выражения возвращены, если идентификаторы или индексируемые идентификаторы заданы:

orthpoly::legendre(2, x)

orthpoly::legendre(3, x[1])

Используя арифметические выражения, как введено, возвращены “значения” этих полиномов:

orthpoly::legendre(2, 3+2*I)

orthpoly::legendre(3, exp(x[1] + 2))

“Арифметические выражения” включают числа:

orthpoly::legendre(2, sqrt(2)), orthpoly::legendre(3, 8 + I),
orthpoly::legendre(1000, 0.3)

Если степень полинома является переменной или выражением, то orthpoly::legendre возвращает себя символически:

orthpoly::legendre(n, x)

Пример 2

Если значение с плавающей точкой желаемо, то прямой вызов такой как

orthpoly::legendre(100, 0.9)

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

P100 := orthpoly::legendre(100, x):
evalp(P100, x = 0.9)

Этот результат вызывается числовым округлением. Также с увеличенным DIGITS только несколько ведущих цифр правильны:

DIGITS := 30: evalp(P100, x = 0.9)

delete P100, DIGITS:

Пример 3

Мы рекомендуем использовать numeric::gldata для вычислительных корней Полинома лежандра P (n, x). Эта стандартная программа обеспечивает все корни функционального Q (n, y) = P (n, 2 y - 1):

QRoots := numeric::gldata(5, DIGITS)[2]

Эти значения легко преобразовываются к корням P (n, x):

PRoots := map(QRoots, y -> 2*y - 1)

orthpoly::legendre(5, r) $ r in PRoots

delete QRoots, PRoots:

Параметры

n

Неотрицательное целое число или арифметическое выражение, представляющее неотрицательное целое число: степень полинома.

x

Неопределенное или арифметическое выражение. Неопределенным является любой идентификатор (доменного типа DOM_IDENT) или индексируемый идентификатор (типа "_index").

Возвращаемые значения

Значение Полинома лежандра в точке x возвращено как арифметическое выражение. Если n является арифметическим выражением, то orthpoly::legendre возвращает себя символически.

Алгоритмы

Полиномами лежандра дают.

Они удовлетворяют формулу рекурсии

с P (0, x) = 1 и P (1, x) = x.

Они являются ортогональными на интервале [-1, 1] относительно функции веса w (x) = 1.

P (n, x) совпадает с полиномом Gegenbauer.

P (n, x) совпадает с полиномом Якоби P (n, 0, 0, x).

Смотрите также

Функции MuPAD