网站大量收购闲置独家精品文档,联系QQ:2885784924

第3篇 一元非线性方程的数值解法.pdf

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 一元非线性方程的数值解法 3.1 引言 在工程和科学技术领域中,经常会遇到求解一 元非线性方程的问题。例如方程: 7x6  x3  x 2  0 sin xex  0 前者是一个6次代数方程,后者是一个超越方程。 这些方程看似简单,但理论上已证明,对于次数 大于等于5的代数方程,一般不能用代数方法求其 准确根。而在实际问题中,只要能获得满足一定 精确度的近似根即可。所以研究一元非线性方程 近似根的数值解法,具有重要的现实意义。 关于根的存在性的一个重要结 论:如果函数 f (x)  0在区 间 [a,b]上连续 ,严格单调 , 且 f (a) f (b)  0,则在[a,b] 内 方程 f (x)  0 有且仅有一个 实根。 * 假设 f (x) 在某个区间 (a,b) 内有且仅有一个实根 x 。若 数值 x0 较小,那么可在 b a 上任取一点 (a,b)作为方 程的初始近似根。 求出方程 (3.1)的某个初始近似根后,就可采用适当的方 法,使近似根进一步精确化。 本章要介绍的几种求方程的根的常用数值解法,即二分法、 牛顿迭代法、弦截法以及埃特金迭代法,都是将方程的初始 近似根逐步精确化的方法。 3.2 二分法 3.2.1 二分法(Bisection method)及其基本思想 3.2.2 实现二分法的基本步骤 二分法是求方程近似根的方法中行之有效的最简单 的方法,它的递推过程简单,便于计算机上实现,实现 二分法的基本步骤如下。 (1) 输入有根区间的端点 a,b 及预先给定的精度  ; (2) 计算 x  (a b) / 2 ; (3) 若 f (a) f (x)  0 ,则 b  x ;否则 a  x ; (4) 若 ,则输出方程满足精度要求的根 ,计算 b a  x 结束;否则转(2)。 例3.1 用二分法求方程 f (x)  x3 10x 20  0 在 (1,2)内的根,取  104 #include math.h #define f(x) ((x*x+10)*x-20) #define eps 0.0001 /* 容许误差 */ main() { float a,b,y,x; int k=0; printf(a,b=); scanf(%f, %f ,a ,b); if(f(a)*f(b)=0) /* 判断是否符合二分法使用的条件 */ { printf(Not bisect of bisect) ; return ; } do { x=(a+b)/2; k++ ; if(f(a)*f(x)0) /* 如果f(a)*f(x)0,则根在区间的左半部分 */ b=x ; else /* 否则根在区间的右半部分 */ a=x; }while(fabs(b-a)eps);/*判断是否达到精度要求,若没有达到,继续循环*/ x=(a+b)/2; /* 取最后的小区间中点作为根的近似值 */ printf(\n The root is x=%f, k=%d\n,x,k) ; } 程序运行结果: a,b=1↙ The root is x=1.594574, k=14 二分法是电子计算机上一种常用的算 法,它具有简单和易操作的优点,缺点是 收敛较慢,且不能求重根。 3.3 迭代法

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档