非线性方程论文_第1页
非线性方程论文_第2页
非线性方程论文_第3页
非线性方程论文_第4页
非线性方程论文_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本本 科科 专专 业业 学学 年年 论论 文文题题 目:目:非线性方程求解比较非线性方程求解比较姓姓 名名: 何 娟 专专 业业: 计算机科学技术系 班班 级级: 08 级本科(2)班 指指 导导 老老 师师: 刘 晓 娜 完成日期:完成日期: 2010 年年 11 月月 21 日日题题 目:目:非线性方程求解比较非线性方程求解比较摘摘 要要 本文给出了三种求解非线性方程的方法,分别是二分法,牛顿迭代法,割弦法。二分法巧妙地利用插值得到的点以及有根区间中点这两点处的函数值,缩小隔根区间,以期望得到更快的收敛速度。牛顿迭代法是非线性方程根的一种常见的数值方法,对于非线性方程的单重零点来说,牛顿迭

2、代法一般具有局部二阶收敛性,但是当所求的根 X*是 F(X)的 M 重根时,M 是大于等于 2 的整数,此时牛顿迭代法只有一阶收敛性。弦截法是将牛顿迭代公式中用差商 F()-F()kx1kx/ (- )代替导数。本文给出了算法改进的具体步骤及算法流程图kx1kx()kF x相关的数值结果也说明了方法的有效性。关关 键键 词词 : : 二分法;牛顿迭代法;割弦法;非线性方程 目目 录录第一章 绪 论1 第二章 求解非线性方程的三种常见算法 2 2.1 二分法二分法2 2.2 牛顿迭代法牛顿迭代法3 2.3 割弦法割弦法5 第三章 求解非线性方程的三种算法比较6 3.1 二分法求解方法二分法求解方

3、法6 3.2 牛顿迭代法求解牛顿迭代法求解 8 3.3 割弦法求解割弦法求解9 参参 考考 文文 献献 12第一章第一章 绪绪 论论 在科技飞速发展的今天,计算机已经成为我们生活中不可缺少的一部分了,在我们生活与生产中扮演越来越重要的角色,而科学计算已经成为科学计算的重要方法之一,其应用范围已渗透到所有科学领域,作为科学与工程计算的数学工具,计算方法已成为高等院校数学与应用数学,信息与计算科学,应用物理学等必修课。 在永恒变化发展的自然界与人类社会中,在研究其内部规律的各个科学领域中,更深刻、更精确地描述其内部规律的数学工具之一,就是非线性方程。非线性代数是研究大规模离散数据的运算处理与内在性

4、状的数学科学,科学技术离不开数据处理与数据分析,因此非线性代数具有广泛的应用。无论在物理学、力学、化学、控制论等科学领域中,非线性方程屡见不鲜。就是在生命科学领域中,也是用非线性方程来描述生命过程中的能量、信息、物质等传递过程的。因此,对非线性方程的求解自然就是一个非常重要了。然而求解非线性方程有很多种方法,每种方法都有自己的优缺点。目前已有的数学软件可以帮助我们实现上机计算,基本上已经将数值分析的主要内容设计成简单的函数,只要调用这些函数进行运算便可得到数值结果。非线性代数中许多数值计算与计算机结合,才能得到更很好,更快,更精准的结果。为了将计算机与线性代数方程组更好的结合在一起,本文做了比

5、较全面的的解说。本文比较全面的介绍了现代计算机科学与工程计算中常见的数值计算方法,对这些数值计算方法的基本理论与实际计算机实践应用进行了详细的分析,同时还简要的分析了这些数值算法的计算效果,稳定性,收敛效果,适用范围以及优劣性与特点。本文着重于化抽象为具体,引用一个具体的非线性方程用发散性的思维对其进行彻底的分析,主要有: 引入一个非线性方程,分别运用三种思想进行分析,得到三种解法的根本思想; 把数学方法与数学思想提出来,并进行简洁易懂的理论证明,既突出了线性代数的理论和基本思想,又可以帮助读者对该数学方法的理解; 给出各种算法的循环思想以及流程图,展现出一个清新的框架在读者面前; 基于 c

6、语言的基础上,写出可执行的代码。 对各种算法得到的结果进行比较分析。 第二章第二章 求解非线性方程的三种常见算法求解非线性方程的三种常见算法2.1 二分法二分法单变量函数方程: f(x)=0其中,f(x)在闭区间a,b上连续、单调,且 f(a)*f(b)0,则有函数的介值定理可知,方程 f(x)=0 在(a,b)区间内有且只有一个解,二分法是通过函数在*x区间端点的符号来确定所在区域,将有根区间缩小到充分小,从而可以求出*x满足给定精度的根的近似值。*x下面研究二分法的几何意义: 设=1, =b, 区间,中点= 及,若=0,则,1a1b11,ba1x211ba 1xf 1xf*x若 f()*f

7、()0,令=,=,则根 ,中,这样就得到长度缩1a1x2a1a2b1x*x2a2b小一半的有根区间,,若 f()*f()0,令=,=,则根 ,2a2b1b1x2a1x2b1b*x2a中,这样就得到长度缩小一半的有根区间,即 f()f()0,此时-2b2a2b2a2b2b=,对有根区间,重复上述步骤,即分半求中点,判断中电处符号,2a211ab 2a2b则可得长度有缩小一半的有根区间,2a2b 如图所示: 重复上述过程,第 n 步就得到根的近似序列及包含的区间套,如*x nx*x下:(1).,.,2211nnbababa(2), 0)()(*nnnnbaxbfaf(3)-=nanb)(1121n

8、nba12nab(4) 且|-| (n=1,2,3.),2nnnbax*xnx12nab显然 lim,且以等比数列的收敛速度收敛于,因此用二分法求nxnx*xf(x)=0 的实根可以达到任意指定精度。*x2.2 牛顿迭代法牛顿迭代法设方程 f(x)=0 在其根的某个领域 U(,)内有一阶连续导数,且 f() *x*x*x0。求 f(x)=0 的根,首先要将 f(x)=0 转化为等价形式,并使 (x)满*x( )xx足不动点迭代的一般理论。 于是我们令 (x)=x+h(x)f(x),可由 ()=0 来确定 h(x)的结构,根据1x(x)=1+h()f()+h()f(x1)=1+h()f()=0

9、可得*x*x*x*x*xh()=-1/f() ,由于 f(x) 0,且 f(x) 连续,因此当 h(x)=-1/f(x) 时, h(x1)*x*x=0,即令 (x)=x-f(x)/f(x), 从而有迭代格式 = (k=0,1,2,.)1kx)( )(kkkxfxfx 由于, , .都在 U 领域里,从而当 B 比较小时,可用 f()可近似代替1x2x3x0 xf(),= - ,此方法称为牛顿迭代法kx1kxkx)()(0 xfxfk下面研究牛顿法的几何意义:设 r 是方程 f(x)=0 的根,选取作为的 r 初始近似值,经过(,f()做曲线0 x0 x0 xy=f(x)的切线的方程:y=f()

10、+f()(x- ),求出 L 与 x 的交点的横坐标= 0 x0 x0 x1x-f()/f(),称为 r 的一次近似值经过点(,f())做切线 y=f(x)的切线,0 x0 x0 x1x1x1x并求出该切线与 x 轴的交点横坐标:= -f()/f(),称为 r 的二次近似值,2x1x1x1x2x重复以上操作可以得到 r 的近似值序列。下述三个定理分别讨论了牛顿法的收敛性质:定理定理 1:对于方程 f(x)=0,设 f(x)在a,b上有二阶连续导数且满足下述条件:(1)f(a)f(b)0,0 x0 x)(0 xf 则由牛顿法产生的迭代序列收敛于 f(x)=0 的根,且 nx*x)(2)()(*2

11、*1limxfxfxxxxkkk 定理定理 2:对于方程 f(x)=0,设 f(x)在a,b上有二阶连续导数且满足下述条件:(1)f(a)f(b)0;(2)对任意的 xa,b, f(x) 0, 0)(xf (3)b-a, *x*x)(xf 0,当【-,+】时,由牛顿迭代法 = (k=0,1,2,.)式产0 x*x*x1kx)( )(kkkxfxfx 生的序列是以不低于二阶的收敛速度收敛到. nx*x2.3 割弦法割弦法 设,为方程 f(x)=0 的两个近似根。用差商得:f()-f()/ - ,kx1kxkx1kxkx1kx代替牛顿迭代公式中的导数 f(), 于是得到如下的迭代公式: kx=-。

12、下面研究割弦法的几何意义:1kxkx)()()()(11kkkkkxxxfxfxf经过点(,f())及点(,f())两点作割线,其点斜式方程为:kxkx1kx1kx Y=f()- ,其零点为 X=- kx)()()(11kkkkkxxxxxfxfkx把 X 用表示即得到迭代格式,它又称为双点弦割)()()()(11kkkkkxxxfxfxf1kx法,需要两个初值此割线与 X 轴交点的横坐标就是新的近似值 ,所以弦截法又称为割线1kx法,如图所示。 下面三个定理为弦割法收敛定理:定理定理 1:设 f(x)在其零点的邻域 U(,)= -, + ( 0)*x*x*x*x内有二阶连续导数,则当U(,)

13、时,由割弦法式产生的0)(* xf0 x*x序列收敛于,且收敛的阶为 1.618。 nx*x定理定理 2:设在区间a,b 上连续,且满足下述三点)(xf (1)f(a)f(b)0)内有二阶连续导*x*x*x*x数,f(x) 0 则当 U(,)时,由弦割=-0 x*x1kxkx)()()()(11kkkkkxxxfxfxf式产生的序列收敛于,且收敛的阶为 1.618。 nx*x第三章第三章 求解非线性方程的三种算法比较求解非线性方程的三种算法比较本章主要通过具体实例比较了第二章中三种算法的优缺点,并得到相应结论,求解非线性方程 x*x*x+4*x*x-10=0 在1,2上,x0=1.5 附近的解

14、精确到0.000 000 001。3.1 二分法求解方法二分法求解方法二分法是求方程近似根的方法中行之有效的最简单的方法,它的递推过程简单,便于计算机上实现,实现二分法的基本步骤如下。(1) 输入有根区间的端点 a,b 及预先给定的精度 exp ;(2) 计算 x=(a+b)/2 ;(3) 若 f(a)*f(x)0,则 b=x;否则 a=x ;(4) 若 |b-a|exp,则输出方程满足精度要求的根 x,则计算结束;否则转(2)。 二分法算法流程图:二分法算法流程图: c 语言代码:#include stdio.h#include math.hfloat function(float x)fl

15、oat f;f=(float) x*x*x+4*x*x-10;return f;void main()float , ,f,f,f;1x2x0 x1x2x0 x=10;x2=-10;1xf()=function();1x1xf()=function();2x2xdo=(+)/2; /*计算中点*/0 x1x2xf()=function(); /*计算中点处的函数值*/0 x0 xif(f()*f()=1e-6);0 xprintf(The root is %f,);0 x 运行结果: n有根区间a,bf()的符号nxnx11.0,2.01.5+21.0,1.51.25_31.25,1.51.3

16、75+41.25,1.3751.3125_51.3125,1.3751.343 75_61.3475,1.3751.359 375_71.359375,1.375 1.367 185+The root is 1.365230 3.2 牛顿迭代法求解牛顿迭代法求解步骤: (1) 给出初始近似根 及精度 exp ;0 x (2) 计算=-f()/f() ;1x0 x0 x0 x (3) 若 |-|=1e-6);0 xprintf(The root is %f,);0 x 运行结果:The root is 1.3652313.3 割弦法求解割弦法求解步骤:(1) 选择迭代初值 , 及精度 esp ;

17、0 x1x(2) 计算 =-(f() *(-)/ f()-f());2x1x1x1x0 x1x0 x(3) 若|-|0,转向(4);否则 =,= ,转向(2);2x1x0 x1x1x2x(4) 输出满足精度的根 ,结束2x算法流程图:c 语言代码:#include #include #define eps 0.00001 /* 容许误差 */#define N 100 /* 最大迭代次数 N */float f(float x) /* 定义函数 f(x) */ float y; y= x*x*x+4*x*x-10; return(y);void main() float ,x1, ;0 x2x

18、 int i; printf(input ,=);0 x1x scanf(%f,%f,&,&);0 x1x for(i=1;i=N;i+) =-(f()*(-)/(f()-f(); /* 弦截法迭代公式 */2x1x1x1x0 x1x0 x if(fabs(-)eps | fabs(f()eps) /*满足精度要求输出近似根并退出*/2x1x2x printf(nRoot of equation is:%8.6fn,);2x return; =; /* 准备下一次迭代的初值 */0 x1x =;1x2x printf(nAfter %d repeat, no solved.n,

19、N); /* 输出无解信息 */ 运行结果:Kf()kxkx01.0-5.012.014.021.263 157 895 -1.602274 38431.338 827 839-0.430 364 74441.366 616 395 -0.022 909 42751.365 211 903-2.990 671*pow(10,-4)61.365 200 01-2.0416*pow(10,-7)71.365 230 0130.081.365 230 0130.0 Root of equation is: 1.365230小结: 二分法的优点是计算简单,方法可靠,误差容易估计,只要求连续,且总是收敛的,因此对函数的性质要求较低。它的缺点是不能求偶数重根,也不能求复根,且收敛较慢。故一般不单独将其用于求根,只用其为根求得一个较好的近似值。 牛顿迭代法是多项式求根的一种效率很高的算法,收敛速度快(对单根) 。算法简单是迭代法中较好者,但是它有两个缺点:第一每次只能求出一个 根,求其它根时若采用降次处理又会产生精度降低的问题。第二有时会遇到由于初

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论