数值分析71方程求根与二分法

合集下载

数值分析第7章-方程近似根

数值分析第7章-方程近似根
机动 上页 下页 首页 结束
例7-2 求x x 1 0在1.5附近的根x *。
3
解:( 1)将方程改写成下列形 式 x 3 x1 据此建立迭代公式 x k 1 3 x k 1 (k 0,1,2, )
k xk
k
xk
k
xk
0 1.5 1 1.35721 2 1.33086
它表明定理中的条件(2)可用(2.5)代替。
机动 上页 下页 首页 结束
1 在例7-2中,当 (x) x 1时, (x) (x 1) 2/3 , 3 1 1 1 在区间[1, 2]中, (x) ( ) 3 1, 又因 3 4
3
1 3 2 (x) 3 3 2 故定理1中条件1成立。所以迭代法收敛。 而当 (x) x 3 1时, (x) 3x 2在区间[1,中 2] (x) 1 不满足定理条件。
对定理1的条件(2),在使用时如果
(2.4)
(x) C1[a, b]且对任意x [a, b]有 (x) L 1
则由中值定理可知对x, y [a, b]有 (2.5)
(x) (y ) ( )( x y ) L x - y , (a, b)
机动 上页 下页 首页 结束
例7 - 4 牛顿法求方程x x 5 0的近似根.
3
1)判断根的大致范围
f (0) 5, f (2) 5 x* ( 0,2 )
2)求导判断收敛性
f 3x 2 1 0 单调 f ( x) 6 x 0, 连续
定理2 在定理1的条件下, 对任意初值 x 0 [ a, b], 迭代序列 (2.2)均收敛于 ( x)的不动点x*, Lk | x k x* | | x1 x0 | . 1 L

数值分析实验报告——方程求根

数值分析实验报告——方程求根

《数值分析》实验报告实验一方程求根一、实验目的:掌握二分法、Newton法、不动点迭代法、弦截法求方程的根的各种计算方法、并实施程序调试和运行,学习应用这些算法于实际问题。

二、实验内容:二分法、Newton法、不动点迭代法、弦截法求方程的根、程序的调试和运行,给出实例的计算结果。

观察初值对收敛性的影响。

三、实验步骤:①、二分法:定义:对于区间[a,b]上连续不断且f(a)·f(b)<0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫二分法。

实现方法:首先我们设一方程400*(x^4)-300*(x^3)+200*(x^2)-10*x-1=0,并求其在区间[0.1,1]上的根,误差限为e=10^-4。

PS:本方法应用的软件为matlab。

disp('二分法')a=0.1;b=1;tol=0.0001;n0=100;fa=400*(a.^4)-300*(a.^3)+200*(a.^2)-10*a-1;for i=1:n0 p=(a+b)/2;fp=400*(p.^4)-300*(p.^3)+200*(p.^2)-10*p-1;if fp==0||(abs((b-a)/2)<tol)disp('用二分法求得方程的根p=')disp(p)disp('二分迭代次数为:')disp(i)break;end;if fa*fp>0 a=p;else b=p;end;end;if i==n0&&~(fp==0||(abs((b-a)/2)<tol)) disp(n0) disp('次二分迭代后没有求出方程的根')end;程序调试:运行结果:用二分法求得方程的根p=0.1108二分迭代次数为:14②Newton法定义:取定初值x0,找到函数对应的点,然后通过该点作函数切线,交x轴,得到新的横坐标值,然后找函数对应的点,做切线,得到新的横坐标值,重复上述步骤,多次迭代,直到收敛到需要的精度。

数值分析 第7章 非线性方程求根综述

数值分析 第7章 非线性方程求根综述

7.1.2 二分法
原理:若 f C[a, b],且 f (a) ·f (b) < 0,即两个端点值异号, 且f(x)在区间[a,b]上严格单调,则利用闭区间上 连续函数的性质,可知f(x)在 [a, b]上存在唯一的 零点,其几何意义如下图:
f(b) a x* f(a) b a x* f ( b) f(a)
满足此方程的解x, 称为方程的根, 也称x是函数f(x)的零点.
如果函数f(x)可以写成
f(x)=(x- x*)mg(x),其中g( x*) ≠0. 当m>1时,称x*为方程(1.1)的m重根或称x*是函数f(x)的m
重零点;
当m=1时,称x*为方程(1.1)的单根或称x*是函数f(x)的 单重零点.
b
一、二分法的具体计算过程

f C[a, b] ,现求方程f(x)=0在区间[a,b] 上的根.
设函数f(x)满足 f (a) f (b) 0, 不妨设 f (a) 0, f (b) 0.
ab , 计算区间中点的函数值 第一步: 取区间中点 2 ab ) 0, ①如果 f ( 2 f( ab ), 2
分离区间:许多方程往往有两个以上的根,在某个区间[a,b] 上,如果方程在此区间内只含一个根,我们称此区间为方程的 分离区间。 原理:若 f C[a, b],且 f (a) ·f (b) < 0,即两个端点值异号, 且f(x)在区间[a,b]上严格单调,则利用闭区间上 连续函数的性质,可知f(x)在 [a, b]上存在唯一的 零点,其几何意义如下图: 曲线y=f(x)与 f ( a ) f(b) x轴的交点就是 f(x)的零点.
数理学院
SCHOOL OF MATHEMATICS AND PHYSICS

第二章 数值分析--方程求根

第二章  数值分析--方程求根

第二章 方程求根教学内容:1.二分法 2.基本迭代法 3.牛顿法 4.弦位法5.埃特金法和斯基芬森法 6.重根的情况教学重点:各种算法的思路及迭代公式的构造教学难点:各种算法的收敛性、收敛速度及误差估计计划学时:5-6学时 授课提纲:方程求根就是求函数)(x f 的零点*x ,即求解方程 0)(=x f这里,0)(=x f 可以是代数方程,也可以不是,如超越方程。

方程的根既可以是实数,也可以是复数;既可能是单根,也可能是重根;即可能要求求出给定范围内的某个根,也可能要求求出方程全部的根。

本章介绍的方法对两类方程都适用,但大部分都是要求知道根在什么范围内,且在此范围内只有一个单根。

若有α使得0)(,0)(≠'=ααf f ,则称α是方程0)(=x f 的单根;若有α使得0)(,0)()()()()1(≠==='=-ααααm m f f f f ,则称α是方程0)(=x f 的m 重根。

设)(x f 在区间[a,b]连续,若0)()(<b f a f ,则)(x f 在区间(a,b )内至少有一个实根,若再有)(x f '不变号,则有根区间(a,b )内仅有一个实根。

除特别声明,本章介绍的算法都是求单实根。

2.1 二分法二分法又称区间对分法,是最直观、最简单的一种方法。

2.1.1 二分法原理若 f (x)在[a, b]内单调连续,且f(a) f(b)<0,则f 在(a, b)内必有惟一的实根。

2.1.2 二分法思想区间对分,去同存异 2.1.3 二分法计算步骤步1:令2/)(0b a x +=,计算)(0x f ; 步2:若0)(0=x f ,令0*x x =,计算结束; 步3:若)(0x f *)(a f >0,令0x a =;否则令0x b =;步4:若ε≤-||a b ,令2/)(*b a x +=,计算结束;否则转步1。

2.1.4 二分法误差分析和收敛性记第k 次区间中点为k x ,则有2/)(0*a b x x -≤-,21*2/)(a b x x -≤-,1*2/)(,+-≤-k k a b x x故当∞→k 时,*x x k →。

方程的求根-二分法,迭代法,牛顿法与割线法,代数方程求根的劈因子法

方程的求根-二分法,迭代法,牛顿法与割线法,代数方程求根的劈因子法

Newton method
#include <math.h> #define EPS 1e-6; float f(float x) { float y; y=x*x*x+x*x-3*x-3; return(y); } float f1(float x) {
float y; y=3.0*x*x+2*x-3; return(y);
} float root(float x0) { float x1,m; int n=1; printf("x(0)=%f\n",x0); do { x1=x0-f(x0)/f1(x0); printf("x(%d)=%f\n",n++,x1); if(fabs(f1(x1))<1e-6) { printf("\nNewton method failed"); exit(); } m=x1-x0; x0=x1; } while(fabs(f(x1))>1E-6&&fabs(m)>1e-6); return(x1); } main() { float x0,x; printf("Newton method\ninput x0:\n"); scanf("%f",&x0); x=root(x0); printf("A root of equation is%8.6f",x); }
• 优点: 计算简单,方法可靠,只要求f(x)连续。 • 缺点: 不能求偶数重根,也不能求复根,收敛速 度慢(收敛速度以1/2为公比的等比级数相 同)。 不大单独使用,常用来为其它方程近似 根提供好的初值。
3、迭代法
• 基本思想:一种逐次逼近的方法,首先给 定一个粗糙的初值,然后用同一个迭代公 式,反复校正这个初值,直到满足预先给 出的精度要求为止。

方程求根的数值计算方法

方程求根的数值计算方法
f ( xk ) − f ( xk −1 ) xk − xk −1
代替牛顿法中的导数有
以下快速弦截法迭代公式:
xk +1 = xk − f ( xk ) − f ( xk −1 ) f ( xk )
( xk − xk −1 )
三、方程求根的弦截法
•弦 截 法 求 根 的 基 本 步 骤 : 1 设 定 初 值 x 0 , x1 ; 2 求 出 f ( x 0 ), f ( x1 ); 3 利 用 弦 截 法 求 根 公 式 求 近 似 根 x; x = x1 − f ( x1 ) × ( x1 − x 0 ) /( f ( x1 ) − f ( x 0 )) 4 将 x1作 为 新 的 初 值 x 0, 新 的 近 似 根 x 作 为 新 的 初 值 x1 , 再 回 到 2;...如 此 循 环 往 复 直 到 x − x1 < ε & & f ( x ) < ε 为 止 。 •注 意 : 对 于 弦 截 法 也 有 可 能 陷 入 死 循 环 。 解 决 的办法与牛顿法一样。
*
*
0
*
k +1
k
*
二、方程求根的牛顿法 对于方程 f ( x) = 0 ,设已知它的近似根 为 xk ,则函数 f ( x) 在点 xk 附近可用一阶 泰勒多项式 p( x) = f ( xk ) + f ′( xk )( x − xk ) 来近似, 若取 p( x) =0 的根作为 f ( x ) = 0 新的近似根, 记为 ,则有如下著名的牛顿公式 牛顿公式: x k +1 牛顿公式 相应的迭代函数是:
迭代法的设计思想
– 迭代法是一种逐次逼近法,这种方法使用某个 迭代法是一种逐次逼近法, 固定公式-即迭代公式反复校正根的近似值, 固定公式-即迭代公式反复校正根的近似值, 使之逐步精确化,直至满足精度要求的结果。 使之逐步精确化,直至满足精度要求的结果。 – 迭代法的求根过程分成两步,第一步先提供根 迭代法的求根过程分成两步, 的某个猜测值,即所谓迭代初值, 的某个猜测值,即所谓迭代初值,然后将迭代 初值逐步加工成满足精度要求的根。 初值逐步加工成满足精度要求的根。

数值分析二分法


二分法的实现步骤
04
确定初始区间
01
确定初始区间
选择一个初始的区间,其中包含要找的根。
02
确定终止条
确定初始中点
选择区间的中点作为初始近似值。
计算中点
计算中点
将区间分成两半,取中间点作为新的近似值。
计算中点处的函数值
代入中点处的x值,计算函数值f(x)。
检查中点处的函数值
检查中点处的函数值
比较f(x)与0的大小,判断中点是否为根 。
VS
确定根所在区间
根据函数值的正负,确定根所在的区间。
更新区间
更新区间
根据根所在的区间,重新确定新的区间长度 和区间端点。
更新近似值
将新的区间端点中的较小值作为新的近似值。
重复步骤,直到满足精度要求
重复步骤
重复上述步骤,直到满足终止条件,即区间长度小于预设的精度要求。
收敛性证明
• 证明:由于f(x)在区间[a, b]上连续,且f(a)和f(b)异 号,根据介值定理,存在至少一个零点c属于(a, b)。 每次迭代将区间[a, b]分成两半,即c = (a + b) / 2, 由于f(c)不为零,所以f(a)和f(c)同号或f(c)和f(b)同 号,即至少有一半的区间满足条件,继续迭代直到 达到精度要求。
二分法的重要性
二分法是数值分析中基础而重要的方 法之一,为解决许多实际问题提供了 有效的数值逼近手段。
二分法在金融、工程、物理等领域都 有广泛的应用,如求解微分方程、优 化问题等。
02 二分法的基本原理
定义与公式
定义
二分法是一种求解实数区间[a, b]上函数f(x)零点的迭代算法。
公式
假设f(x)在区间[a, b]上连续,且f(a)和f(b)异号,即f(a) * f(b) < 0。取c = (a + b) / 2,如果f(c) = 0或f(a) * f(c) < 0,则c就是所求的零点。

数值分析——二分法及迭代法

数值分析——二分法及迭代法数值分析是研究用数值方法解决数学问题的一门学科。

在数值分析中,二分法和迭代法是两种常用的数值求解方法。

本文将对二分法和迭代法进行详细介绍,并比较它们的特点和适用范围。

一、二分法二分法是一种通过将问题分解为两个子问题,并选择其中一个子问题进行求解的方法。

它适用于解决连续函数的求根问题。

二分法的基本思想是利用中值定理,通过不断缩小区间来逼近根的位置。

具体步骤如下:1.选取一个初始的区间[a,b],确保f(a)和f(b)的符号相反。

2.计算区间的中点c=(a+b)/23.判断f(c)的符号,并更新区间。

若f(c)与f(a)符号相反,则更新区间为[a,c];否则更新区间为[c,b]。

4.重复步骤2和步骤3,直到满足停止准则(例如满足一定精度要求,或达到最大迭代次数)。

5.最后得到的近似根为区间的中点c。

二分法的优点是收敛速度快,且能够保证收敛到根的位置。

然而,二分法的缺点是每次迭代只能减少一半的区间长度,所以其收敛速度相对较慢。

此外,二分法需要事先确定区间,并且要求f(a)和f(b)的符号相反,这对于一些问题来说可能并不容易实现。

因此,二分法主要适用于单峰函数求根问题。

二、迭代法迭代法是一种通过迭代逐步逼近解的方法。

它适用于一般的数值求解问题。

迭代法的基本思想是通过不断迭代的过程,将原始问题转化为一个具有相同解的等价问题,并通过逐步逼近来求解。

具体步骤如下:1.选取一个初始的近似解x_0。

2.根据迭代公式x_{k+1}=g(x_k),计算下一个近似解x_{k+1},其中g(x)是一个适当的函数。

3.判断迭代是否达到停止准则(例如满足一定精度要求,或达到最大迭代次数)。

若满足停止准则,则停止迭代;否则返回步骤2继续迭代。

4.最终得到的近似解为迭代过程中的最后一个近似解x_k。

迭代法的优点是适用范围广,可以求解一般的数值问题。

此外,迭代法的迭代公式可以根据具体问题的特点进行选择,使得迭代过程更加高效。

数值分析——二分法及迭代法

2
, 从而可得一系列有根区间:
a, b a1 , b1 a2 , b2 an , bn
其中每一个区间长度都是前一个区间长度的一半,因此,
an bn b a an , bn 的长度为bn an n ,且 x an , bn , xn , 2 2 bn an b a x x xn x 0, lim n xn x n1 , lim n n 2 2
x6 1.3242 x , 并且 x x6 0.005
三.二分法算法框图
y
什么时候停止?
f ( x)
a
o
x0 x
a1 a2
2
x*
x1
b2
b b1
x
lim x x n n
xk 1 xk ε
开始
输入数据a , b,
二 分 法 的 算 法 框 图
以上方法称为二分法.它计算简单且收敛.
内 例2:求方程 f ( x ) x x 1 0 在区间 1,1.5
3
的实根,要求误差不超过0.005. 解: 首先按公式估计所要的二分次数
ln(1.5 1) ln 0.01 n 5.644 ln 2
可见只需要二分6次便能达到所要求的精度。 计算结果见书13页的表2-2.
非线性方程包括高次方程和超越方程。
方程 f ( x) 0 的解
x

通常叫做方程的根,
又称为函数 f ( x ) 的零点。 方程求根大致可以包括下列三个问题:
1.根的存在性; 2.根的隔离; 3.根的精确化.
如何根的精确化 ?
已知根的近似值后, 设法将它逐步精确, 直到满足精

二分法、试位法,牛顿法求方程的根

二分法、试位法,牛顿法求方程的根二分法、试位法和牛顿法是求解方程根的常用数值方法。

一、二分法二分法是一种简单而有效的数值方法,它通过不断将区间一分为二来逼近方程的根。

它的基本思想是,如果在一个闭区间[a, b]内,函数f(x)在a和b两点的函数值f(a)和f(b)异号,那么函数在[a, b]内至少存在一个根。

算法步骤如下:1.初始化区间[a, b]和误差容限ε。

2.计算区间中点c=(a+b)/2。

3.如果f(c)=0或者(b-a)/2<ε,则停止迭代,c即为近似的根。

4.如果f(c)与f(a)异号,则根在[a, c]内,将b=c,否则根在[c,b]内,将a=c。

5.回到步骤2。

二、试位法试位法也是一种通过逼近来求解方程根的方法。

与二分法不同,试位法通过计算函数在两个点之间的插值点来逼近根。

它的基本思想是,如果在一个闭区间[a, b]内,函数f(x)在两个点a和b之间有一个变号点c,则函数在[a, b]内至少存在一个根。

算法步骤如下:1.初始化区间[a, b]和误差容限ε。

2.计算函数在区间[a, b]上的插值点c。

3.如果f(c)=0或者(b-a)/2<ε,则停止迭代,c即为近似的根。

4.如果f(c)与f(a)异号,则根在[a, c]内,将b=c,否则根在[c,b]内,将a=c。

5.回到步骤2。

三、牛顿法牛顿法又称为牛顿-拉弗森方法,它是一种通过不断迭代逼近根的方法。

牛顿法基于函数的局部线性近似,通过求导数来计算函数在当前近似根附近的切线与x轴的交点作为新的近似根。

算法步骤如下:1.初始化初始近似根x0和误差容限ε。

2.计算函数在当前近似根x的导数f'(x)。

3.如果f'(x)为0,则停止迭代,x即为近似的根。

4.计算函数在当前近似根x的函数值f(x)。

5.如果|f(x)|<ε,则停止迭代,x即为近似的根。

6.计算新的近似根x=x-f(x)/f'(x)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

若f (a) f (x0 ) 0, 则[a, x0 ]为有根区间, 令a1 a,b1 x0
若f (x0 ) f (b) 0, 则[x0 ,b]为有根区间 , 令a1 x0 , b1 b
于是有根区间[a,b]就缩小为[a1,b1], 长度只有一半
继续取[a1 , b1 ]的中点x1
1 2
又因为f (x) 1 cosx 0, x [0,1],故f (x)在[0,1]上单调 递减,因此f (x)在[0,1]上有且仅有一个根.
使用二分法 ,使误差限
xk
x
Hale Waihona Puke 1 2 k 1(b
a)
1 2 k 1
1 10 4 , 解得 2
2k 10 4 , k 4 ln 10 13.2877 ln 2
所以需对分14次即可.
(b
a)
确定适当的n,可得任意要求的精度
搜索法—二分法
When to stop?
a
xa0 x*
xb1 b
xk1 xk ε1 或 f ( x) ε2
不能保证 x 的精 度
2
x*
x
误差 分析:
第0步产生的
x0
a
b 2
有误差
|x0
x*|
b
2
a
第 k 步产生的
xk
有误差 |xk
x*|
ba 2k 1
例 证明1 x sin x 0在[0,1]内仅有一个根 ,使用二分法求误差 不大于 1 10 4的根需要对分多少次 ?
2
解设f (x) 1 x sin x,则f (0) 1 0,f(1) sin(1) 0,且f (x) 在上[0,1]上连续,故方程f (x) 0在[0,1]内至少有一根.
对于给定的精度 ,可估计二分法所需的步数 k :
b a ε k lnb a ln ε 1
2 k 1
ln 2
①简单; ② 对f (x) 要求不高(只要连续即可) .
①无法求复根及偶重根 ② 收敛慢
注:用二分法求根,最好先给出 f (x) 草图以确定根的大概 位置。或用搜索程序,将[a, b]分为若干小区间,对每一个 满足 f (ak)·f (bk) < 0 的区间调用二分法程序,可找出区间 [a, b]内的多个根,且不必要求 f (a)·f (b) < 0 。
第七章 非线性方程求根
/* Solutions of Nonlinear Equations */
求 f (x) = 0 的根
§1 多项式基础 /* Polynomials */ (自习)
§2 二分法 /* Bisection Method */
原理:若 f C[a, b],且 f (a) ·f (b) < 0,则 f 在 (a, b) 上必 有一根。
求方程 f (x) x3 11.1x2 38.8x 41.77 0的 有根区间
x
0123 4 5 6
f(x)的符号 - - + + - - +
由此可知方程的有根区间为[1,2],[3,4],[5,6]
假设区间[a, b]为单根区间,
取其中点x0
1 2
(a
b)
若f (x0 ) 0, x0就是[a,b]中的根
(a1
b1 ),
可得一系列的小区间和中点
小区间
[a0 , b0 ],[a1, b1 ],[a2 , b2 ],,[an , bn ]
中点
x0 , x1 , x2 , , xn
xn
1 2 (an
bn )
显然每个小区间都有单根
n 0,1,2,
(bn
an )
1 2n
(b a)
|xn
xn1|
1 2 n 1
相关文档
最新文档