计算方法B大作业资料

上传人:人*** 文档编号:552770487 上传时间:2023-05-07 格式:DOC 页数:27 大小:246.04KB
返回 下载 相关 举报
计算方法B大作业资料_第1页
第1页 / 共27页
计算方法B大作业资料_第2页
第2页 / 共27页
计算方法B大作业资料_第3页
第3页 / 共27页
计算方法B大作业资料_第4页
第4页 / 共27页
计算方法B大作业资料_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《计算方法B大作业资料》由会员分享,可在线阅读,更多相关《计算方法B大作业资料(27页珍藏版)》请在金锄头文库上搜索。

1、计算方法上机报告 姓 名:学 号:班 级:目录题目一- 4 -1.1题目内容- 4 -1.2算法思想- 4 -1.3Matlab源程序- 5 -1.4计算结果及总结- 5 -题目二- 7 -2.1题目内容- 7 -2.2算法思想- 7 -2.3 Matlab源程序- 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

2、.1题目内容- 18 -5.2算法思想- 18 -5.3 Matlab源程序- 18 -5.3.1非压缩带状对角方程组- 18 -5.3.2压缩带状对角方程组- 20 -5.4实验结果及分析- 22 -5.4.1Matlab运行结果- 22 -5.4.2总结分析- 24 -5.5本专业算例- 24 -学习感悟- 27 -题目一1.1题目内容计算以下和式:,要求:(1)若保留11个有效数字,给出计算结果,并评价计算的算法;(2)若要保留30个有效数字,则又将如何进行计算。1.2算法思想在程序编写中需要把握以下几点:随着n值的增加,和式的项递减速度很快,因此我们可以认为,在确定为某一精度的前提下,

3、n达到一定的值,加下一项将不会对最终的加和产生影响,首先我们应找到n值。根据精度要求估计所加的项数,可以使用后验误差估计,通项为:为减小舍入误差,在计算s时所采用的方法是逆序相加,其依据是:两个数量级相差较大的数字相加减时,较小数的有效数字会被丧失,从而导致最后的运算结果失真。为避免“大数吃小数”现象的发生,采用逆序相加。对于实现30位有效数字,则调用从工具箱中 digits(位数)或vpa(变量,精度位数)即可实现。1.3Matlab源程序clear;clc; m=input(输入需要求的有效数字位数m=);s=0for n=0:200 %寻找满足条件的最小n s=(1/16n)*(4/(8

4、*n+1)-2/(8*n+4)-1/(8*n+5)-1/(8*n+6); if s=10(-m) %当项小于10-m时,停止循环breakendend;fprintf(n值加至n%dn,n-1); %需要将n值加到的数值for i=n-1:-1:0 %逐项逆序相加求和 s=(1/16i)*(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.1415926536t =0n值加至n22s =3.141592653589793115997963468

5、54从上述的算法思想中可以看出,运算中不仅要满足误差要求,还要尽可能地减少计算量,此外还要考虑舍入误差的影响,这时就要对所运算数据的性质进行分析,设置合适的算法,从而提高运算的精度。而逆序算法能够很好的满足上述要求。题目二2.1题目内容某通信公司在一次施工中,需要在水面宽度为20米的河沟底部沿直线走向铺设一条沟底光缆。在铺设光缆之前需要对沟底的地形进行初步探测,从而估计所需光缆的长度,为工程预算提供依据。已探测到一组等分点位置的深度数据(单位:米)如下表所示:分点0123456深度9.018.967.967.978.029.0510.13分点78910111213深度11.1812.2613.

6、2813.3212.6111.2910.22分点14151617181920深度9.157.907.958.869.8110.8010.93 (1)请用合适的曲线拟合所测数据点;(2)估算所需光缆长度的近似值,并作出铺设河底光缆的曲线图;2.2算法思想利用曲线拟合数据点,即利用数据点拟合差值多项式,我们可以利用Newton法进行拟合,也可以用复化Simpson求积公式、三次样条插值来拟合,但三次样条插值使用方程组计算增大了计算量,同时还要附加边界条件,分段三次样条插值对图形的控制能力还不够灵活。因此这里用Newton形式的差值多项式进行拟合。首先计算出各差商,然后计算出Newton差值多项式的

7、每一项,最后将所有项相加,即可计算出Newton差值多项式,然后利用所得的差值多项式一次算出多个点的函数值。MATLAB的plot函数进行绘图。计算长度近似值,只需将每隔两点之间的距离算出,然后一次相加,所得的折线长度,即为长度的近似值。2.3 Matlab源程序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;%输入

8、给定的数据点xi=0:20;Nx,Ni=Newton(x,y,xi); %调用函数,建立Newton差值多项式plot(xi,Ni); %绘制拟合的曲线图 long=0; %为长度赋初值for i=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;for i=1:n-1 %计算Newton插值多项式 for j=i+

9、1:n yi(j)=(y(j)-y(i)/(X(j)-X(i); end m(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求积公式、三次样条插值来拟合,但三次样条插值使用方程组计算增大了计算量,同时还要附加边界条件,分段三次样条插值对图形的控制能力还不够灵活。题目三3.1题目内容假定某天的气温变化记录如

10、下表所示,试用数据拟合的方法找出这一天的气温变化的规律;试计算这一天的平均气温,并试估计误差。时刻0123456789101112平均气温15141414141516182020232528时刻131415161718192021222324平均气温3134312927252422201817163.2算法思想在本题中,数据点的数目较多。当数据点的数目很多时,用“多项式插值”方法做数据近似要用较高次的多项式,这不仅给计算带来困难,更主要的缺点是误差很大。用“插值样条函数”做数据近似,虽然有很好的数值性质,且计算量也不大,但存放参数的量很大,且没有一个统一的数学公式来表示,也带来了一些不便。另一

11、方面,在有的实际问题中,用插值方法并不合适。当数据点的数目很大时,要求通过所有数据点,可能会失去原数据所表示的规律。如果数据点是由测量而来的,必然带有误差,插值法要求准确通过这些不准确的数据点是不合适的。在这种情况下,不用插值标准而用其他近似标准更加合理。通常情况下,是选取使最小,这就是最小二乘近似问题。在本题中,采用“最小二乘法”找出这一天的气温变化的规律,使用二次函数、三次函数、四次函数以及指数型函数,计算相应的系数,估算误差,并作图比较各种函数之间的区别。给定数据点和一组函数。求数(假定),使函数满足为计算方便,只需考虑最小二乘近似问题的解应使上式成立;在中,它是ak的二次函数,因此其取

12、极小值的必要条件为,即经过推导知,若记则最小二乘问题的法方程为解此法方程,就可以得到各项系数,数据拟合之后便可知道一天中温度变化趋势。3.3Matlab源程序clearclcA = 0:24;B =15,14,14,14,14,15,16,18,20,20,23,25,28,31,32,41,29,27,25,24,22,20,18,17,16;%输入给定的数据G = zeros(25,7); %给矩阵G赋初值for i = 1 : 25; for j = 1 : 7;G(i,j) = A(i)(j-1);endendx1 = (G*G)(G*B); %按法方程法算出各项系数a =zeros(1,7);for n = 1:7a(1,n) = x1(8-n,1);end %各项系倒序排列x = 0:0.1:24;plot(x,polyval(a,x),b) %绘制曲线 hold on fx=polyval(a,x)sum=0for i=1:240 %计算曲线下面积 sum=sum+(fx(i)+fx(i+1)*0.1/2endaverage=sum/24

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号