pade

Pade аппроксимация

Описание

пример

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

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

пример

pade(f,var,a) возвращает аппроксимацию выражения Паде третьего порядка f в точке var = a.

пример

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')

Figure contains an axes. The axes with title Difference Between exp(x) and its Pade Approximant contains 4 objects of type functionline. These objects represent Order [1,1], Order [2,2], Order [3,3], Order [4,4].

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

свернуть все

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

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

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

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

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

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

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

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

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

Подробнее о

свернуть все

Паде Аппроксимация

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

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

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

(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 выбраны так, что последовательное расширение аппроксимации Паде совпадает с последовательным расширением f до максимального возможного порядка.

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

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

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

Введенный в R2014b