好文档 - 专业文书写作范文服务资料分享网站

计算方法上机作业之令狐文艳创作

天下 分享 时间: 加入收藏 我要投稿 点赞

计算方法上机报告

令狐文艳

姓名: 学 号: 班 级: 上

令狐文艳创作

说明:

本次上机实验使用的编程语言是Matlab语言,编译环境为MATLAB 7.11.0,运行平台为Windows 7。 1. 对以下和式计算:

S??0?1?4211?????n?16?8n?18n?48n?58n?6?,要求:

①若只需保留11个有效数字,该如何进行计算; ②若要保留30个有效数字,则又将如何进行计算; (1) 算法思想

1、根据精度要求估计所加的项数,可以使用后验误差估计,通项为:

an?1?4211?14????????16n?8n?18n?48n?58n?6?16n8n?1;

2、为了保证计算结果的准确性,写程序时,从后向前计算; 3、使用Matlab时,可以使用以下函数控制位数: digits(位数)或vpa(变量,精度为数)

(2)算法结构

1.s?0;

t?116n211??4?????8n?18n?48n?58n?6??;

2.

for n?0,1,2,???,i

?mt?10 if

end;

3.

for n?i,i?1,i?2,???,0

s?s?t;

(3)Matlab源程序

clear; %清除工作空间变量 clc; %清除命令窗口命令

m=input('请输入有效数字的位数m='); %输入有效数字的位数 s=0; for n=0:50

t=(1/16^n)*(4/(8*n+1)-2/(8*n+4)-1/(8*n+5)-1/(8*n+6));

令狐文艳创作

令狐文艳创作

if t<=10^(-m) %判断通项与精度的关系 break; end end;

fprintf('需要将n值加到n=%d\\n',n-1); %需要将n值加到的数值 for i=n-1:-1:0

t=(1/16^i)*(4/(8*i+1)-2/(8*i+4)-1/(8*i+5)-1/(8*i+6)); s=s+t; %求和运算 end

s=vpa(s,m) %控制s的精度

(4)结果与分析

当保留11位有效数字时,需要将n值加到n=7, s =3.1415926536;

当保留30位有效数字时,需要将n值加到n=22, s =3.14159265358979323846264338328。

通过上面的实验结果可以看出,通过从后往前计算,这种算法很好的保证了计算结果要求保留的准确数字位数的要求。

2. 某通信公司在一次施工中,需要在水面宽度为20米的河沟底部沿直线走向铺设一条沟底光缆。在铺设光缆之前需要对沟底的地形进行初步探测,从而估计所需光缆的长度,为工程预算提供依据。已探测到一组等分点位置的深度数据(单位:米)如下表所示:

分点 深度 分点 深度 分点 深度 0 9.01 7 1 8.96 8 2 7.96 9 3 7.97 10 4 8.02 11 5 6 9.05 10.13 12 13 11.18 12.26 13.28 13.32 12.61 11.29 10.22 14 9.15 15 7.90 16 7.95 17 8.86 18 19 20 9.81 10.80 10.93 ①请用合适的曲线拟合所测数据点; ②预测所需光缆长度的近似值,作出铺设河底光缆的曲线图; (1)算法思想

如果使用多项式差值,则由于龙格现象,误差较大,因此,用相对较少的插

令狐文艳创作

88n0f6i4gv9uewu2s0h44x67j2pwjr01eb6
领取福利

微信扫码领取福利

微信扫码分享