西安交通大学计算方法B大作业

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

计算方法上机报告姓名:学号:班级:目录题目一-------------------------------------------------------------------------------------------4-1.1题目内容-----------------------------------------------------------------------------4-1.2算法思想-----------------------------------------------------------------------------4-1.3Matlab源程序------------------------------------------------------------------------5-1.4计算结果及总结--------------------------------------------------------------------5-题目二-------------------------------------------------------------------------------------------7-2.1题目内容-----------------------------------------------------------------------------7-2.2算法思想-----------------------------------------------------------------------------7-2.3Matlab源程序-----------------------------------------------------------------------8-2.4计算结果及总结--------------------------------------------------------------------9-题目三------------------------------------------------------------------------------------------11-3.1题目内容----------------------------------------------------------------------------11-3.2算法思想----------------------------------------------------------------------------11-3.3Matlab源程序-----------------------------------------------------------------------13-3.4计算结果及总结-------------------------------------------------------------------14-题目四------------------------------------------------------------------------------------------15-4.1题目内容----------------------------------------------------------------------------15-4.2算法思想----------------------------------------------------------------------------15-4.3Matlab源程序-----------------------------------------------------------------------15-4.4计算结果及总结-------------------------------------------------------------------16-题目五------------------------------------------------------------------------------------------18-5.1题目内容----------------------------------------------------------------------------18-5.2算法思想----------------------------------------------------------------------------18-5.3Matlab源程序----------------------------------------------------------------------18-5.3.1非压缩带状对角方程组--------------------------------------------------18-5.3.2压缩带状对角方程组-----------------------------------------------------20-5.4实验结果及分析-------------------------------------------------------------------22-5.4.1Matlab运行结果-----------------------------------------------------------22-5.4.2总结分析--------------------------------------------------------------------24-5.5本专业算例-------------------------------------------------------------------------24-学习感悟---------------------------------------------------------------------------------------27--4-题目一1.1题目内容计算以下和式:0142111681848586nnSnnnn,要求:(1)若保留11个有效数字,给出计算结果,并评价计算的算法;(2)若要保留30个有效数字,则又将如何进行计算。1.2算法思想在程序编写中需要把握以下几点:①随着n值的增加,和式的项递减速度很快,因此我们可以认为,在确定为某一精度的前提下,n达到一定的值,加下一项将不会对最终的加和产生影响,首先我们应找到n值。②根据精度要求估计所加的项数,可以使用后验误差估计,通项为:142111416818485861681nnnannnnn③为减小舍入误差,在计算s时所采用的方法是逆序相加,其依据是:两个数量级相差较大的数字相加减时,较小数的有效数字会被丧失,从而导致最后的运算结果失真。为避免“大数吃小数”现象的发生,采用逆序相加。④对于实现30位有效数字,则调用从工具箱中digits(位数)或vpa(变量,精度位数)即可实现。-5-1.3Matlab源程序clear;clc;m=input('输入需要求的有效数字位数m=');s=0forn=0:200%寻找满足条件的最小ns=(1/16^n)*(4/(8*n+1)-2/(8*n+4)-1/(8*n+5)-1/(8*n+6));ifs=10^(-m)%当项小于10^-m时,停止循环breakendend;fprintf('n值加至n%d\n',n-1);%需要将n值加到的数值fori=n-1:-1:0%逐项逆序相加求和s=(1/16^i)*(4/(8*i+1)-2/(8*i+4)-1/(8*i+5)-1/(8*i+6));t=t+s;ends=vpa(t,m)1.4计算结果及总结①输入需要求的有效数字位数m=11t=0n值加至n7s=3.1415926536②t=0n值加至n22s=3.14159265358979311599796346854从上述的算法思想中可以看出,运算中不仅要满足误差要求,还要尽可能地减少计算量,此外还要考虑舍入误差的影响,这时就要对所运算数据的性质进行分析,设置合适的算法,从而提高运算的精度。而逆序算法能够很好的满足上述-6-要求。-7-题目二2.1题目内容某通信公司在一次施工中,需要在水面宽度为20米的河沟底部沿直线走向铺设一条沟底光缆。在铺设光缆之前需要对沟底的地形进行初步探测,从而估计所需光缆的长度,为工程预算提供依据。已探测到一组等分点位置的深度数据(单位:米)如下表所示:分点0123456深度9.018.967.967.978.029.0510.13分点78910111213深度11.1812.2613.2813.3212.6111.2910.22分点14151617181920深度9.157.907.958.869.8110.8010.93(1)请用合适的曲线拟合所测数据点;(2)估算所需光缆长度的近似值,并作出铺设河底光缆的曲线图;2.2算法思想利用曲线拟合数据点,即利用数据点拟合差值多项式,我们可以利用Newton法进行拟合,也可以用复化Simpson求积公式、三次样条插值来拟合,但三次样条插值使用方程组计算增大了计算量,同时还要附加边界条件,分段三次样条插值对图形的控制能力还不够灵活。因此这里用Newton形式的差值多项式进行拟-8-合。首先计算出各差商,然后计算出Newton差值多项式的每一项,最后将所有项相加,即可计算出Newton差值多项式,然后利用所得的差值多项式一次算出多个点的函数值。MATLAB的plot函数进行绘图。计算长度近似值,只需将每隔两点之间的距离算出,然后一次相加,所得的折线长度,即为长度的近似值。2.3Matlab源程序Untitled2clearclcx=0:1: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];%输入给定的数据点xi=0:20;[Nx,Ni]=Newton(x,y,xi);%调用函数,建立Newton差值多项式plot(xi,Ni);%绘制拟合的曲线图long=0;%为长度赋初值fori=1:20%将每一段折线相加算出长度的近似值long=long+sqrt(1+((y(i)-y(i+1))^2));enddisp('需要的光缆长度为')%显示需要的光缆长度disp(long)Newton插值法function[Nx,N0]=Newton(X,Y,x0)n=size(X);%插值点个数y=Y;Nx=Y(1);N=1;-9-fori=1:n-1%计算Newton插值多项式forj=i+1:nyi(j)=(y(j)-y(i))/(X(j)-X(i));endm(i)=yi(i+1);N=N*(x-X(i));Nx=Nx+N*m(i);y=yi;endN0=subs(Nx,'x',x0);2.4计算结果及总结针对上述Matlab程序,铺设海底光缆的曲线图如下图所示:结果如下:Nl=26.4844,即为所求近似计算光缆长度。本题利用Newton法进行拟合,既简单又使用,运行也可以用复化Simpson-10-求积公式、三次样条插值来拟合,但三次样条插值使用方程组计算增大了计算量,同时还要附加边界条件,分段三次样条插值对图形的控制能力还不够灵活。-11-题目三3.1题目内容假定某天的气温变化记录如下表所示,试用数

1 / 27
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功