exponenta event banner

pade

Описание

пример

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

Если не указать 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 найти аппроксиматор Паде для 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. 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 компенсирует снижение точности. Для получения более подробной информации см. Padé Approximant. Потому что 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 сосредоточить внимание на интересующем регионе. График показывает, что точность увеличивается с увеличением порядка аппроксиманта Паде.

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.

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

Подробнее

свернуть все

Паде Аппроксимант

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

a0 + a1 (x x0) +... + am (x x0) m1 + b1 (x x0) +... + bn (x − x0) n.

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

(x x0) p (a0 + a1 (x x0) +... + am (x x0) m) 1 + b1 (x − x0) +... + bn (x − x0) n.

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

Совет

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

Алгоритмы

  • Параметры a1,..., bn выбираются так, чтобы последовательное расширение аппроксиманта Паде совпадало с последовательным расширением f до максимально возможного порядка.

  • Точки расширения ±∞ и ±i∞ недопустимы.

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

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

Представлен в R2014b