Аппроксимирующая функция Pade
pade(f,var)
pade(f,var,a)
pade(___,Name,Value)
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
. Установите 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
Точность увеличивается с увеличивающимся порядком.
Если точка расширения является полюсом или нулем, точностью уменьшений аппроксимирующей функции 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 должно существовать в точке расширения.