Pade аппроксимация
pade( возвращает аппроксимацию выражения в третьем порядке f,var)f при var = 0. Для получения дополнительной информации смотрите Паде Аппроксимация.
Если вы не задаете var, затем pade использует переменную по умолчанию, определяемую как symvar(f,1).
pade(___, использует дополнительные опции, заданные одним или несколькими Name,Value)Name,Value аргументы в виде пар. Можно задать Name,Value после входных параметров в любом из предыдущих синтаксисов.
Найдите аппроксимацию sin(x). По умолчанию, pade возвращает аппроксимацию Паде третьего порядка.
syms x pade(sin(x))
ans = -(x*(7*x^2 - 60))/(3*(x^2 + 20))
Если вы не задаете переменную расширения, symvar выбирает его. Найдите аппроксимацию 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 функция возвращает аппроксимацию Паде относительно 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
Можно увеличить точность аппроксимации Паде, увеличив порядок. Если точкой расширения является полюс или нуль, точность также может быть увеличена путем установки OrderMode на relative. The OrderMode опция не влияет, если точка расширения не является полюсом или нулями.
Найдите аппроксимацию tan(x) использование pade с точкой расширения 0 и Order от [1 1]. Найдите значение tan(1/5) путем подстановки в аппроксимацию Паде с помощью 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
Увеличьте точность аппроксимации Паде путем увеличения порядка использования Order. Задайте Order на [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
Точность увеличивается с увеличением порядка.
Если точкой расширения является полюс или нуль, точность аппроксимации Паде уменьшается. Установка OrderMode опция для relative компенсирует снижение точности. Для получения дополнительной информации смотрите Паде Аппроксимация. Потому что 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) и его паде-аппроксимации порядков [1 1] через [4 4]. Использование axis сосредоточиться на необходимой области. График показывает, что точность увеличивается с увеличением порядка аппроксимации Паде.
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. The axes 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 выбраны так, что последовательное расширение аппроксимации Паде совпадает с последовательным расширением f до максимального возможного порядка.
Точки расширения ± ∞ и ± i ∞ не разрешены.
Когда pade не может найти аппроксимацию Padé, она возвращает вызов функции.
Для pade чтобы вернуть аппроксимацию Паде, в точке расширения должно существовать расширение f серии Тейлора или Лорана.