




免费预览已结束,剩余7页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数值分析上机报告 姓名: 学号: 专业: 2013年10月27日第一章舍入误差与有效数设,其精确值为。(1)编制按从大到小的顺序,计算的通用程序。(2)编制按从小到大的顺序,计算的通用程序。(3)按两种顺序分别计算,并指出有效位数。(编制程序时用单精度)(4)通过本上机题,你明白了什么?解:(1)#includevoid main()float n,i,s;printf(please input n=);scanf(%f,&n);for(i=2,s=0;i=n;s+=1/(i*i-1),i+);printf(s=%fn,s);(2)#includevoid main()float n,i,s;printf(please input n=);scanf(%f,&n);for(i=n,s=0;i=2;s+=1/(i*i-1),i-);printf(s=%fn,s);(3) 按从大到小顺序:=0.740049 有效位数6位 =0.749852 有效位数3位 =0.749852 有效位数3位 按从小到大顺序:=0.740050 有效位数5位 =0.749900 有效位数6位 =0.749999 有效位数6位(4) 通过上述实验数据可以看出此次算法使用从小到大的顺序进行得到的数据相对而言更精确,可以得到这样的启示:在计算数值时,要先分析不同算法对结果的影响,避免大数吃小数的现象,找出能得到更精确的结果的算法。第二章(上机题)Newton迭代法(1)给定初值及容许误差,编制Newton法解方程根的通用程序。(2)给定方程,易知其有三个根,。1由Newton方法的局部收敛性可知存在,当时,Newton迭代序列收敛于根。试确定尽可能大的。2试取若干初始值,观察当,时Newton序列是否收敛以及收敛于哪一个根。(3)通过本上机题,你明白了什么?解:(1)#include#include#define eps 0.000001 float f(float x) float f;f=x*x*x/3-x; return(f);float df(float x) float df;df=x*x-1; return (df);void main(void)float x0,x1,a;int k=0;coutx0;doa=-f(x0)/df(x0);x1=x0+a;k+;x0=x1;while(fabs(a)eps);coutktx0;(2)1 #include#includevoid delay(int n) for(n=10000;n0;n-);#define eps 0.01float f(float x) float f;f=x*x*x/3-x; return(f);float df(float x) float df;df=x*x-1; return (df);int judgement(float z)int count=5;float x0,x1,type,type1;x0=z;while(count-0) x1=x0-f(x0)/df(x0);type=fabs(x1); type1=fabs(x1-x0); coutcount=countttype=typettype1=type1n;if(fabs(x1-x0)eps)return 1;x0=x1;delay(30000); return 0; void main(void)float delta=0;int flag=1;while(flag=1)cout方程的根为:n;delta+=eps;flag=judgement(delta);cout输出方程根收敛的区间值:n;coutdelta-eps; /输出收敛的区间值 取esp=0.1,即步长为0.1时,由程序算出=0.78。所以当(-,)时,迭代序列收敛于根。(2)2#include#include#define eps 0.01float f(float x)float f;f=x*x*x/3-x;return f;float df(float x)float df;df=x*x-1;return df;float ddf(float x)float ddf;ddf=2*x;return ddf;main()float x0,x1,a,dt=0;int k=0;dodt=dt+eps;k+;while(f(-dt)*f(dt)=-f(-dt)/df(-dt)&(2*dt=f(dt)/df(dt); printf(请输入x0:);scanf(%f,&x0);if(x0eps);else if(x0-1&x0eps);else if(x0-dt&x0eps);else if(x0dt&x0eps);else if (x01)doa=-f(x0)/df(x0);x1=x0+a;k+;x0=x1;while(fabs(a)eps);printf(收敛域=%f,迭代次数=%dn,dt,k);printf(根=%fn,x0);-1000-0.95-0.7500.791.5-100-0.90-0.500.8210-10-0.84-0.100.88100-8-0.81000.90500-2-0.800.300.951000-1.2-0.790.7500.9910000由上表可以看出, 在(-,-1)内收敛于,在内收敛于,在(1,+)内收敛于,但在内和均可能收敛于和。(3)在用迭代法进行计算的时候,初值的选择很关键,所选择的初值必须在一定的范围内,如果超出这个范围,将得不出正确的结果。第三章39.列主元三角分解法对于某电路的分析,归结为求解线性方程组RI=V,(1)编制解n阶线性方程组Ax=b的列主元三角分解法的通用程序;(2)用所编制的程序解线性方程组RI=V,并打印出解向量,保留五位有效数;(3)本编程之中,你提高了哪些编程能力?解:(1)#include#includevoid main(void)int i,j,n,k,q;float a1011,s10,s110;coutn;cout输入数组a:endl;for(i=1;i=n;i+)for(j=1;jaij; for(i=1;i=n;i+)for(j=1;j=(n+1);j+)coutaijt;coutn; coutn;int t=1;for(i=1;i=n;i+)si=ai1;float max=fabs(s1);for(i=2;imax)max=fabs(si);t=i;for(j=1;j=(n+1);j+)float b=a1j;a1j=atj;atj=b; for(i=2;i=n;i+)ai1=ai1/max; for(i=1;i=n;i+)for(j=1;j=(n+1);j+)coutaijt;coutn;coutn;for(k=2;k=n;k+)for(i=k;i=n;i+)float sum=0;for(q=1;qk;q+)sum+=aiq*aqk;s1i=aik-sum;int l=k;float m=fabs(s1k);for(i=k;im)m=fabs(s1i);l=i; for(j=1;j=n+1;j+) float s2=akj;akj=alj;alj=s2;for(j=k;j=n+1;j+)float sum1=0;for(q=1;qk;q+)sum1+=akq*aqj;akj=akj-sum1;for(i=k+1;i=n;i+)float sum2=0;for(q=1;qk;q+)sum2+=aiq*aqk;aik=(aik-sum2)/(akk); for(i=1;i=n;i+)for(j=1;j=(n+1);j+)coutaijt;cout=1;i-)xn=ann+1/ann;float sum3=0;for(j=i+1;j=n;j+)sum3+=aij*xj;xi=(ain+1-sum3)/aii; for(i=1;i=n;i+)coutxi=xiendl; (2)方程的解为:x1= -0.28923,x2= 0.34544,x3= -0.71281,x4= -0.22061,x5= -0.43040,x6= 0.15431,x7= -0.057823,x8= 0.20105,x9= 0.29023。(3) 在此次编程过程中,用到了多次for循环结构,有多层嵌套,程序较为复杂。此外在解方程组过程中,数组起了很大的作用,可以更加方面的写出程序。我提高了分步解决问题的能力,并且更加熟悉循环语句的运用,40逐次超松弛迭代法(1)编制解n阶线性方程组Ax=b的SOR方法的通用程序(要求);(2)对于39题中所给的线性方程组,取松弛因子,容许误差,打印松弛因子、迭代次数、最佳松弛因子及解向量。解:#include#include#define eps 0.5e-5 void main(void)int i,j,l;float w,t;float m9;float sum;float a99=31,-13,0,0,0,-10,0,0,0,-13,35,-9,0,-11,0,0,0,0,0,-9,31,-10,0,0,0,0,0,0,0,-10,79,-30,0,0,0,-9,0,0,0,-30,57,-7,0,-5,0,0,0,0,0,-7,47,-30,0,0,0,0,0,0,0,-30,41,0,0,0,0,0,0,-5,0,0,27,-2,0,0,0,-9,0,0,0,-2,29;float b9=-15,27,-23,0,-20,12,-7,7,10;float max(float m9);for(t=1;t=99;t+)l=0;float x09=1,1,1,1,1,1,1,1,1;float x19=1,1,1,1,1,1,1,1,1;w=t/50;dofor(i=0;i9;i+)x0i=x1i;for(i=0;i9;i+)sum=0;for(j=0;ji;j+)sum=sum+aij*x1j;for(j=i+1;j9;j+)sum=sum+aij*x0j;x1i=(1-w)*x0i+w*(bi-sum)/aii;for(i=0;i=eps);if(max(m)=eps)cout迭代次数=ltw=wn;for(i=0;i9;i+)coutx1i=x1it;cout-n;float max(float m9)float k;k=(fabs(m0);for(int i=1;ik)k=fabs(mi);return k; 迭代次数 迭代次数 迭代次数 迭代次数0.02 12910.04 7000.06 4860.08 3730.10 3030.12 2550.14 2210.16 1940.18 1730.20 1560.22 1420.24 1300.26 1200.28 1110.30 1030.32 960.34 900.36 850.38 800.40 750.42 710.44 680.46 640.48 610.50 580.52 550.54 530.56 510.58 480.60 460.62 440.64 420.66 410.68 390.70 370.72 360.74 340.76 330.78 320.80 300.82 290.84 280.86 270.88 260.90 250.92 240.94 230.96 220.98 211.00 201.02 191.04 181.06 171.08 161.10 151.12 151.14 141.16 121.18 101.20 111.22 121.24 121.26 131.28 131.30 141.32 151.34 151.36 161.38 171.40 181.42 191.44 191.46 201.48 211.50 221.52 241.54 251.56 271.58 301.60 311.62 341.64 361.66 391.68 441.70 491.72 551
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2019年党建知识竞赛简答题题库及答案
- 2025年国内贸易买卖合同范本下载
- 2025合伙权益解决方案合同协议书
- 2025中国建设银行贷款合同范本
- 2025合法的服装分销合同协议
- 2025年农村果园承包合同范本
- 2025云端存储合同范本
- 企业安全培训巡查课件
- 2022年五险一金培训
- 超声监测眼晶状体变化-洞察及研究
- 桥梁检测评定与加固技术(第2版) 课件 第6章 桥梁检查与评定
- 兼职健身教练合作协议3篇
- 粮食安全政策
- UL2034标准中文版-2017一氧化碳报警器UL中文版标准
- 【MOOC】认识飞行-上海工程技术大学 中国大学慕课MOOC答案
- 国际商务谈判 习题答案、练习题及答案(白远)
- 关节活动维持与改善技术
- 幼儿园饮用水突发污染事故应急处理预案
- 政治-中国特色社会主义教材探究与分享参考答案高中政治统编版必修一
- 湖南省长沙市师大附中博才实验中学2024-2025学年九年级上学期开学考试语文试题
- 《赏书法之韵》教学课件1
评论
0/150
提交评论