非线性方程求根的方法简介与例题

合集下载

第6章 非线性方程求根(1、二分法、迭代法)

第6章 非线性方程求根(1、二分法、迭代法)

(2) 如果将原方程化为等价方程 x = 仍取初值
x0 = 0
3
3
x+1 2
x1 =
x0 + 1 = 2
3
3
1 ≈ 0 .7937 2
1 .7937 ≈ 0 .9644 2
x2 =
依此类推,得 依此类推, x3 = 0.9940 同样的方程 x4 = 0.9990 不同的迭代格式 x5 = 0.9998 x6 = 1.0000 有不同的结果 x7 = 1.0000 已经收敛, 已经收敛,故原方程的解为 x = 1.0000
用一般迭代法求方程x lnx= 在区间( 例:用一般迭代法求方程x-lnx=2在区间(2,∞) 内的根,要求|x 内的根,要求|xk-xk-1|/|xk|<=10-8 f(x)=x-lnx解:令f(x)=x-lnx-2 f(2)<0,f(4)>0,故方程在 2,4) 故方程在( f(2)<0,f(4)>0,故方程在(2,4)内至少有一个根
y p1 p0
y=x y=g(x)
y p0
y=x
p1 x x0 y y=g(x) x1 x* y=x y y=g(x) p0 x0 x* x1
y=g(x)
x
y=x
p0 p1 x x1 x0 x* x0 x* x1 p1 x
f(x)=0化为等价方程x=g(x)的方式是不唯 f(x)=0化为等价方程x=g(x)的方式是不唯 化为等价方程x=g(x) 一的,有的收敛,有的发散. 一的,有的收敛,有的发散. example: For example:2x3-x-1=0
1 3 ( x + 1 ) = g ( x ) 进行迭代,则在 进行迭代,则在(1, 3

非线性方程求根—牛顿迭代法(新)

非线性方程求根—牛顿迭代法(新)

非线性方程求根——牛顿迭代法一、牛顿迭代法的基本思想基本思想:将非线性方程逐步归结为某种线性方程求解。

设方程f (x )=0有近似根x k (f `(x k )≠0),将f (x )在x k 展开:(ξ在x 和x k 之间)2()()()()()()2!k k k k f f x f x f x x x x x ξ'''=+-+-()()()()k k k f x f x f x x x '≈+-可设记该线性方程的根为x k +1,则()()()0k k k f x f x x x '+-=1()()k k k k f x x x f x +=-'故f (x )=0可近似表示为即为Newton 法迭代格式。

(k =0,1,……)例:用Newton 迭代法求方程310x x --=在x 0=1.5附近的近似实根。

解:32()1,()31f x x x f x x '=--=-迭代公式为312131kk k k k x x x x x +--=--计算步骤如下:(1)取初值x 0=1.5;(2)按照迭代公式计算x 1;(3)若|x 1-x 0|<=0.00001,终止迭代;否则,x 0=x 1;转(2);(4)输出迭代次数和近似根.二、牛顿迭代法的实现MATLAB求解程序设计:方程及一阶导数函数:function[fun,dfun]=fun0(x)fun=x^3-x-1;%求原函数的值dfun=3*x^2-1;%求一阶导数的值计算主程序:clearx0=1.5;[fun,dfun]=fun0(x0);x1=x0-fun/dfun;i=1;while abs(x1-x0)>1e-5x0=x1;[fun,dfun]=fun0(x0);x1=x0-fun/dfun;i=i+1;enddisp('the solution is x1=')x1disp('the iter time is ')i计算结果为:the solution is x1=x1 =1.3247the iter time isi =4可见经过4次迭代即到达要求的精度,原方程的一个近似实数根为1.3247.三、牛顿迭代法的收敛性牛顿迭代法的迭代函数:)()()(x f x f x x '-=ϕ222)]([)()()]([)()()]([1)(x f x f x f x f x f x f x f x '''='''-'-='ϕ设f (x *)=0,f `(x *)≠0,则ϕ`(x *)=0,故Newton 迭代法在x *附近至少平方收敛。

非线性方程的求根方法

非线性方程的求根方法

取 x0=0,
3 xk xk 3 xk 1 xk 2 3 xk 1
(k = 0, 1, · · · · · )
y x1 x2 x3 x0 x
y=x3 – x – 3
Newton迭代法陷入死循环的另一个例子
f’<0, f”>0
f’>0, f”>0
f’>0, f”<0
f’<0, f”<0
牛顿迭代法的收敛域问题:
用牛顿迭代法求解复数方程 z3 – 1 = 0,该方程在复 平面上三个根分别是 z1 = 1
1 3 z2 i 2 2
1 3 z3 i 2 2
选择中心位于坐标原点,边长 为2的正方形内的任意点作初始 值,进行迭代,把收敛到三个 根的初值分为三类,并分别标 上不同颜色(例如红、黄、 蓝)。对充分多的初始点进行 实验,绘出牛顿迭代法对该方 程的收敛域彩色图。
牛顿法的计算步骤: 1)给出初始近似值x0,及精度 2)计算:按迭代公式
f ( x0 ) x0 x1 f ( x 0 )
计算出x1 3)若 x1 x0 ,则转向4);否则 x1 x0 转向2) 4)输出满足精度的根x1,结束
例2.5 用牛顿法解方程 x=e–x
在 x0=0.5 附近的根。
由定理2.5知牛顿迭代公式具有局部收敛性。
由定理2.6知 Newton迭代法至少平方收敛。因此用 Newton法求单根的收敛速度是较快的。
[ f ( x )]2 f ( x ) f ( x ) f ( x ) f ( x ) 2[ f ( x )]2 f ( x ) ( x ) [ f ( x )]3
x1 x*
f ( x1 ) x2 x1 ( x1 x0 ) f ( x1 ) f ( x0 ) xk 1 f ( xk ) xk ( x k x k 1 ) f ( x k ) f ( x k 1 ) ( k =1,2,· · · · · · ·)

第七章 非线性方程求根方法

第七章 非线性方程求根方法
f ( xk ) xk 1 xk f ( xk )
f ( x) g ( x) x f ( x)
7.3 牛顿迭代法和割线法
局部收敛性 设方程 x = g(x)有根x,且在 x* 的某个领域 S = {x | x [x* - d, x* + d]}
内存在一阶连续导数,则
当|g’(x*) |<1时,迭代格式xk+1 = g(xk)局部收敛 当|g’(x*) |>1时,迭代格式xk+1 = g(xk)发散
2.666667 2.645833 2.645751 2.645751
2.625000 2.687500 2.656250 2.640625 2.648438 2.644531 2.646484 2.645508 2.645996
2.645751 2.645751
几何意义
f ( xk ) xk 1 xk f ( xk )
xk 1 g ( xk )
可得序列 {xk}: x0, x1, x2, x3, …… 如果g(x)是连续函数 且当k→∞时,序列{xk}有极限x*,则x*是方程f(x)=0的根 迭代序列{xk}收敛,则迭代法收敛;反之,则发散
7.2 简单迭代法 用迭代法求下列方程在区间[2, 4]的根。
收敛
对任意xb迭代格式xk1产生的迭代序列都收敛于方程xgx在区间ab上的唯一实根x定理21定理2172简单迭代法73牛顿迭代法和割线法局部收敛性设方程x1时迭代格式xk11时迭代格式xk1发散73牛顿迭代法和割线法牛顿迭代法的局部收敛性73牛顿迭代法和割线法2x迭代公式为73牛顿迭代法和割线法例
第七章
Lk xk x* x1 x0 1 L
证明过程(P100-101)如下:

第2章 非线性方程求根

第2章 非线性方程求根

第2章非线性方程求根§2.1 引言§2.2 二分法§2.3 迭代法2.3.1 迭代格式2.3.2收敛性条件2.3.3迭代法的收敛阶2.4迭代收敛的加速§2.5 牛顿迭代法2.5.1 迭代格式2.5.2 迭代法的收敛阶x yo a b* x*解析解与数值解由推理的方法计算--- 解析解(精确解)。

近似计算(数值计算)---数值解(近似解)常借助于计算机工程实践中遇到最大量的将是数值计算问题。

2.1 引言*数值求解方程(组)的必要性“方程是很多工程和科学工作的发动机”.非线性现象广泛存在于物质世界与社会生活中.在工程和科学计算中,常涉及到非线性方程或非线性方程组的求解问题.例如:(1) 在光的衍射理论(the theory of diffraction of light)中,我们需要求x – tan x = 0 的根(2) 在行星轨道( planetary orbits)的计算中,对任意的a和b,我们需要求x –a sin x = b的根(3) 在数学中,需要求n 次多项式 sin 0,01x t x εε--=<<(4)在天体力学中,有如下开普勒(Kepler )方程t x x t i t i x 其中 表示时间, 表示弧度,行星运动的轨道 是 的函数.也就是说,对每个时刻 ,上述方程 (运动轨道位置).(超越方程)有唯一解 1110n n n n x a x a x a --++++=的根。

在非线性方程的求解中,多项式求根是最常见、最简单的情形,例如想通过矩阵的特征多项式求特征根,就会遇到这一问题.20(0) ax bx c a++=≠一元二次方程求根公式30x px q++=242b b acxa-±-⇒=一元三次方程求根公式根据代数基本定理,在复数域内,n 次代数多项式有且只有n个根,而由伽罗华(Galois)理论,5次以上(含5次)的多项式方程无求根公式,例如求代数方程652++--=x x x x632480的根.除了多项式求根之外,更多的是超越方程求根问题.超越方程是指包含指数函数、三角函数等特殊函数的方程.例如前面的几个例子又如求解非线性方程组 {0.7sin 0.2cos ,0.7cos 0.2sin .x x y y x y =+=-*x *()0f x *x f ()f x 上述这些问题,都归结为寻求非线性函数 使 . 称为方程或方程组( 为向量函数时) 的零点.的根或函数 由于自然现象和实际问题的复杂性,对函数方程和方程组求解问题,没有哪一种方法能求出一般方程的准确解.因此,求其数值解就非常必要了.方程的根,即求本章主要内容:介绍用于实际计算中求 f (x) = 0 的根的近似值的几种常用方法。

第四章 非线性方程求根

第四章   非线性方程求根
f ( x* ) f ( x* ) f ( m1) ( x* ) 0, f ( m) ( x* ) 0
4.1 方程求根与二分法
当 f ( x) 为代数多项式时,根据代数基本定理可知, n 次方程在复数域有且只有 n 个根,因此可利用迭代 法求代数方程的根。 二分法 若 f ( x) C[a, b] ,且 f (a) f (b) 0 ,根据连续函数性质 可知 f ( x) 在 [a, b]内至少有一个实根,此时称[a, b]为方程 若 f ( x) 可表示为 f ( x) ( x x* )m g ( x),其中 m 为正整数,且 g ( x* ) 0 。当 m 1 时,称 x* 为单根,若m 1 称 x* 为 m 重 根,或 f ( x) 的 m 重零点。若 x* 是 f ( x) 的 m 重零点,且 g ( x) 充分光滑,则

4.1 方程求根与二分法
这样,我们得到了一个序列 xn ,为确定 xn 的收敛性 我们有如下的定理: 定理:设 f ( x) C[a, b], f (a) f (b) 0, 则二分算法产生的 序列 xn 满足 xn x* (b a) / 2n ,其中 x* [a, b]为方程的根。 证明:因为 [an , bn ] 由[an1 , bn1 ] 对分得到,所以对 n 1 bn1 bn , 否则取 an1 an , bn1 xn , 这样必有 f (an1 ) f (bn1 ) 0 所以 [an1 , bn1 ] 就是新的有根区间,继续此过程,即可得 到结果。 算法:(1)令 x (a b) / 2 (2) 若 f ( x) 或 b x ,则输出 x ,结束 (3) 若 f (a) f ( x) 0 ,则令 a x ,否则令 b x (4) 转向1)

第7章 非线性方程求根

第7章 非线性方程求根

k 且区间长度逐次减半, bk ak (b a) 2 .
非线性方程求根的二分法
二分法基本步骤: 随着k的增大,有根区间长度趋于零,区间端点向 * lim a lim b lim x x . 一点收缩, k k k k k k 显然x*即为f(x)=0的根。而x0, x1, …,xk,…为近似根 * 序列。设要求精度为ε ,即 x xk ,

x1 x* ( )(x0 x* ) M ( x0 x* ), x2 ( x1 ), x2 x M ( x1 x ).
* *
加速迭代法
消去M得
x1 x* x0 x* , * * x2 x x1 x
2
2 x x x ( x x ) 1 0 x* x1 0 2 1 x0 , x2 2 x1 x0 x0 2 x1 x2
斯蒂芬森迭代法
结合埃特金加速法和不动点迭代法形成斯 蒂芬森迭代法:

yk ( xk ), z k ( yk ), ( y k xk ) xk 1 xk z k 2 y k xk
2
(k 0,1, ).
斯蒂芬森迭代法几何意义
定义x点关于方程 x ( x) 的误差为: ( x) ( x) x. * * * * ( x ) ( x ) x 0. 则该方程的根x 的误差
非线性方程的迭代法求根
基本概念 非线性方程f(x)=0的根(解) x*,也称为非线性 函数f(x)的零点,f(x*)=0。 f(x)=0的m重根定义:f(x)=(x-x*)mg(x), g(x*)≠0,则称x*为f(x)=0的m重根,或f(x)的 m重零点。 m重根的判定条件: x*为f(x)=0的m重根当 且仅当 * * ( m1) * ( m) * f (x ) f (x ) f ( x ) 0; f ( x ) 0.

第2章非线性方程求根

第2章非线性方程求根

解:设最多需要迭代n次。
∵要求精确到小数点后3位,
∴误差限≤ 12×10-3,
∴由定理2.1得:
n=
lg(1
0)
lg( lg 2
1 2
103 )
1
=
0
( lg 2 lg 2
3)
1
=
0.301 0.301
3
1= 10 .97
1
=10,即最多需要迭代10次。
用对分法求f(x)=0在某区间的单根,最多迭代次数与函数f(x)曲线形状无 关。一般情况下,对分法的最多迭代次数比其他的变步长逐步搜索法要 少,因此对分法是用得最多的变步长逐步搜索法。
if(f(b)==0) x=b;
else for(begin=a,end=a+h;begin<b;begin=end,end+=h)
{
if(end>b)end=b;
if(f(begin)==0)
{x=begin;break; }
if(f(begin)*f(end)<0)
{x=(begin+end)/2;break; }}
Y
N
x=begin;
break;
f(begin)*f(end)<0
Y
N
(end-begin)/2<=ε
Y
N
x=(begin+end)/2;
h/=hnumber;
break;
end=begin;
输出方程f(x)=0的根x。
8
2.3 根的搜索
变步长逐步搜索法对应的程序
#include <stdio.h> double f(double x);
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

非线性方程()
f x=0求根主要可以采用下面三种方法,下面简单介绍下,并附例题,让解法更一目了然。

1)二分法简介:
计算步骤如下:
例题:
2)不动点迭代,也叫简单迭代。

隐式化为显式,迭代法是一种逐次逼近法;
其中()
f x'<1才能满足上述迭代格式。

继续迭代。

3)牛顿迭代法,实际上也叫切线法,
是通过下面的方式推导出来的。

上述题目很简单,用牛顿法迭代就可以达到目的。

我们先设()cos f x x x =-=0 由公式得cos sin x x
x x x
0-=-
1+ 我们用二分法的原理,我们取x π0=, 得cos sin x x x x x ππ00100-+1
=-
=-=11+1
cos cos .sin sin x x x x x 11211-1-1
=-
=1-=09998
1+1+1
cos cos ..sin sin .x x x x x 22322-1-09998
=-
=1-=099981+1+09998
x x 32=,并具有四位有效数字,所以只需迭代两次就可以达到
题目所需的精度要求。

相关文档
最新文档