计算方法b上机报告.docx
《计算方法b上机报告.docx》由会员分享,可在线阅读,更多相关《计算方法b上机报告.docx(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算方法B上机实习报告 计算方法B上机实习报告1.对以下和式计算:,要求:(1)假设只需保存11个有效数字,该如何进行计算;(2)假设要保存30个有效数字,那么又将如何进行计算;问题分析: 在该题中S的每一项存在两个相近的数相减的问题,因此为了防止有效数字损失,最好是改变运算顺序,分别将正数和负数相加,然后再将其和相加。另外,sn中有多个负数相加,可以按照绝对值递增的顺序求和,以减少舍入误差的影响。同时,为了防止大数吃小数的问题,此题先计算出保存目标有效数字所需要的迭代次数,然后采用倒序相加的方法实现。程序实现:clear;clc;m=input(请输入要保存的有效数字位数:);s1=0;s2
2、=0;k=0;s=1;%判断多需要的迭代次数while s=0.5*10-(m-1) s=4/(16k*(8*k+1)-(2/(16k*(8*k+4)+1/(16k*(8*k+5)+1/(16k*(8*k+6); k=k+1;end%正负数分别按照绝对值递增的顺序倒序相加for n=(k-1):-1:0 a1=4/(16n*(8*n+1); a2=2/(16n*(8*n+4); a3=1/(16n*(8*n+5); a4=1/(16n*(8*n+6); s1=a1+s1; s2=a4+a3+a2+s2;end S=s1-s2; S=vpa(S,m)运算结果:总结心得:在计算求和问题中,应特别注
3、意相近数相减的问题,这样会造成有效数字灾难性的损失。另外在两个数量级相差较大的数字相加减时,较小数的有效数字会被丧失,因此要按照从小到大的顺序相加。在上题计算中分别对正负相采用倒序相加,这样就有效的防止了“大数吃小数的问题。2.某通信公司在一次施工中,需要在水面宽度为20米的河沟底部沿直线走向铺设一条沟底光缆。在铺设光缆之前需要对沟底的地形进行初步探测,从而估计所需光缆的长度,为工程预算提供依据。已探测到一组等分点位置的深度数据(单位:米)如下表所示:分点0123456深度分点78910111213深度分点14151617181920深度 (1)请用适宜的曲线拟合所测数据点;(2)预测所需光缆
4、长度的近似值,并作出铺设河底光缆的曲线图;问题分析:此题的主要目的是对测量数据进行拟合,同时对拟合曲线进行线积分即可得到河底光缆长度的近似值。由于数值点较多时,使用拉格朗日差值多项式会出现龙格现象。为了将所有的数据点都用上,采用分段差插法,此题使用三次样条插值。算法思想:样条函数在每个子区间上是三次多项式,它的二阶导数必是一次多项式。假设用 记在 处的二阶导数。那么在区间 上 式中 1对上式进行两次积分得 2它的一阶导数为 3满足连续性条件,即 上式和3式得 4用差商记号,并记 4式可以写成 方程组可以写成如下形式 自然样条插值条件为在估计河底光缆长度时使用第一类线积分程序实现:clear;c
5、lc;x=0: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;d=y;plot(x,y,k.,markersize,15)hold on%计算牛顿二阶差商for k=1:2 for i=21:-1:(k+1) d(i)=(d(i)-d(i-1)/(x(i)-x(i-k); endend%假定d的边界条件,采用自然三次样条for i=2:20 d(i)=6*d(i+1);endd(1)=0;d(21)=0;
6、%追赶法求解带状矩阵的m值a=0.5*ones(1,21);b=2*ones(1,21);c=0.5*ones(1,21);a(1)=0;c(21)=0;u=ones(1,21);u(1)=b(1);r=c;yy(1)=d(1);%追的过程for k=2:21 l(k)=a(k)/u(k-1); u(k)=b(k)-l(k)*r(k-1); yy(k)=d(k)-l(k)*yy(k-1);end%赶的过程m(21)=yy(21)/u(21);for k=20:-1:1 m(k)=(yy(k)-r(k)*m(k+1)/u(k);end%利用插值点画出拟合曲线k=1;nn=100;xx=linsp
7、ace(0,20,nn);l=0;for j=1:nn for i=2:20 if xx(j)=x(i) k=i; break; else k=i+1; end endh=1;xbar=x(k)-xx(j);xmao=xx(j)-x(k-1);s(j)=(m(k-1)*xbar3/6+m(k)*xmao3/6+(y(k-1)-m(k-1)*h2/6)*xbar+(y(k)-m(k)*h2/6)*xmao)/h;sp(j)=-m(k-1)*(x(k)-xx(j)2/(2*h)+m(k)*(xx(j)-x(k-1)2/(2*h)+(y(k)-y(k-1)/h-(m(k)-m(k-1)*h/6;l(
8、j+1)=(1+sp(j)2)0.5*(20/nn)+l(j);%利用第一类线积分求河底光缆的长度 end%绘图plot(xx,s,r-,linewidth,1.5)griddisp(所需光缆长度为,num2str(l(nn+1),米)运行结果:总结心得:采用三次样条插值对数据进行拟合时,可以有效防止龙格现象。在此题的计算中采用自然三次样条函数的边界条件。在解线性方程组时使用了追赶法求解带状矩阵,在求解三对角矩阵时追赶法计算速度快,是一种求解线性方程组的有效手段。在估计河底光缆长度时使用第一类线积分。此题计算中间变量非常多,在调试的过程中遇到了一些麻烦,这更加使我认识到在编程的过程中由不得一点
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算方法 上机 报告
限制150内