摘 要在科学工作中经常出现这类问题,我们关注求解非线性方程或非线性方程组——求x 使得f (x )=0或求得X= 使得F (X )=0。
这些方程中,至少一个变量以任意的非线性方程形式出现。
在实变量变量的实值函数这种最简单的情况下,提出的一般问题是:已知函数f :R →R ,求x 的解使得f (X )=0这里主要讨论解决这类问题的一般方法和过程。
在许多应用中可以发现非线性方程的例子。
例如在光的衍射理论中,我们需要用到方程:X-tanX=0在行星轨道的计算中我们需要开普勒方程:X-asinX=b其中a 和b 任意取值。
在科学研究和科学计算中常常碰到以上的非线性方程求解问题。
非线性方程的解一般不能解析求出。
所以数值解法显得非常重要,而数值解法在实际中的实现则更为重要。
本文将介绍几种数值解法以及Matlab 中的实现程序。
为研究非线性方程数值解,给出了二分法、简单迭代法和牛顿迭代法的Matlab 程序,并进行了近似计算。
结果表明,牛顿迭代法收敛最快。
关键词:非线性方程;Matlab 程序;二分法;迭代法;简单迭代法;弦截法。
()T1n x x x ⋅⋅⋅2,,非线性方程数值解法1 二分法设f (x)在[a,b]连续,假定f (a)<0,f (b)>0,取中点 ,检查f (x0)符号。
若f (x0)=0,则x0就是一个根;若f (x0)>0,记a为a1,x0为b1,则得有根区间[a1,b1];若f(x0)<0,记x0为a1,b为b1,则得有根区间[a1,b1]。
后两种情况都得到有根区间[a1,b1],它的长度为原区间的一半。
对[a1,b1],令 ,再用同样的方法,可得新的有根区间[a2,b2],它的长度为[a1,b1]的一半,如此反复进行下去,其中每一个区间是前一区间的一半。
有这就是方程的根。
而即为方程的近似根,且有估计误差下面用二分法求在区间[1,2]上的根.因为二分法只能求单根,首先可以搜索函数(2.2)在区间[1,2]的根的情况。