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