欢迎来到天天文库
浏览记录
ID:12748411
大小:388.86 KB
页数:36页
时间:2018-07-18
《西安交通大学计算方法b上机报告完整题目和程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、西安交通大学计算方法B上机编程报告学号:XXX姓名:XXX专业:工程热物理班级:硕XXXXdate2015/12/10注:本上机报告使用的程序语言均为Matlab语言,为本人独立完成!351.计算以下和式:,要求:(1)若保留11个有效数字,给出计算结果,并评价计算的算法;(2)若要保留30个有效数字,则又将如何进行计算。a)解题思想(1)先根据精度要求估计所需累加的项数n,使用后验误差估计方法,条件为:(m为有效数字位数)。(2)在该题中S的和式存在两个相近的数相减的问题,为了避免有效数字损失,在计算中改变了运
2、算顺序,分别将正数和负数分别相加,然后再将其和相加。(3)为了避免大数吃小数的问题,本题先计算出保留目标有效数字所需要的迭代次数,然后采用倒序相加的方法提高计算精度。b)算法实现的结构1.S1=s2=0;;2.forn=0,1,2,…,iIfend3.forn=i,i-1,i-2,…,0a1=4/(16^n*(8*n+1)); a2=2/(16^n*(8*n+4)); a3=1/(16^n*(8*n+5)); a4=1/(16^n*(8*n+6)); s1=a1+s1; s
3、2=a4+a3+a2+s2;end 35S=s1-s2;a)计算源程序clear;%清除工作空间变量clc;%清除命令窗口命令m=input('请输入有效数字的位数m=');%输入需要的有效数字位数S=0;s1=0;s2=0;%定义存储正数、负数和累加和的变量forn=0:1:1000t=(1/16^n)*(4/(8*n+1)-(2/(8*n+4)-1/(8*n+5)-1/(8*n+6)));ift<=10^(-m)%根据有效数字位数确定所需累加的n值break;endk=n;end;forn=(k-1):-1
4、:0a1=4/(16^n*(8*n+1));a2=2/(16^n*(8*n+4));a3=1/(16^n*(8*n+5));a4=1/(16^n*(8*n+6));s1=a1+s1;%第一项倒序累加s2=a4+a3+a2+s2;%后三项倒序累加endS=s1-s2;%正数累加值和负数累加值的和S=vpa(S,m)%控制S的精度b)计算结果与评价当需保留11位有效数字时,需要将n值加到n=7,s=3.1415926536; 当需保留30位有效数字时,需要将n值加到n=22,s=3.14159265358979311
5、599796346854。 由计算结果可以看出,采用从后往前进行计算的方式,避免了“大数吃小数”35的问题,这种算法很好的保证了计算结果要求保留的准确数字有效位数的要求。另外,中有多个负数相加,按照绝对值递增的顺序求和,减少了舍入误差带来的影响。1.某通信公司在一次施工中,需要在水面宽度为20米的河沟底部沿直线走向铺设一条沟底光缆。在铺设光缆之前需要对沟底的地形进行初步探测,从而估计所需光缆的长度,为工程预算提供依据。已探测到一组等分点位置的深度数据(单位:米)如下表所示:分点0123456深度9.018.9
6、67.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)估算所需光缆长度的近似值,并作出铺设河底光缆的曲线图;a)解题思想该题需要对所需光缆长度进行近似估计,通过对测量数据进行拟合并进行曲线积分即可得到河底光缆长度的近似值。由于数值点较多,如果使用多项式插值,会出现龙格现象导致误差较大,因此
7、,用相对较少的插值数据点作插值,可以避免大的误差,但又希望将所得数据点都用上,且所用数据点越多越好,所以本题采用分段插值方式,即用分段多项式代替单个多项式作插值。分段多项式是由一些在相互连接的区间上的不同多项式连接而成的一条连续曲线,其中三次样条插值方法是一种具有较好“光滑性”的分段插值方法。 在本题中,假设所铺设的光缆足够柔软,在铺设过程中光缆触地走势光滑,紧贴地面,并且忽略了水流对光缆的冲击,故本题使用三次样条插值进行计算精度是最高的。b)算法实现的结构1For1.1351For1.1For1.1.123Fo
8、r3.13.23.3456获取M的矩阵元素个数,记为m7For7.17.27.389For9.110获取x的元素个数存入s 1112For12.1Ifthenbreakelse3512计算光缆长度时,用如下公式:a)计算源程序clear;%清除工作空间变量clc;%清除命令窗口命令x=0:1:20;%将分点位置以数组的形式存储于x中X=0:0.2:20;%将插值后要求的点
此文档下载收益归作者所有