计算方法二分法实验.doc

上传人:桔**** 文档编号:560386021 上传时间:2022-11-03 格式:DOC 页数:4 大小:53.01KB
返回 下载 相关 举报
计算方法二分法实验.doc_第1页
第1页 / 共4页
计算方法二分法实验.doc_第2页
第2页 / 共4页
计算方法二分法实验.doc_第3页
第3页 / 共4页
计算方法二分法实验.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《计算方法二分法实验.doc》由会员分享,可在线阅读,更多相关《计算方法二分法实验.doc(4页珍藏版)》请在金锄头文库上搜索。

1、计算方法上机实验报告土木0804 上机题目;利用二分法求下列方程在【5.5-6.5】的根实验目的:本实验通过二分法对方程求解,通过观察方程x1,x2随二分次数增加而起的变化,以及通过改变方程中七次项系数微小变化对方程求解的影响,加深对二分法求解方程的理解。并锻炼C语言编程能力。实验分析:二分法求解采用的是根的存在定理(零点定理): f(x)为a,b上的连续函数,若 f(a)f(b)0,则a,b中至少有一个实根。如果f(x)在a,b上还是单调递增或递减的,则f(x)=0仅有一个实根。 取a,b的中点x=(a +b)/2作为问题的近似解,那么我们可以估计出绝对误差限仅为区间长的一半,即e=(b-a

2、)/2。如果这个结果能满足精度要求,我们就停止进一步的计算;如果不能,就求出f(x),结果只能是下面三种情况之一:(1) f(a)f(x)0,此时我们有x*a,x; (2) f(x)f(b)0,此时我们有x*x,b;(3) f(x)=0,此时x即为问题的精确解。在前两种情况下,我们可以用x分别替换原问题中的b或a,从而把求解的区间减小了一半。这样我们又可以取新区间a,b的中点。经过N次迭代后,剩下的区间长为(b- a)/ 。这也是结果的绝对误差限。如此继续下去就达到是有根区间逐步缩小的目的,在这一些相互包含的子区间中构造收敛的数列来逼近根 。实验过程:1;C语言程序# include # in

3、clude # include # define PRECISION 1e12double f(double c) double m,x,m1,m2,m3; x=c; m1=x*x; m2=m1*x; m3=m1*m1;m=m3*m3-36*m3*m2+546*m2*m3-4536*m3*x+22449*m3-67284*m2+118124*m1-109584*x+40320; return(m);double Root(float a,float b) int i;i=0;double x1,x2;x1=a;x2=b;do printf (n i=%d,x1=%f,x2=%f ,i,x1,x

4、2); if(f(x1)*f(x1+x2)/2)0) x2=(x1+x2)/2; else x1=(x1+x2)/2; i+;while (i=100);return (x1);void main()float x1,x2,r;printf (n input x1,x2: n ) ;scanf (%f %f,&x1,&x2);r=Root(x1,x2);printf (n Root x=%f,r);2结果分析当a7=-36是,迭代到i=21时,出现x1=x2=6.500000,不再发生变化,出现精确解 x=root=x1=6.500000,收敛速度在数列xn越靠近根时越慢。当a7=-36.00

5、1时,与a7=-36时根的变化相同,迭代到i=21时,出现x1=x2=6.500000,不再发生变化,出现精确解 x=root=x1=6.500000,收敛速度在数列xn越靠近根时越慢。由于整个方程中a(n)有随x的减小而增大,且增大越来越明显,因而虽然a7中n=7但变化只有0.001,对整个函数f(x)而言,影响较小。该方程在求5.56.5间解时,为非病态。实验总结:I:在通晓理论的基础上,才能进行计算机编程实际操作,数学的精髓在于对数学思想的理解;II:编程过程中对变量性质的定义,对求解有很大的影响,如double or float定义实数;III:对具体问题的分析,需要耐心,需要参考一定资料,并不断的尝试不同的路径。

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

最新文档


当前位置:首页 > 生活休闲 > 社会民生

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