- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《计算方法与实习》二分法论文.doc
玉林师范学院
数学与信息科学学院
《计算方法与实习》课程论文
(2015—2016学年度第一学期)
姓名: 黄
专业: 信息与计算科学
班别: 信计2013班
年级: 2013级
学号: 2013
日期: 2016年 1 月 3日
方程求根修改的二分法
摘 要
代数方程的求根问题是一个古老的数学问题。在许多实际问题中常会遇到求解非线性方程的问题,而一般非线性方程都没有直接的求解公式,因此需要通过一些数值方法逼近方程的解。在求解方程近似根的方法中,最直观,最简单的方法就是二分法。设函数f(x)在[a,b]上连续,严格单调,且f(a)f(b)0,则[a,b]为f(x)=0一个有根区间。传统的二分法思想是用对分区间的方法根据分点处函数f(x)值的符号逐步将有根区间缩小,使在足够小的区间内方程有且仅有1个根。
本文主要浅谈一下,对利用修改的二分法来求解一些方程近似解的过程。修改的二分法不同于传统的二分法,每次取不同的分点,分点的取法为则令,那么修改的二分法分点为,即。最后利用matlab程序检验该方法的正确性和有效性,使其成为二分法求解方程近似根的一个有效的方法。
关键词:修改的二分法 非线性方程近似根 matlab程序
方程求根修改的二分法
引言
二分法,也称区间对分法,是求解非线性方程的一个比较古老的方法,在现实生活中有着广泛的应用。利用二分法求解非线性方程的近似根,不仅仅是当代大学生要学习的基础知识,而且,在工程和科学技术中许多问题常常归结为求解非线性方程的问题,例如,在控制系统的设计领域,人口增长率的研究等等。
传统的二分法求解非线性方程f(x)的近似解的步骤为:
确定区间[a,b],验证f(a)f(b)0,给定精度;
求区间[a,b]的中点x1;
计算f(x1);
(若f(x1)=0,则x1就是函数的零点;
(若f(a)f(x1)0,则令b=x1(此时零点x0(a,x1));
(若f(x1)f(b)0,则令a=x1(此时零点x0(x1,b));
判断是否达到精确度,即若|a-b|,则得到零点近似值a(或b),否则重复2~4。
利用平分区间及无限数值逼近的数学思想,是对解析性较好的函数避开其复杂运算,近似地计算,有效的解题的一种行之有效的算法。但从另一个角度考虑逼近,会收到良好的效果,而修改的二分法区别于传统的二分法,就在于分点的选取,每次取不同的分点,分点的取法为则令,那么修改的二分法分点为,即。而修改的二分法求解近似根的步骤与传统的二分法求解步骤就区别在第二步,将原来的第二步修改为求区间[a,b]的,即求a+53*(b-a)/60,其余步骤不变。
修改的二分法在求解非线性方程的近似根方面有着广泛的应用,确定了隔根区间,那么该方法数值性能更稳,事先可以控制精度,再加上算法原理特别的简单,matlab程序容易理解和操作,所以有理由成为解非线性方程的首选。
算法理论
二分法的理论依据是“函数零点的存在性定理”:如果函数y=f(x)在区间[a,b]上的图像是连续不断的一条曲线,并且有f(a)f(b)0,那么,函数y=f(x)在区间[a,b]内有零点,即存在x0(a,b),使的f(x0)=0,这个x0也就是方程y=f(x)=0的根。
算法模型
取区间[a,b]长度的53/60,即点a+53*(b-a)/60,那么我们可以估计出绝对误差限仅为区间长的53/60或是7/60。如果这个结果能满足精度要求,我们就停止进一步的计算;如果不能,就求出f(x),取点x=a+53*(b-a)/60,结果只能是下面三种情况之一:
(1) f(a)f(x)0,此时我们有x0∈[a,x];
(2) f(x)f(b)0,此时我们有x0∈[x,b];
(3) f(x)=0,此时x即为问题的精确解。
在前两种情况下,我们可以用x分别替换原问题中的b或a,从而把求解的区间减小了。这样我们又可以取新区间[a,b]的53/60点。经过N次迭代后,剩下的区间长为(b-a) (53/60)^n。如此继续下去,在这一些相互包含的子区间中构造收敛的数列{Xk}来逼近根 x0。
假设f(x)=0,在区间[a,b]中只有一个根,且满足f(a)f(b)0,则利用改进的二分法构造求根过程为:
建立名为fun.m的M文件,如:function y1=fun(x)
y1=f(x);
将二分法的主程序保存名为gjerfen.m的M文件;
在matlab工作窗口中输入程序:
文档评论(0)