作业帮 > 综合 > 作业

matlab 计算精度 6位有效数字计算

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/04/28 20:56:31
matlab 计算精度 6位有效数字计算
M文件:
clc
digits(6);
%第一种算法
e=vpa(exp(1));
E1(1)=1/e
for n=2:10
E1(n)=1-n*E1(n-1);
end
%第二种算法
E2(10)=0
for n=10:-1:2
E2(n-1)= vpa((1-E2(n))/n);
end
-------------------------------------------------------------
结果:
E1 =
[ .367880,.264240,.207280,.170880,.145600,.126400,.115200,.78400e-1,.294400,-1.94400]
E2 =
0.3679 0.2642 0.2073 0.1709 0.1455 0.1268 0.1125 0.1000 0.1000 0
Conversion to double from sym is not possible.
Error in ==> shiyan1 at 13
E2(n-1)= vpa((1-E2(n))/n);
E1能保留6位有效数字E2为什么只显示4位?
matlab 计算精度 6位有效数字计算
clc
digits(6);
%第一种算法
e=vpa(exp(1));%%%结果是符号型,请注意
E1(1)=1/e%%%由于e是符号型,故它也是符号型
for n=2:10
E1(n)=1-n*E1(n-1);%%符号型,digits(6)只能控制符号型的位数为6
end
%第二种算法
E2(10)=0%%double型数据,默认只显示4位,可通过format long显示更多位,当然还有更多选择,你可以查一下,例如format short,format bank等等
for n=10:-1:2
E2(n-1)= vpa((1-E2(n))/n);%%所以它是符号型,只显示4位
end
说明:matlab里变量的类型也很重要,望注意
再问: 这个程序是《数值分析》里关于误差传播的实验 用两种算法验证定积分结果 需要每次运算保留6位有效数字 来产生误差 并不是显示6位 看来你详细查看过我编的程序 以前没用过这软件