pade

Аппроксимирующая функция Pade

Синтаксис

pade(f,var)
pade(f,var,a)
pade(___,Name,Value)

Описание

пример

pade(f,var) возвращает третий порядок аппроксимирующая функция Padé выражения f в var = 0. Для получения дополнительной информации см. Аппроксимирующую функцию Padé.

Если вы не задаете var, то pade использует переменную по умолчанию, определенную symvar(f,1).

пример

pade(f,var,a) возвращает третий порядок аппроксимирующая функция Padé выражения f в точке var = a.

пример

pade(___,Name,Value) дополнительные опции использования заданы одним или несколькими аргументами пары Name,Value. Можно задать Name,Value после входных параметров в любом из предыдущих синтаксисов.

Примеры

Найдите аппроксимирующую функцию Padé для символьных выражений

Найдите аппроксимирующую функцию 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é

Можно увеличить точность аппроксимирующей функции 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.

Постройте точность аппроксимирующей функции Padé

Постройте различие между 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')

Входные параметры

свернуть все

Введите, чтобы аппроксимировать, заданный как символьное число, переменная, вектор, матрица, многомерный массив, функция или выражение.

Переменная Expansion, заданная как символьная переменная. Если вы не задаете var, то pade использует переменную по умолчанию, определенную symvar(f,1).

Точка расширения, заданная как номер, или символьное число, переменная, функция или выражение. Точка расширения не может зависеть от переменной расширения. Также можно задать точку расширения в качестве аргумента пары Name,Value. Если вы указываете, что расширение указывает оба пути, то аргумент пары Name,Value более приоритетен.

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: pade(f,'Order',[2 2]) возвращает аппроксимирующую функцию Padé f порядка m = 2 и n = 2.

Точка расширения, заданная как номер, или символьное число, переменная, функция или выражение. Точка расширения не может зависеть от переменной расширения. Можно также задать точку расширения с помощью входного параметра a. Если вы указываете, что расширение указывает оба пути, то аргумент пары Name,Value более приоритетен.

Порядок аппроксимирующей функции Padé, заданной как целое число, вектор двух целых чисел, или символьного целого числа или вектора двух целых чисел. Если вы задаете одно целое число, то целое число указывает, что и числитель приказывает, чтобы m и знаменатель заказали n, производящий аппроксимирующую функцию Padé с m = n. Если вы задаете вектор двух целых чисел, то первое целое число задает m, и второе целое число задает n. По умолчанию pade возвращает аппроксимирующую функцию Padé с m = n = 3.

Флаг, который выбирает абсолютный или относительный порядок для аппроксимирующей функции Padé, заданной как 'absolute' или 'relative'. Значение по умолчанию 'absolute' использует стандартное определение аппроксимирующей функции Padé. Если вы устанавливаете 'OrderMode' на 'relative', он только имеет эффект, когда существует полюс, или нуль при расширении указывают a. В этом случае, чтобы увеличить точность, pade умножает числитель на (var - a)p, где p является кратностью нуля или полюса в точке расширения. Для получения дополнительной информации см. Аппроксимирующую функцию Padé.

Больше о

свернуть все

Аппроксимирующая функция Padé

По умолчанию pade аппроксимирует функциональный f (x) с помощью стандартной формы аппроксимирующей функции Padé порядка [mn] вокруг x = x 0, который является

a0+a1(xx0)+...+am(xx0)m1+b1(xx0)+...+bn(xx0)n.

Когда OrderMode является relative, и полюс или нуль существуют в точке расширения x = x 0, функция pade использует эту форму аппроксимирующей функции Padé

(xx0)p(a0+a1(xx0)+...+am(xx0)m)1+b1(xx0)+...+bn(xx0)n.

Параметры, которые p и a 0 даны ведущим порядком, называют f = a 0   (x - x 0) p + O ((x - x 0) p + 1) последовательного расширения f вокруг x = x 0. Таким образом p является кратностью полюса или нуля в x0.

Советы

  • Если вы используете обоих третий аргумент a и ExpansionPoint, чтобы задать точку расширения, значение, заданное через ExpansionPoint, преобладает.

Алгоритмы

  • Параметры a 1, …, b n выбран таким образом, что последовательное расширение аппроксимирующей функции Padé совпадает с последовательным расширением f к максимальному возможному порядку.

  • Точки ± расширения и ±i ∞ не позволены.

  • Когда pade не может найти аппроксимирующую функцию Padé, он возвращает вызов функции.

  • Для pade, чтобы возвратить аппроксимирующую функцию Padé, расширение Ряда Тейлора или Ряда Лорана f должно существовать в точке расширения.

Введенный в R2014b