登录论坛

查看完整版本 : [MATLAB数学相关] residue函数精度


zhca
2009-05-07, 10:04
y21 = B4/B6;

if B1==2 %双终端
[m1,n1]=generate_m1n1(B2*B9+B3);
if judge_even(B5)==1 %偶数阶情况
[r22k,lamdak,kd1]=residue(n1,m1); %分解y22!!!!!!!!!!!!!!!residue精度有问题
lamdak
tt=roots(m1)
r22k=real(r22k);
r22k
gn=1;
while gn<B5+1
Tnk(gn)=sqrt(r22k(gn));
gn=gn+1;
end
if B7==B5
y21 = y21 - i*B8*m1;
end
[r21k,lamdak,kd2]=residue(y21,m1);
% lamdak
r21k=real(r21k);
r21k
gn=1;
while gn<B5+1
T1k(gn)=r21k(gn)/Tnk(gn);
gn=gn+1;
end
上面的程序结果总是出现问题:lamdak(有重根造成的)及r21k总是算出的结果有问题,特别是重根的值计算的不准确,请各位大侠帮忙看看如何解决,generate_m1n1为定义的函数,residue函数精度已提高到0.0000001,

zhca
2009-05-07, 15:16
请大家多帮忙解答一下或提供一个替代程序或函数,先行谢过