Полиномы Gegenbauer
gegenbauerC(n,a,x)gegenbauerC( представляет th-степень n,a,x)n Gegenbauer (ультрасферический) полином с параметром a в точке x.
Найдите первые четыре полинома Gegenbauer для параметра a и переменной x.
syms a x gegenbauerC([0, 1, 2, 3], a, x)
ans = [ 1, 2*a*x, (2*a^2 + 2*a)*x^2 - a,... ((4*a^3)/3 + 4*a^2 + (8*a)/3)*x^3 + (- 2*a^2 - 2*a)*x]
В зависимости от его аргументов gegenbauerC возвращает или точные символьные результаты с плавающей точкой.
Найдите значение пятой степени полиномом Gegenbauer для параметра a = 1/3 в этих точках. Поскольку эти числа не являются символьными объектами, gegenbauerC возвращает результаты с плавающей точкой.
gegenbauerC(5, 1/3, [1/6, 1/4, 1/3, 1/2, 2/3, 3/4])
ans =
0.1520 0.1911 0.1914 0.0672 -0.1483 -0.2188Найдите значение пятой степени полиномом Gegenbauer для тех же чисел преобразованный в символьные объекты. Для символьных чисел gegenbauerC возвращает точные символьные результаты.
gegenbauerC(5, 1/3, sym([1/6, 1/4, 1/3, 1/2, 2/3, 3/4]))
ans = [ 26929/177147, 4459/23328, 33908/177147, 49/729, -26264/177147, -7/32]
Оценка с плавающей точкой полиномов Gegenbauer прямыми вызовами gegenbauerC численно стабильна. Однако сначала вычисление полинома с помощью символьной переменной, и затем заменяя значениями переменной точности в это выражение может быть численно нестабильным.
Найдите значение 500-й степени полиномом Gegenbauer для параметра 4 в 1/3 и vpa(1/3). Оценка с плавающей точкой численно стабильна.
gegenbauerC(500, 4, 1/3) gegenbauerC(500, 4, vpa(1/3))
ans = -1.9161e+05 ans = -191609.10250897532784888518393655
Теперь, найдите символьный полиномиальный C500 = gegenbauerC(500, 4, x) и замените x = vpa(1/3) в результат. Этот подход численно нестабилен.
syms x C500 = gegenbauerC(500, 4, x); subs(C500, x, vpa(1/3))
ans = -8.0178726380235741521208852037291e+35
Аппроксимируйте полиномиальные коэффициенты при помощи vpa, и затем замените x = sym(1/3) в результат. Этот подход также численно нестабилен.
subs(vpa(C500), x, sym(1/3))
ans = -8.1125412405858470246887213923167e+36
Постройте первые пять полиномов Gegenbauer для параметра a = 3.
syms x y fplot(gegenbauerC(0:4,3,x)) axis([-1 1 -10 10]) grid on ylabel('G_n^3(x)') title('Gegenbauer polynomials') legend('G_0^3(x)', 'G_1^3(x)', 'G_2^3(x)', 'G_3^3(x)', 'G_4^3(x)',... 'Location', 'Best')

gegenbauerC возвращает результаты с плавающей точкой для числовых аргументов, которые не являются символьными объектами.
Действия gegenbauerC, поэлементные на нескалярных входных параметрах.
Все нескалярные аргументы должны иметь тот же размер. Если один или два входных параметра являются нескалярными, то gegenbauerC расширяет скаляры в векторы или матрицы, одного размера в качестве нескалярных аргументов со всеми элементами, равными соответствующему скаляру.
[1] Hochstrasser, U. W. “Ортогональные Полиномы”. Руководство Математических функций с Формулами, Графиками и Математическими Таблицами. (М. Абрамовиц и я. А. Стегун, редакторы). Нью-Йорк: Дувр, 1972.
chebyshevT | chebyshevU | hermiteH | jacobiP | laguerreL | legendreP