计算方法上机作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算方法上机报告
姓名:
学号:
班级:
上课班级:
本次上机实验使用得编程语言就是M at lab语言,编译环境为MAT LAB 7、11、0,运行平台为W indows 7。 1. 对以下与式计算:,要求:
① 若只需保留11个有效数字,该如何进行计算;ﻫ② 若要保留30个有效数字,则又将如何进行计算; (1) 算法思想
1、根据精度要求估计所加得项数,可以使用后验误差估计,通项为: 1421114
16818485861681
n n n a n n n n n ε⎛⎫=
---<< ⎪
+++++⎝⎭; 2、为了保证计算结果得准确性,写程序时,从后向前计算; 3、使用Matlab 时,可以使用以下函数控制位数: digits (位数)或vpa(变量,精度为数)
(2)算法结构
1、ﻩ
; 2、ﻩfo r if
en d;
3、 for
(3)M atl ab 源程序
clear; %清除工作空间变量
c lc; %清除命令
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、149323846264338328。
通过上面得实验结果可以瞧出,通过从后往前计算,这种算法很好得保证了计算结果要求保留得准确数字位数得要求。
2.某通信公司在一次施工中,需要在水面宽度为20米得河沟底部沿直线走
向铺设一条沟底光缆。在铺设光缆之前需要对沟底得地形进行初步探测,从而估计所需光缆得长度,为工程预算提供依据。已探测到一组等分点位置得深度数据(单位:米)如下表所示:
①请用合适得曲线拟合所测数据点;
②预测所需光缆长度得近似值,作出铺设河底光缆得曲线图;
(1)算法思想
如果使用多项式差值,则由于龙格现象,误差较大,因此,用相对较少得插值数据点作插值,可以避免大得误差,但就是如果又希望将所得数据点都用上,且所用数据点越多越好,可以采用分段插值方式,即用分段多项式代替单个多项式作插值。分段多项式就是由一些在相互连接得区间上得不同多项式连接而成得一条连续曲线,其中三次样条插值方法就是一种具有较好“光滑性”得分段插值方法。
在本题中,假设所铺设得光缆足够柔软,在铺设过程中光缆触地走势光滑,紧贴地面,并且忽略水流对光缆得冲击。海底光缆线得长度预测模型如下所示,光缆从A点铺至B 点,在某点处得深度为。
海底光缆线得长度预测模型计算光缆长度时,用如下公式:
(2)算法结构
1、ﻩFor
1、1
2、ﻩFor
2、1 For
2、1、1
3、ﻩ
4、ﻩFor
4、1
4、2
4、3
5、
6、ﻩ
7、获取M得矩阵元素个数,存入m
8、 For
8、1 8、2 8、3 9、 10、ﻩFor
10、1 11、 获取x得元素个数存入s 12、
13、 For
13、1 if th en ;bre ak
els e
14、ﻩ
y h x h M y x h M y x M x M k k k k k k ~/]ˆ)6
()6(6ˆ6[2
211331
⇒-+-++---
(3)Matlab 源程序
cle ar;
c lc;
x=0:1:20; %产生从0到20含21个等分点得数组 X=0:0、2:20;
y =[9、01,8、96,7、96,7、97,8、02,9、05,10、13,11、18,12、26,13、28,13、32,12、61,11、29,10、22,9、15,7、90,7、95,8、86,9、81,10、80,10、93]; %等分点位置得深度数据
n=length(x); %等分点得数目 N =l engt h(X);
%%求三次样条插值函数s(x)
M=y;
for k=2:3; %计算二阶差商并存放在M 中
for i=n:-1:k;
M(i)=(M(i)-M(i-1))/(x(i)-x(i-k+1));
end
end
h(1)=x(2)-x(1); %计算三对角阵系数a,b,c及右端向量d
for i=2:n-1;
h(i)=x(i+1)-x(i);
c(i)=h(i)/(h(i)+h(i-1));
a(i)=1-c(i);
b(i)=2;
d(i)=6*M(i+1);
end
M(1)=0; %选择自然边界条件
M(n)=0;
b(1)=2;
b(n)=2;
c(1)=0;