2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > c语言编程非线性方程求解 c语言计算机编程三种方法求解非线性方程.doc

c语言编程非线性方程求解 c语言计算机编程三种方法求解非线性方程.doc

时间:2021-07-03 07:28:42

相关推荐

c语言编程非线性方程求解 c语言计算机编程三种方法求解非线性方程.doc

c语言计算机编程三种方法求解非线性方程.doc

本 科 专 业 学 年 论 文题 目非线性方程求解比较姓 名 何 娟 专 业 计算机科学技术系 班 级 08 级本科(2)班 指 导 老 师 刘 晓 娜 完成日期 年 11 月 21 日计算机学年专业论文 非线性方程求解- 1 -题 目非线性方程求解比较摘 要本文给出了三种求解非线性方程的方法,分别是二分法,牛顿迭代法,割弦法。二分法巧妙地利用插值得到的点以及有根区间中点这两点处的函数值,缩小隔根区间,以期望得到更快的收敛速度。牛顿迭代法是非线性方程根的一种常见的数值方法,对于非线性方程的单重零点来说,牛顿迭代法一般具有局部二阶收敛性,但是当所求的根 X*是 FX的 M 重根时,M 是大于等于 2 的整数,此时牛顿迭代法只有一阶收敛性。弦截法是将牛顿迭代公式中用差商 F -F kx1/ ( - )代替导数 。本文给出了算法改进的具体步骤及算法流程图kx1kFx相关的数值结果也说明了方法的有效性。关 键 词 二分法;牛顿迭代法;割弦法;非线性方程计算机学年专业论文 非线性方程求解- 2 -目 录第一章 绪 论 1 第二章 求解非线性方程的三种常见算法 2 2.1 二分法 2 2.2 牛顿迭代法 3 2.3 割弦法 5 第三章 求解非线性方程的三种算法比较 6 3.1 二分法求解方法 6 3.2 牛顿迭代法求解 8 3.3 割弦法求解 9 参 考 文 献 12计算机学年专业论文 非线性方程求解- 3 -第一章 绪 论在科技飞速发展的今天,计算机已经成为我们生活中不可缺少的一部分了,在我们生活与生产中扮演越来越重要的角色,而科学计算已经成为科学计算的重要方法之一,其应用范围已渗透到所有科学领域,作为科学与工程计算的数学工具,计算方法已成为高等院校数学与应用数学,信息与计算科学,应用物理学等必修课。 在永恒变化发展的自然界与人类社会中,在研究其内部规律的各个科学领域中,更深刻、更精确地描述其内部规律的数学工具之一,就是非线性方程。非线性代数是研究大规模离散数据的运算处理与内在性状的数学科学,科学技术离不开数据处理与数据分析,因此非线性代数具有广泛的应用。无论在物理学、力学、化学、控制论等科学领域中,非线性方程屡见不鲜。就是在生命科学领域中,也是用非线性方程来描述生命过程中的能量、信息、物质等传递过程的。因此,对非线性方程的求解自然就是一个非常重要了。然而求解非线性方程有很多种方法,每种方法都有自己的优缺点。目前已有的数学软件可以帮助我们实现上机计算,基本上已经将数值分析的主要内容设计成简单的函数,只要调用这些函数进行运算便可得到数值结果。非线性代数中许多数值计算与计算机结合,才能得到更很好,更快,更精准的结果。为了将计算机与线性代数方程组更好的结合在一起,本文做了比较全面的的解说。本文比较全面的介绍了现代计算机科学与工程计算中常见的数值计算方法,对这些数值计算方法的基本理论与实际计算机实践应用进行了详细的分析,同时还简要的分析了这些数值算法的计算效果,稳定性,收敛效果,适用范围以及优劣性与特点。本文着重于化抽象为具体,引用一个具体的非线性方程用发散性的思维对其进行彻底的分析,主要有 引入一个非线性方程,分别运用三种思想进行分析,得到三种解法的根本思想; 把数学方法与数学思想提出来,并进行简洁易懂的理论证明,既突出了线性代数的理论和基本思想,又可以帮助读者对该数学方法的理解; 给出各种算法的循环思想以及流程图,展现出一个清新的框架在读者面前; 基于 c 语言的基础上,写出可执行的代码。 对各种算法得到的结果进行比较分析。计算机学年专业论文 非线性方程求解- 4 -第二章 求解非线性方程的三种常见算法2.1 二分法单变量函数方程f(x)0其中,fx在闭区间a,b上连续、单调,且 fa*fb0,000f则由牛顿法产生的迭代序列 收敛于 fx0 的根 ,且nx*x21limfk定理 2对于方程 fx0,设 f(x)在a,b上有二阶连续导数且满足下述条件(1)fafb* *xf0,当 【 -, 】时,由牛顿迭代法 (k0,1,2 ,)式产0 xx1kkfx生的序列 是以不低于二阶的收敛速度收敛到 .n *2.3 割弦法 设 , 为方程 fx0 的两个近似根。用差商得f -f / - ,kx1 kx1kx1代替牛顿迭代公式中的导数 f , 于是得到如下的迭代公式 kx - 。下面研究割弦法的几何意义1kx11kkkxff经过点( ,f )及点( ,f )两点作割线,其点斜式方程为1kx计算机学年专业论文 非线性方程求解- 7 -Yf( )- ,其零点为 X - kx1kkxxffkx把 X 用 表示即得到迭代格式,它又称为双点弦割11kkkff 1k法,需要两个初值此割线与 X 轴交点的横坐标就是新的近似值 ,所以弦截法又称为割线1kx法,如图所示。 下面三个定理为弦割法收敛定理定理 1设 f(x)在其零点 的邻域 U( , ) - , 0*x*x*x*内有二阶连续导数, ,则当 U( , )时,由割弦法式产生的0f0序列 收敛于 ,且收敛的阶为 1.618。nx*定理 2设 在区间a,b 上连续,且满足下述三点f(1)fafb0内有二阶连续导*x*xx数,fx 0 则当 U , 时,由弦割 -01k 11kkkxff计算机学年专业论文 非线性方程求解- 8 -式产生的序列 收敛于 ,且收敛的阶为 1.618。nx*第三章 求解非线性方程的三种算法比较本章主要通过具体实例比较了第二章中三种算法的优缺点,并得到相应结论,求解非线性方程 x*x*x4*x*x-100 在1,2上,x01.5 附近的解精确到0.000 000 001。3.1 二分法求解方法二分法是求方程近似根的方法中行之有效的最简单的方法,它的递推过程简单,便于计算机上实现,实现二分法的基本步骤如下。1 输入有根区间的端点 a,b 及预先给定的精度 exp ;2 计算 xab/2 ;3 若 fa*fx1e-6;0 xprintf“The root is f“, ;0运行结果 n 有根区间a,b f 的符号nxnx1 1.0,2.0 1.5 2 1.0,1.5 1.25 _3 1.25,1.5 1.375 4 1.25,1.375 1.3125 _5 1.3125,1.375 1.343 75 _6 1.3475,1.375 1.359 375 _7 1.359375,1.375 1.367 185 计算机学年专业论文 非线性方程求解- 10 -The root is 1.3652303.2 牛顿迭代法求解步骤1 给出初始近似根 及精度 exp ;0 x2 计算 -f /f ;1x03 若 | - |1e-6;0 xprintf“The root is f“, ;0运行结果The root is 1.3652313.3 割弦法求解步骤1 选择迭代初值 , 及精度 esp ;0 x12 计算 -(f * - / f -f );210 x10 x3 若| - |include define eps 0.00001 /* 容许误差 */define N 100 /* 最大迭代次数 N */float ffloat x /* 定义函数 fx */ float y;y x*x*x4*x*x-10;returny;void main float ,x1, ;0 x2int i;printf“ , “;01scanf“f,f“,xfori1;iN;i -f * - /f -f ; /* 弦截法迭代公式 */2x1101x0iffabs - eps fabsf eps /*满足精度要求输出近似根并退出*/2 printf“nRoot of equation is8.6fn“, ;2xreturn; ; /* 准备下一次迭代的初值 */0 x1 ;2计算机学年专业论文 非线性方程求解- 13 -printf“nAfter d repeat, no solved.n“,N; /* 输出无解信息 */运行结果K f kxkx0 1.0 -5.01 2.0 14.02 1.263 157 895 -1.602274 3843 1.338 827 839 -0.430 364 7444 1.366 616 395 -0.022 909 4275 1.365 211 903 -2.990 671*pow10,-46 1.365 200 01 -2.0416*pow10,-77 1.365 230 013 0.08 1.365 230 013 0.0Root of equation is 1.365230小结二分法的优点是计算简单,方法可靠,误差容易估计,只要求连续,且总是收敛的,因此对函数的性质要求较低。它的缺点是不能求偶数重根,也不能求复根,且收敛较慢。故一般不单独将其用于求根,只用其为根求得一个较好的近似值。 牛顿迭代法是多项式求根的一种效率很高的算法,收敛速度快(对单根) 。算法简单是迭代法中较好者,但是它有两个缺点第一每次只能求出一个 根,求其它根时若采用降次处理又会产生精度降低的问题。第二有时会遇到由于初始点选择不当而使算法失效。,牛法和割弦法都是先将 fx线性化,然后求根,但线性化的方式不同从分析的角度说,牛顿法是在根 *x 邻近点处的切线函数作为 fx的近似,而割弦法是在* x 邻近用 fx的一次插值函数作为 fx的近似函数,它们本质的区别在于,牛顿迭代法在计算 时,只用到前一步的值 ,弦截法需要用两1k kx个猜测值 , , 因此使用这种方法必须先给出两个初始值 , 。1k 10根据以上三种方法的优缺点,我们在使用非线性方程求根时,应根据实际方程选出一种或者多种方法进行综合求解,以便快速,便捷的求出最佳精确值。计算机学年专业论文 非线性方程求解- 14 -参 考 文 献1 郭曦娟,Jacobi 和 Gauss-Seidel 迭代法收敛性的判定【J】,东北重型机械学院学报,199519(1) 。2 郝福华,侯建强,孟晋忠,迭代法在编程中的应用【J】,山西水利科技,1995109(5) 。3 赵艳霞,非线性方程求根的迭代法研究【J】,鸡西大学学报。8(2) 。4 黄忆潭,王德明,割线法向牛顿法德过度格式【J】 ,哈尔滨工业大学学报,199527(4) 。5 吴新元,解非线性方程的二阶收敛指数迭代法【J】,计算方法,199820(4) 。6 程小力,牛顿法的收敛性【J】,浙江工业大学学报,199725(3) 。7 倪攸颖,求解非线性方程的一种半隐式迭代法【J】,哈尔滨理工大学学报,19983(2) 。8 高虹倪,曹泽阳,一种新的非线性方法的求根迭代法【J】,空军工程大学学报,20023(2)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。