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')
Если вы используете оба третьих аргумента a
и ExpansionPoint
чтобы задать точку расширения, значение, заданное через ExpansionPoint
преобладает.
Параметры a 1,..., b n выбраны так, что последовательное расширение аппроксимации Паде совпадает с последовательным расширением f до максимального возможного порядка.
Точки расширения ± ∞ и ± i ∞ не разрешены.
Когда pade
не может найти аппроксимацию Padé, она возвращает вызов функции.
Для pade
чтобы вернуть аппроксимацию Паде, в точке расширения должно существовать расширение f серии Тейлора или Лорана.