《《数值分析》课程设计报告范文.doc》由会员分享,可在线阅读,更多相关《《数值分析》课程设计报告范文.doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 课程设计报告课程设计题目: 非线性方程求解 2011年 11月 27 日题目:用二分法,简单迭代法、牛顿迭代法以及弦截法求非线性方程误差不超过10-4,输出迭代次数,初始值和根的近似值。一、摘要在matlab环境下运用熟悉的计算机编程语言结合二分法、简单迭代法、牛顿迭代法以及弦截法求解非线性方程,在运行完程序后,对运行结果做出了各方面的分析和比较。最终得出二分法迭代次数最多,需14次,而简单迭代法、牛顿迭代法以及弦截法的迭代次数都较少,只需45次。由于方程有多个解,所以当赋的初始值不同或给定的区间不同时,根的近似值也会有所不同。二、设计目的用熟悉的计算机语言编程,上机完成用二分法、简单迭代法
2、、牛顿迭代法以及弦截法求解非线性方程,掌握各种方法的理论依据及求解思路,了解各种迭代方法的异同。三、理论基础二分法:二分法就是将方程根所在的区间平分为两个小区间,再判断根属于哪个小区间;把有根的小区间再平分为二,再判断根所在的更小的区间,对分;重复这一过程,最后求出所要的近似值。简单迭代法:简单迭代法是将方程化为一个等价的方程:从而构成序列:即给定一个初值,由(2)可算得,再将带入(2)的右端,又可得,。我们为迭代序列,而称(1)式中的为迭代函数,(2)为迭代格式。如果连续,迭代序列收敛于,则就是方程(1)的解。事实上,又,亦即:或所以,如果迭代序列收敛,总能收敛于原方程的解。实际计算中,无穷
3、过程不可能实现,只迭代到一定程度,取作为原方程的近似根。牛顿迭代法:设已知方程的一个近似根,把在处做泰勒展开,若取前两项来近似代替(称为的线性化),则得近似的线性方程:设,解之得。取作为原方程的近似根,即,一般地,再重复用上述方法得:。一般地,有迭代公式上式称为求解的牛顿迭代公式。弦截法:假设方程在区间a,b上有唯一根,在区间a,b内的曲线上任取两点作弦,用此弦与轴的交点横坐标作为方程根的近似值。按此方法进行迭代计算,直到满足精度要求为止。单点弦法:为避免导数的计算,用平均变化率来替代迭代公式中的导数,于是得到:按此公式进行迭代计算就称单点弦截法。按(3)式求得的实际上是弦AB与轴交点的横坐标
4、,下一步再以点()和()作弦交轴得等等。每次作新的弦都以()作为一个端点,只有一个端点不断更换,故名为单点弦截法。四、程序代码及运算结果function y=f(x)y=sin(x)-x.2/2;二分法:clear;clc;a=-2;b=1;chushizhi1=-2chushizhi2=1kg=10(-4);for k=0:20if f(a)*f(b)0 x=errorelse if f(a)*f(b)=0 if f(a)=0 a,k; else b,k; end else m=(a+b)/2; if abs(a-b)0 a=m; else b=m; end k=k+1; end end e
5、ndend运行结果chushizhi1 =-2chushizhi2 =1jinsijie =1.5259e-005diedaicishu =14简单迭代法: x(1)=1for k=1:12 x(k+1)=asin(x(k).2)/2); if (abs(x(k+1)-x(k)0.0001 x(k+1) k break endend运行结果jinsijie =9.9887e-010diedaicishu =5chushizhi =1牛顿迭代法:syms xy=diff(sin(x)-x.2/2,x)y = cos(x)-xfunction y=p(x)y=cos(x)-x;x(1)=-1;fo
6、r k=1:20 if p(x(k)=0 x(k+1)=x(k)-f(x(k)./p(x(k); if (abs(x(k+1)-x(k)0.0001 jinsijie=x(k+1) diedaicishu=k break end endendchushizhi=x(1)运行结果Jinsijie = -2.6055e-010diedaicishu =4chushizhi =-1弦解法:x(1)=-0.1;x(2)=0.2;for k=1:7 if (f(x(k)-f(x(1)=0 x(k+1)=x(k)-f(x(k)*(x(k)-x(1)/(f(x(k)-f(x(1); f(x(k+1) if
7、(abs(x(k+1)-x(k)0.0001 jinsijie=x(k+1) diedaicishu=k break end endendchushizhi1=x(1)chushizhi2=x(2)运行结果jinsijie =1.0816e-006diedaicishu =5chushizhi1 =-0.1000chushizhi2 =0.2000五、结果分析根据二分法求解非线性方程根的原理,将所求方程根所在的区间平分为两个小区间,在判断根属于哪个小区间;把有根的小区间再平分为二,再判断根所在的更小的区间,对分;重复这一过程,最后求出所要的近似值。当所分的小区间的间距越小的时候,得出的方程根结
8、果就越精确,其原因就是所分的小区间间距越小,则就越接近方程等于0的根。所以最后的结果的精度越高,得到的误差越小;而对于简单迭代法,只有在满足一定条件的情况下,才能求解出在区间上有唯一根,使迭代序列收敛于。根据牛顿迭代法的原理,求解出非线性方程根的结果可以看出,牛顿迭代法具有平方收敛的速度,所以在迭代过程中只要迭代几次就会得到比较精确的解,并不像简单迭代法,需要迭代多次才能解出较为精确的结果,但是用牛顿迭代法求解时选定的初值要接近方程的解,否则可能得不到收敛的结果。同时,牛顿迭代法计算量也会相对较大些。单点弦截法,用选定的两个初值点所对应的函数值连接作弦,用此弦与轴的交点横坐标作为方程根的近似值
9、。按此方法进行迭代计算,直到满足精度要求为止。六、设计心得这次数值分析课程设计我们虽然只经历了一周,但是受益匪浅。在刚开始拿到题目时,我们提出很多问题,3个人各有自己的想法,产生了分歧。但经过这一周的时间和体验下来,我们学到的不仅是课本知识,还有团队和合作精神。现在想来,也许学校安排的课程设计有着它更深层的意义,它不仅仅让我们综合那些理论知识来运用到设计和创新,还让我们知道了一个团队凝聚在一起是所能发挥出的巨大潜能!在这次课程设计中,我们运用到了以前所学的专业课知识,如:用二分法、牛顿迭代法、弦截法、matlab汇编语言等。虽然过去都将这些知识用于解题中,未有独立应用过它们,但在学习的过程中带
10、着问题去学我发现效率很高。设计过程,好比我们的成长历程,常有一些不如意,难免会遇到各种各样的问题。这也激发了我今后努力学习的兴趣,通过这次设计,我懂得了学习的重要性,了解到理论知识与实践结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作打下基础。七、参考文献1奚梅成。数值分析方法【M】。合肥:中国科技技术大学出版社,2007.2薛毅。数值分析与实验【M】。北京:北京理工大学出版社,2005.3汪卉琴,刘目楼。数值分析【M】。北京:冶金工业出版社,2004.4丁丽娟,程杞元。数值计算方法【M】。北京:北京理工大学出版社,2005.5李庆扬,易大义,王能超。现代数值分析。北京:高等教育出版社,1995.6薛定宇,陈阳泉。高等应用数学问题的MATLAB求解。北京:清华大学出版社,2008.