matlab近似怎么表示,【原创】有理多项式pade近似Matlab代码

function [np,dp]=pdefcn(fun,r,m,n)

%有理多项式pade近似

%

%输入参数 -fun 需要进行pade近似的函数,必须是符号变量

% -r 分子多项式采用的级数

% -m 分母多项式采用的阶数

% -n 对目标函数进行taylor展开使用的阶数,默认10

%注意:n>=m+r+1

%输出参数 -np pade近似的分子多项式系数

% -dp pade近似的分母多形式的系数

%

%Example

%>>fun='exp(-2*x)';

%>>pdefcn(fun,0,5,10)

%rewrite by dynamic

%more information http://www.matlabsky.cn

%2009.1.10

if nargin<4,n=10;end

c=taylor(fun,n);

c=sym2poly(c);

c=c(end:-1:1);

w=-c(r+2:m+r+1)';

vv=[c(r+1:-1:1)';zeros(m-1-r,1)];

W=rot90(hankel(c(m+r:-1:r+1),vv));

V=rot90(hankel(c(r:-1:1)));

x=[1 (W\w)'];

y=[1 x(2:r+1)*V'+c(2:r+1)];

dp=x(m+1:-1:1)/x(m+1);

np=y(r+1:-1:1)/x(m+1);

figure('name','Pade Demo——by Matlabsky','numbertitle','off')

ezplot(fun,[0 10]);

hold on

xx=1:0.1:10;

yy=polyval(np,xx)./polyval(dp,xx);

plot(xx,yy,'r:')

legend('精确图','近似图')

xlabel('x')

ylabel('y')

exp(-2*x)

n =

3.7500

m =

1.0000 2.5000 5.0000 7.5000 7.5000 3.7500

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值