pade

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

Описание

пример

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é путем увеличения порядка с помощью OrdersetOrder к [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 имя аргумента и 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