word 格式-可编辑-感谢下载支持
设S
𝑁
=
∑
𝑁
𝑗=2
1
𝑗
2
1
,其精确值为
1 3 1 1
( )
。
2 2 N N 1
(1)编制按从大到小的顺序
S
N
(2)编制按从小到大的顺序
S
N
1 1 1
,计算 S
N
的通用程序。
2
2 2
2 1 3 1 N 1
1 1 1
,计算 S
N
的通用程序。
2 2 2
N 1 (N 1) 1 2 1
(3)按两种顺序分别计算
S
10
2
,
S
10
4
,
S
10
6
,并指出有效位数。(编制程序时用单精度)
(4)通过本次上机题,你明白了什么?
1.2 编写相应的 matlab 程序
clear;
N=input('please input N:');
AValue=((3/2-1/N-1/(N+1))/2);
sn1=single(0);
sn2=single(0);
for i=2:N
sn1=sn1+1/(i*i-1); %从大到小相加的通用程序%
end
ep1=abs(sn1-AValue);
for j=N:-1:2
sn2=sn2+1/(j*j-1); %从小到大相加的通用程序%
end
ep2=abs(sn2-AValue);
fprintf('精确值为:%f\n',AValue);
fprintf('从大到小的顺序累加得sn=%f\n',sn1);
fprintf('从大到小相加的误差ep1=%f\n',ep1);
fprintf('从小到大的顺序累加得sn=%f\n',sn2);
fprintf('从小到大相加的误差ep2=%f\n',ep2);
disp('=================================');
1.3matlab 运行程序结果
>> chaper1
please input N:100
精确值为:0.740050
从大到小的顺序累加得 sn=0.740049
从大到小相加的误差 ep1=0.000001
从小到大的顺序累加得 sn=0.740050
从小到大相加的误差 ep2=0.000000
>> chaper1
please input N:10000
精确值为:0.749900
从大到小的顺序累加得 sn=0.749852
从大到小相加的误差 ep1=0.000048
从小到大的顺序累加得 sn=0.749900
从小到大相加的误差 ep2=0.000000