Аппроксимирующая функция Pade
pade( возвращает третий порядок аппроксимирующая функция Padé выражения f,var)f в var = 0. Для получения дополнительной информации см. Аппроксимирующую функцию Padé.
Если вы не задаете varто pade использует переменную по умолчанию, определенную symvar(f,1).
pade(___, дополнительные опции использования заданы одним или несколькими Name,Value)Name,Value парные аргументы. Можно задать Name,Value после входных параметров в любом из предыдущих синтаксисов.
Найдите аппроксимирующую функцию Padé sin(x). По умолчанию, pade возвращает третий порядок аппроксимирующая функция Padé.
syms x pade(sin(x))
ans = -(x*(7*x^2 - 60))/(3*(x^2 + 20))
Если вы не задаете переменную расширения, symvar выбирает его. Найдите аппроксимирующую функцию Padé sin(x) + cos(y). symvar функция выбирает x как переменная расширения.
syms x y pade(sin(x) + cos(y))
ans = (- 7*x^3 + 3*cos(y)*x^2 + 60*x + 60*cos(y))/(3*(x^2 + 20))
Задайте переменную расширения как y. pade функция возвращает аппроксимирующую функцию Padé относительно y.
pade(sin(x) + cos(y),y)
ans = (12*sin(x) + y^2*sin(x) - 5*y^2 + 12)/(y^2 + 12)
Найдите значение tan(3*pi/4)Использование pade найти аппроксимирующую функцию Padé для tan(x) и замените в него использованием subs найти tan(3*pi/4).
syms x f = tan(x); P = pade(f); y = subs(P,x,3*pi/4)
y = (pi*((9*pi^2)/16 - 15))/(4*((9*pi^2)/8 - 5))
Использование vpa преобразовывать y в числовое значение.
vpa(y)
ans = -1.2158518789569086447244881326842
Можно увеличить точность аппроксимирующей функции Padé путем увеличения порядка. Если точка расширения является полюсом или нулем, точность может также быть увеличена на установку OrderMode к relative. OrderMode опция не оказывает влияния, если точка расширения не является полюсом или нулем.
Найдите аппроксимирующую функцию Padé tan(x) использование pade с точкой расширения 0 и Order из [1 1]. Найдите значение tan(1/5) путем замены в использование аппроксимирующей функции Padé subs, и используйте vpa преобразовывать 1/5 в числовое значение.
syms x p11 = pade(tan(x),x,0,'Order',[1 1]) p11 = subs(p11,x,vpa(1/5))
p11 = x p11 = 0.2
Найдите ошибку приближения путем вычитания p11 от фактического значения tan(1/5).
y = tan(vpa(1/5)); error = y - p11
error = 0.0027100355086724833213582716475345
Увеличьте точность аппроксимирующей функции Padé путем увеличения порядка с помощью OrdersetOrder к [2 2], и найдите ошибку.
p22 = pade(tan(x),x,0,'Order',[2 2]) p22 = subs(p22,x,vpa(1/5)); error = y - p22
p22 = -(3*x)/(x^2 - 3) error = 0.0000073328059697806186555689448317799
Точность увеличивается с увеличивающимся порядком.
Если точка расширения является полюсом или нулем, точностью уменьшений аппроксимирующей функции Padé. Установка OrderMode опция к relative компенсирует уменьшенную точность. Для получения дополнительной информации см. Аппроксимирующую функцию Padé. Поскольку tan функция имеет нуль в 0, установка OrderMode к relative точность увеличений. Эта опция не оказывает влияния, если точка расширения не является полюсом или нулем.
p22Rel = pade(tan(x),x,0,'Order',[2 2],'OrderMode','relative') p22Rel = subs(p22Rel,x,vpa(1/5)); error = y - p22Rel
p22Rel = (x*(x^2 - 15))/(3*(2*x^2 - 5)) error = 0.0000000084084014806113311713765317725998
Точность увеличивается, если точка расширения является полюсом или нулем и OrderMode установлен в relative.
Постройте различие между exp(x) и его аппроксимирующие функции Padé порядков [1 1] через [4 4]. Используйте axis фокусироваться на необходимой области. График показывает, что точность увеличивается с увеличивающимся порядком аппроксимирующей функции Padé.
syms x expr = exp(x); hold on grid on for i = 1:4 fplot(expr - pade(expr,'Order',i)) end axis([-4 4 -4 4]) legend('Order [1,1]','Order [2,2]','Order [3,3]','Order [4,4]',... 'Location','Best') title('Difference Between exp(x) and its Pade Approximant') ylabel('Error')
![Figure contains an axes object. The axes object with title Difference Between exp(x) and its Pade Approximant contains 4 objects of type functionline. These objects represent Order [1,1], Order [2,2], Order [3,3], Order [4,4].](../examples/symbolic/win64/PlotTheAccuracyOfThePadApproximantExample_01.png)
Если вы используете обоих третий аргумент a и ExpansionPoint задавать точку расширения, значение, заданное через ExpansionPoint преобладает.
Параметры a 1, …, b n выбран таким образом, что последовательное расширение аппроксимирующей функции Padé совпадает с последовательным расширением f к максимальному возможному порядку.
Точки ± расширения ∞ и ±i ∞ не позволены.
Когда pade не может найти аппроксимирующую функцию Padé, она возвращает вызов функции.
Для pade чтобы возвратить аппроксимирующую функцию Padé, расширение Ряда Тейлора или Ряда Лорана f должно существовать в точке расширения.