matlab 计算精度 6位有效数字计算M文件:clcdigits(6);%第一种算法e=vpa(exp(1));E1(1)=1/efor n=2:10E1(n)=1-n*E1(n-1);end%第二种算法E2(10)=0for n=10:-1:2E2(n-1)= vpa((1-E2(n))/n);end-------------------------------------------------
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/16 09:47:33
matlab 计算精度 6位有效数字计算M文件:clcdigits(6);%第一种算法e=vpa(exp(1));E1(1)=1/efor n=2:10E1(n)=1-n*E1(n-1);end%第二种算法E2(10)=0for n=10:-1:2E2(n-1)= vpa((1-E2(n))/n);end-------------------------------------------------
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位有效数字计算M文件:clcdigits(6);%第一种算法e=vpa(exp(1));E1(1)=1/efor n=2:10E1(n)=1-n*E1(n-1);end%第二种算法E2(10)=0for n=10:-1:2E2(n-1)= vpa((1-E2(n))/n);end-------------------------------------------------
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里变量的类型也很重要,望注意