欢迎来到天天文库
浏览记录
ID:14189689
大小:285.50 KB
页数:17页
时间:2018-07-26
《matlab非线性方程的解法(含牛拉解法)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、非线性方程的解法(含牛拉解法)1引言数学物理中的许多问题归结为解函数方程的问题,即,(1.1)这里,可以是代数多项式,也可以是超越函数。若有数为方程的根,或称函数的零点。设函数在内连续,且。根据连续函数的性质知道,方程在区间内至少有一个实根;我们又知道,方程的根,除了极少简单方程的根可以用解析式表达外,一般方程的根很难用一个式子表达。即使能表示成解析式的,往往也很复杂,不便计算。所以,具体求根时,一般先寻求根的某一个初始近似值,然后再将初始近似值逐步加工成满足精度要求为止。如何寻求根的初始值呢?简单述之,为了明确起
2、见,不妨设在区间内有一个实的单根,且。我们从左端出点出发,按某一预定的步长一步一步地向右跨,每跨一步进行一次根的“搜索”,即检查每一步的起点和(即,)的函数值是否同号。若有:(1.2)那么所求的根必在内,这时可取或作为根的初始近似值。这种方法通常称为“定步长搜索法”。另外,还是图解法、近似方程法和解析法。2迭代法2.1迭代法的一般概念迭代法是数值计算中一类典型方法,不仅用于方程求根,而且用于方程组求解,矩阵求特征值等方面。迭代法的基本思想是一种逐次逼近的方法。首先取一个精糙的近似值,然后用同一个递推公式,反复校正这
3、个初值,直到满足预先给定的精度要求为止。17对于迭代法,一般需要讨论的基本问题是:迭代法的构造、迭代序列的收敛性天收敛速度以及误差估计。这里,主要看看解方程迭代式的构造。对方程(1.1),在区间内,可改写成为:(2.1)取,用递推公式:,(2.2)可得到序列:(2.3)当时,序列有极限,且在附近连续,则在式(2.2)两边极限,得,即,为方程(2.1)的根。由于方式(1.1)和方程(2.1)等价,所以,即,式(2.2)称为迭代式,也称为迭代公式;可称为迭代函数。称求得的序列为迭代序列。2.2程序和实例下面是基于MAT
4、LAB的迭代法程序,用迭代格式,求解方程,其中初始值为。**************************************************************************function[p,k,err,P]=fixpt(f1021,p0,tol,max1)%f1021是给定的迭代函数。%p0是给定的初始值。%tol是给定的误差界。%max1是所允许的最大迭代次数。%k是所进行的迭代次数加1。17%p是不动点的近似值。%err是误差。%P={p1,p2,…,pn}P(1)=p0;f
5、ork=2:max1P(k)=feval('f1021',P(k-1));k,err=abs(P(k)-P(k-1))p=P(k);if(err6、件先定义一个名为f1021.m的函数文件。functiony=f1021(x)y=sin(x)/x;建立一个主程序prog1021.mclcclearallfixpt('f1021',0.5,10^(-5),20)然后在MATLAB命令窗口运行上述主程序,即:>>prog1021计算结果如下。k=2err=0.4589k=3err=0.105217k=4err=0.0292k=5err=0.0078k=6err=0.0021k=7err=5.7408e-004k=8err=1.5525e-004k=9err=4.17、975e-005k=10err=1.1350e-005k=11err=3.0688e-006P=Columns1through60.50000.95890.85370.88290.87510.8772Columns7through110.87660.87680.87670.87670.8767ans=0.87673二分法3.1二分法原理二分法是方程求解最直观、最简单的方法。二分法以连续函数的介值定理为基础的。由介值定理知道,若函数区间上连续,且,即和负号相反,则在内一定有实根。二分法的基本思想是:用对分区间的方法根8、据分点处函数17的符号逐步将有限区间缩小,使在足够小的区间内,方程有且仅有一根。下面简述其基本步骤。首先记。用中点将区间等分成2个小区间:和。然后分析可能存在的三种情况:如果,则是零点,也就是方程的根。如果,则区间内存在零点。如果,则区间内存在零点。对有根的新区间施行同样的操作,于是得到一系列有空的区间:(3.1)其中每1个区间的长度都是前一区间长度的一半,
6、件先定义一个名为f1021.m的函数文件。functiony=f1021(x)y=sin(x)/x;建立一个主程序prog1021.mclcclearallfixpt('f1021',0.5,10^(-5),20)然后在MATLAB命令窗口运行上述主程序,即:>>prog1021计算结果如下。k=2err=0.4589k=3err=0.105217k=4err=0.0292k=5err=0.0078k=6err=0.0021k=7err=5.7408e-004k=8err=1.5525e-004k=9err=4.1
7、975e-005k=10err=1.1350e-005k=11err=3.0688e-006P=Columns1through60.50000.95890.85370.88290.87510.8772Columns7through110.87660.87680.87670.87670.8767ans=0.87673二分法3.1二分法原理二分法是方程求解最直观、最简单的方法。二分法以连续函数的介值定理为基础的。由介值定理知道,若函数区间上连续,且,即和负号相反,则在内一定有实根。二分法的基本思想是:用对分区间的方法根
8、据分点处函数17的符号逐步将有限区间缩小,使在足够小的区间内,方程有且仅有一根。下面简述其基本步骤。首先记。用中点将区间等分成2个小区间:和。然后分析可能存在的三种情况:如果,则是零点,也就是方程的根。如果,则区间内存在零点。如果,则区间内存在零点。对有根的新区间施行同样的操作,于是得到一系列有空的区间:(3.1)其中每1个区间的长度都是前一区间长度的一半,
此文档下载收益归作者所有