0
点赞
收藏
分享

微信扫一扫

matlab-error theory

乌龙茶3297 2022-03-17 阅读 78

一、背景

数值计算方法中存在“蝴蝶效应”,极其微小的误差在计算中不断积累与传播,最终导致计算结果与理论结果严重偏差,使得计算方法完全失效。这种现象称为计算方法的病态性。

二、例题

三、代码

%%
%算法一
p=1;
i=1;
while i<=10
 % format short
 fprintf('p(%d)=%17.16f\t\t',i,p);%打印输出数列
 p=1/3*p;
 % fprintf('p(%d)=%8.7f/t/t',i,p);
 fprintf('delta(%d)=%17.16f\t\t',i,1/(3^i)-p);%打印输出误差
 if mod(i,5)==0
 fprintf('\n');
 end
 i=i+1;
end
fprintf('\n');
%%


%算法二
p0=1;
p1=1/3;
n=1;
while n<=10
 fprintf('p(%d)=%17.16f\t\t',n,p0);%打印输出数列
 p2=10/3*p1-p0;
 p0=p1;
 p1=p2;
 % fprintf('p(%d)=%8.7f\t\t',n,p0);

 fprintf('delta(%d)=%17.16f\t\t',n,1/(3^n)-p0);%打印输出误差
 if mod(n,5) == 0
 fprintf('\n');
 end
 n=n+1;
end
%%

 四、输出结果

 五、结果分析

由上述运算中也可以看出:算法一 delta p 为 0。

’而算法二 delta p 逐渐增大,即稳定性不好。

故算法一是误差小且稳定的算法,而算法二是不稳定的算法。

 

举报

相关推荐

0 条评论