返回目录

PadeApprox.m

text/plain
1.29 KB
2025-10-22 16:15:58

文件预览

clear; clc;

syms x
f = exp(x);  % 示例函数,可替换为其他函数
n = 2;       % 分子阶数,可调整
m = 2;       % 分母阶数,可调整

y = taylor(f, x, 'Order', n + m + 1);
coffsy0 = sym2poly(y);
p = length(coffsy0);
coffsy = [zeros(1, n + m + 1 - p), coffsy0];
cx = flip(coffsy);

H2 = zeros(n + 1, m);
for i = 2 : m + 1
    r = m + 2 - i;
    H2(i : n + 1, r) = -cx(1 : n + 2 - i)';
end
H1 = eye(n + 1);
H3 = zeros(m, n + 1);
H4 = zeros(m, m);
for i = 1 : m
    H4(i, :) = -cx(n - m + 1 + i : n + i);
end
H = [H1, H2; H3, H4];
coffsab = H \ cx';

j = 0 : n;
Funa = x .^ j;
k = 0 : m;
Funb = x .^ k;
digits(5);
coffsab2 = flip(coffsab(n + 2 : n + m + 1));
coffsab3 = [1; coffsab2];
Rnx = vpa((Funa * coffsab(1 : n + 1)) / (Funb * coffsab3));

y, %原函数 f 的泰勒展开多项式
cx, %泰勒展开式 y 的系数翻转向量(按幂次从高到低排列)
H, %Pade 逼近方程组的系数矩阵。
coffsab, % 求解方程组得到的系数向量,包含两部分:
%前 n+1 个元素:分子多项式系数 [a0, a1, ..., an]
%后 m 个元素:分母多项式系数(按 bm, bm-1, ..., b1 排列,分母常数项固定为 1)。
Rnx  %最终的 Pade 逼近有理函数(符号形式,保留 5 位有效数字)形式为 分子/分母。