第五章 非线性方程求根

合集下载

数值分析实验五 非线性方程的求根1

数值分析实验五     非线性方程的求根1

数值分析实验五 非线性方程的求根组号 班级 学号 姓名 分数一:实验目的1、掌握用二分法解非线性方程的方法。

2、掌握用迭代法解非线性方程的方法。

3、掌握用牛顿法解非线性方程的方法。

4、学会运用Matlab 语言解决提供的函数求解实际问题。

二:实验内容所需的基本知识二分法的原理:设)(x f 在],[b a 上连续,且0)()(<⋅b f a f 。

则],[b a 为方程区间(设只有唯一根)。

取中点)(210b a x +=,检查)(a f 与)(0x f 是否同号,若同号,说明根*x 与b 之间,此时b b x a ==101,;若异号,说明根*x 在a 与0x 之间,此时011,x b a a ==,得新区间],[11b a 为原区间的一半。

对],[11b a 进行上述过程,取中点)(21111b a x +=,检查)(1a f 与)(1x f 是否同号,如此反复二分下去,即可得出一系列有根区间⊃⊃⊃],[],[],[2211b a b a b a …⊃⊃],[k k b a …,其中每个区间都是前一个区间的一半,因此],[k k b a 的长度k k k a b a b 2)(-=-,当∞→k 时趋于零,就是说,如果二分过程无限地继续下去,这些区间最终必收缩于一点*x ,该点显然就是所求的根。

迭代法原理:首先给定一个粗糙的初始值,然而用一个迭代公式反复校正这个初值,将已有近似根逐步精确化,一直到满足精度要求为止。

具体地,把方程0)(=x f 改写成x 的等价表达式)(x x ϕ=,若)(**x x ϕ=,称*x 为)(x ϕ的一个不动点,求)(x f 的零点就等价于求)(x ϕ的不动点。

任取一点0x 代入)(x ϕ求得 )(01x x ϕ= 又将1x 代入)(x ϕ求得)(12x x ϕ= 如此反复迭代下去一般地 )(1k k x x ϕ=+ k=0,1,2,………)(x ϕ称为迭代函数,)(x x ϕ=称为迭代公式。

非线性方程求根

非线性方程求根
y
0 A a1 b1a2 b2
Bx
例 方程f(x)=x3-x-1=0 确定其有根区间 解:用试凑的方法,不难发现
f(0)<0 f(2)>0 在区间(0,2)内至少有一个实根 设从x=0出发,取h=0.5为步长向右进行根的 搜索,列表如下
x
0 0.5 1.0
1.5
2
f(x) – –

+
+
可以看出,在[1.0,1.5]内必有一根
仍取 x0 1.5 ,则有 x1 2.375 ,x2 12.39 显然结果越来越大,{xk } 是发散序列
迭代法的几何意义
通常将方程f(x)=0化为与它同解的方程 x (x) 的方法不止一种,有的收敛,有的不收敛,这取决于(x) 的性态,方程 x (x) 的求根问题在几何上就是确定曲
误差限为 x* xk

1 2 k 1
(b a)
只要取k满足
1 2 k 1 (b a)
1 103 2
即可,亦即
2k 103
k 3 lg 10 9.97 1g 2
所以需二分10次便可达到要求。
二分法的优点是不管有根区间 a, b 多大,总能求出
满足精度要求的根,且对函数f(x)的要求不高,只要连续即可,
线y= (x) 与直线y=x的交点P*的横坐标(如图所示)
y
Q1
Q2
P*
P1
P2
x*
x2
x1
0 (x* ) 1
(a)
y=x
y= ( x)
P0
x0
x
y
y= (x)
(x)P*
y=x
x1 x3 x*

第五章非线性方程求根

第五章非线性方程求根
f (x0) y0>0 否
打印
结束
是 继续扫描
例1:考察方程
f (x) x3 x 1 0
x
0 0.5 1.0 1.5
f (x) 的 - - 符号
-+
§2 二 分 法
a
a x0 x*
x1
b
b
xk xk1 ε1 或 f ( x) ε2
不能保证 x 的精 度
执行步骤 1.计算f (x)在有解区间[a, b]端点处的值,f (a),f (b)。
(3) Steffensen 加速法
将Aitken加速公式与不动点迭代相结合,可得
x(1) k 1
( xk
),
x(2) k 1
x k 1
xk
x(1) k 1
xk
x(2) k 1
2
x(1) k 1
(
x(1) k 1
2
xk
) ,
k 0,1,
(5.3.6)
利用(5.3.6)式构造序列{xk } 的方法称为Steffensen加速方法。 即每进行两次不动点迭代,就执行一次Aitken加速。
f (x) ex 10 0
因而, f (x) 是严格单调的, f (x) 0最多有一个根,
又因为 f (0) 1 0, f (1) e 8 0 所以, f (x) 0 有唯一实根 x* (0,1)
用二分法求解,要使 xk x* 0.5102,只要
1 0 2k 1
0.5 102
2.计算f (x)在区间中点处的值f (x0)。
3.判断若f (x0) = 0,则x0即是根,否则检验: (1)若f (x1)与f (a)异号,则知解位于区间[a, x0], b1=x0, a1=a; (2)若f (x0)与f (a)同号,则知解位于区间[x0, b], a1=x0, b1=b。

非线性方程求根

非线性方程求根
得到一个迭代序列: x0,x1,x2,. . . ,xn,. . .
几何含义:求曲线 y = (x) 与直线 y = x 的交点
18:28:03
Numerical Analysis
9
y p0 x0 y
18:28:03
y=x
p1
y= (x)

y p0
y=x

p1 y= (x)
x x1 x2 x*
x0
(x) ( y) L x y
则(x) 在 [a,b] 上存在唯一的不动点 x*
证明:P216
18:28:03
Numerical Analysis
12
收敛性分析
不动点迭代的收敛性
定理:设 (x) C[a,b] 且满足
(1) 对任意的 x[a,b] 有 (x)[a,b]
(2) 存在常数 0<L<1,使得任意的 x, y[a,b] 有
for k = 1 : n x = g(x); fprintf('k=%2d, x=%.7f\n',k,x); if abs(x-xt)<tol, break, end
end xt = fzero(f,[3,4]);
fprintf('True solution: x = %.7f\n', xt)
% Steffenson 加速
性质:若
lim
k
xk
x *,则不动点迭代收敛,且 x*
是 f(x)=0 的解;否则迭代法发散。
18:28:03
Numerical Analysis
11
解的存在唯一性
解的存在唯一性
定理:设 (x) C[a,b] 且满足

非线性方程的求根方法

非线性方程的求根方法

取 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(x)为非线性方程,在初始点x0附近取切线方程y=f'(x0)(x-x0)+f(x0),令切线方程的值为0,则可得到切线方程的解为x1=x0-f(x0)/f'(x0)。

重复这个过程直到满足精确度要求或迭代次数达到指定次数。

三、二分法二分法是一种简单而又直观的非线性方程求解方法。

它利用了连续函数的中间值定理,即若f(a)和f(b)异号,则方程f(x)=0在[a, b]之间必有根。

根据中值定理,我们可以取中点c=(a+b)/2,然后比较f(a)和f(c)的符号,若同号,则根必然在右半区间,否则在左半区间。

重复这个过程直到满足精确度要求或迭代次数达到指定次数。

四、割线法割线法是一种基于切线逼近的非线性方程求解方法,它与牛顿迭代法相似。

由于牛顿迭代法需要求解导数,而割线法不需要。

设f(x)为非线性方程,在两个初始点x0和x1附近取一条直线,该直线通过点(x0,f(x0))和(x1, f(x1)),它的方程为y=f(x0)+(f(x1)-f(x0))/(x1-x0)*(x-x0),令直线方程的值为0,则可得到直线方程的解为x2 = x1 - (f(x1)*(x1-x0))/(f(x1)-f(x0))重复这个过程直到满足精确度要求或迭代次数达到指定次数。

五、试位法试位法是一种迭代逼近的非线性方程求解方法。

它利用了函数值的变化率来逼近根的位置。

设f(x)为非线性方程,选取两个初始点x0和x1,然后计算f(x0)和f(x1)的乘积,如果结果为正,则根位于另一侧,否则根位于另一侧。

然后再选取一个新的点作为下一个迭代点,直到满足精确度要求或迭代次数达到指定次数。

5-非线性方程组的数值解法及最优化方法

5-非线性方程组的数值解法及最优化方法

1 4 0
非线性方程组的数值解法
x10=0; x20=0; k=0; while 1 k=k+1; x1k=(1+x20-0.1*exp(x10))/4; x2k=(x10-x10^2/8)/4; %雅克比迭代法 %x2k=(x1k-x1k^2/8)/4; %高斯-赛德尔迭代法 err1=abs(x1k-x10); err2=abs(x2k-x20); err=max(err1,err2); if err<=0.00000000005 break; end x10=x1k; x20=x2k; end
0.0000055305 0.0000001511 0.0000000041 0.0000000001
非线性方程组的数值解法
牛顿迭代法:根据求解非线性方程的牛顿迭代法,如果已经 k k T ,则 ,, xn 给出方程组 Fx 0 的一个近似根 xk x1k , x2 可把函数 Fx 的分量 fi x, i 1,2,, n 在 x k 处按多元函数泰 勒公式展开,取其线性部分做近似,得
(0.2325668498,0.0564514831) (0.2325670008,0.0564515487) (0.2325670050,0.0564515196) (0.2325670051,0.0564515197) (0.2325670051,0.0564515197)
0.0002023950


所以有
1 x φx 1 2 x1
0
T
取初值 x 代公式收敛。
T 0 x 0 , 0 附近 φx 1,所以迭 0,0 ,在
1 1 x 1 e 40 x2 2 1 1 x1 x2 4 16

数值计算课程设计报告(非线性方程求根)

数值计算课程设计报告(非线性方程求根)

数值计算方法课程设计报告课程设计名称:数值计算方法课程设计题目:非线性方程求根年级专业:组员姓名学号:指导教师:完成时间:非线性方程求根一、问题提出随着科学技术,生产力经济的发展,在科学与工程计算中存在着大量方程求根问题,例如贷款购房问题,工厂的最佳订货问题等都需要求解一类非线性方程的根,首先根据实际问题列出数学模型,确定变量,给出各个条件及相关函数;然后对建立的模型进行具体分析和研究,选择合适的求解方法;编写函数的程序,用计算机求出方程的解,通过所求解分析具体情况.求解非线性方程的问题有以下几种基本方法。

二分法简单易行,但收敛较慢,仅有线性收敛速度。

而且该方法不能用于求偶数重根或复根,但可以用来确定迭代法的初始值。

牛顿法是方程求根中常用的一种迭代方法,它除了具有简单迭代法的优点外,还具有二阶收敛速度(在单根邻近处)的特点,但牛顿法对初始值选取比较苛刻(必须充分靠近方程的根),否则牛顿法可能不收敛。

弦截法是牛顿法的一种修改,虽然比牛顿法收敛慢,但因它不需计算函数的导数,故有时宁可用弦截法而不用牛顿法,弦截法也要求初始值必须选取得充分靠近方程的根,否则也可能不收敛。

二、背景分析代数方程的求根问题是一个古老的数学问题。

理论上,n次代数方程在复数域内一定有 n个根(考虑重数)。

早在16世纪就找到了三次、四次方程的求根公式,但直到19世纪才证明大于等于5次的一般代数方程式不能用代数公式求解,而对于超越方程就复杂的多,如果有解,其解可能是一个或几个,也可能是无穷多个。

一般也不存在根的解析表达式。

因此需要研究数值方法求得满足一定精度要求的根的近似解。

牛顿迭代法是牛顿在17世纪提出的一种求解方程.多数方程不存在求根公式,从而求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要.而在各种科学和工程计算中往往要用到非线性方程组的求解,而牛顿法又是最基础的迭代法,在各种计算力学、控制工程等领域中发挥了不可代替的作用.而在数值计算中,非线性方程组的求解同样具有重要意义.随着计算机技术的成熟和高速发展,对于非线性方程求根问题出现了大量的数学软件(如MATLAB,SAS,SPSSD等),计算机已经成为工程师应用数学解决工程问题的主要运算工具.同时,工程专业的学生对数学教育的需求重点正在从手工演绎和运算能力的培养转变到结合计算机软件进行建模、求解和论证能力的培养.我们采用Matlab数学软件平台,通过实例比较了二分法、牛顿迭代法、弦截法三种基本方法的优缺点。

数值分析非线性方程求根实验

数值分析非线性方程求根实验

实验报告一、实验目的1.迭代函数对收敛性的影响。

2.初值的选择对收敛性的影响。

二、实验题目1.用简单迭代法求方程01)(3=--=x x x f 的根。

分别化方程为如下等价方程: 31+=x x ;13-=x x ;x x 11+=;213-+=x x x 取初值5.10=x ,精度为410-,最大迭代次数为500,观察其计算结果并加以分析。

2.①用牛顿法求方程01)(3=-+=x x x f 在0.5附近的根,分别取初值1000,100,2,1,5.0,5.0,1,2,100,10000-----=x观察并比较计算结果,并加以分析。

②用牛顿法求方程0)(3=-=x x x f 所有根。

三、实验原理简单迭代法程序,牛顿迭代法程序。

四、实验内容及结果fun=inline('x^3-x-1');dfun=inline('3*x^2-1');-1000,x1=manewton(fun,dfun,-1000,1e-4) -100,x2=manewton(fun,dfun,-100,1e-4)-2,x3=manewton(fun,dfun,-2,1e-4)-1,x4=manewton(fun,dfun,-1,1e-4)-0.5,x5=manewton(fun,dfun,-0.5,1e-4) 0.5,x6=manewton(fun,dfun,0.5,1e-4)1,x7=manewton(fun,dfun,1,1e-4)2,x8=manewton(fun,dfun,2,1e-4)100,x9=manewton(fun,dfun,100,1e-4) 1000,x10=manewton(fun,dfun,1000,1e-4)3)在MA TLAB的主程序窗口输出以下结果:ans =-1000k=21x1 =0.682327804075895ans =-100k=16x2 =0.682327803903413ans =-2k=6x3 =0.682327803828020ans =-1k=5x4 =0.682327803828020ans =-0.500000000000000k=4x5 =0.682327803903932ans =0.500000000000000k=3x6 =0.682327803828347五、实验结果分析(1)实验1中用简单迭代法求方程01)(3=--=x x x f 的根:取初始值5.10=x 的时候,等价方程2和4是不收敛的。

非线性方程求根问题

非线性方程求根问题

计算机学院上机实践报告一、目的1.通过本实验,帮助加深对非线性方程求根方法的构造过程的理解;2.能将各种方法编写为程序并上机实现;3.比较各种方法在求解同一非线性方程根时,在收敛情况上的差异。

二、内容与设计思想1.用二分法求方程f(x)=x3-2x-5=0在区间[2 , 3]内的根。

2.方程f(x)=2x3-5x2-19x+42=0在x=3.0附近有根,试写出其三种不同的等价形式以构成三种不同的迭代格式,再用简单迭代法求根,观察这三种迭代是否收敛。

三、使用环境1. 硬件环境微型计算机(Intel x86系列CPU)一台2. 软件环境Windows2000/XP操作系统VC++6.0或其它的开发工具。

四、核心代码及调试过程1.用二分法求方程f(x)=x3-2x-5=0在区间[2 , 3]内的根主要代码:void bisect(double a,double b,int max_B){ double root, ya,yb,yroot;int i,actual_B;ya=f(a);yb=f(b);if(ya*yb>0){ printf("method failed!\n");exit(0); }for(i=1;i<=max_B;i++){ root=(a+b)/2;yroot=f(root); //取当前含根区间的中点if(yroot==0){ a=root;b=root;}else if(yb*yroot>0) //取含根区间为[a,(a+b)/2]{ b=root;yb=yroot;}Else //取含根区间为[(a+b)/2,b]{ a=root;ya=yroot;}if(fabs(b-a)<EPS) break;}root=(a+b)/2; yroot=f(root); actual_B=i;printf("root=%10.6lf\tf(root)=%10.6e\tatual_B=%d\n",root,yroot,actual_B); }结果:2.迭代格式分别为:x=2/19*x*x*x-5/19*x*x+42/19x=sqrt(2/5*x*x*x-19/5*x+42/5);x=(5/2*x*x+19/2*x-21)^(1/3)主要代码:double g(double x){return(pow((2.0/19.0*x*x*x-5/19*x*x+42/19),1.0)); /*定义迭代函数*/}void iterate(double a,double b,double x0,int max_D){int k=1;double x1;while(k<=max_D){x1=g(x0); /*迭代计算*/if((x1<a)||(x1>b)){printf("re_select a proper initial value x0!\n");exit(0);}if(fabs(x1-x0)<EPS) /*迭代成功并达到精度要求*/{printf("method succeed!\n");printf("root=%10.6lf\n",x1);break;}x0=x1;k++; /*x0的值被更新,累加迭代次数*/}printf("iteration times=%d\n",k); /*输出实际迭代次数*/if(k>max_D)printf("method failed!\n");}int main(){ double a=2.0,b=3.0,x0=(a+b)/2.0;int max_D=50;iterate(a,b,x0,max_D);}前两种迭代结果:第三种:输入数据时应注意数据的类型,否则程序会报错。

非线性方程求根方法分解PPT课件

非线性方程求根方法分解PPT课件
度,用二分法需进行
n ln(b a) ln 10.96... ln 2
即最多需要11次二分。
x
xn
1 2
(b11
a11 )
0.000488281
1 10 3 2
12
第12页/共48页
计算结果
k
ak , bk
1
[1.0 , 2.0]
xk
1.5
f (xk )
2.375
1
第1页/共48页
根的概念
• 给定方程 f (x)=0,如果有a使得f(a)=0,则称a为 f(x) =0的根 或f(x)的零点.
• 设有正整数m使得f(x)=(x-a)mg(x)且g(a) 0 , 则当m=2时,称a为f(x)=0的m重根; 当m=1时,称为f(x)=0的单根.
• 本章只讨论实根的求法.
从而
f (x )f (x ) (x ) [f (x )]2
由此知若 x 是f (x ) 0 的一个单根,则在x 附近 x * =0 Newton法是局部收敛的,并且收
敛速度至少是平方收敛的.
但如果x 是f (x ) 0 的m>1重根,0则
x*
11 1 m
此时Newton法仅有线性收敛速度.
30
第30页/共48页
{xk }
x 2 12.39
21
第21页/共48页
几何示意图
第22页/共48页
例 讨论以下计算 a (a 0) 的算法的收敛阶。
xn 1
1 2
xn
a xn
23
第23页/共48页
解:(1)
(x ) 1 (x a ) 2x
a 1aa
a
2
a

数值分析与计算方法 第五章 非线性方程求根

数值分析与计算方法 第五章 非线性方程求根


(2) g ( x) x 3 1 , x [ 1 , 2 ] , g ( x) 3x 2 1 ; 由Th 5.2 , 该迭代发散 .
3、局部收敛性
Th5.3 设方程x g ( x)有根x *, 且在x *的某个邻域U ( x * , )内
具有一阶连续导数 , 则 (1) g ( x * ) 1 , 局部收敛; (2) g ( x * ) 1, 发散。
局部收敛; 取x0 0.5, 结果如下: n 1 2 3 4 5 6 xn 0.6065306 0.5452392 0.5797031 0.5600646 0.5711721 0.5648629 n 7 8 9 10 11 12 xn 0.5684380 0.5664094 0.5675596 0.5669072 0.5672772 0.5670673 n 13 14 15 16 17 18 xn 0.5671863 0.5671188 0.5671571 0.5671354 0.5671477 0.5671407
迭代法的几何意义
y
yx
y g ( x)
o
x
*
x2
x1
x0
x
收敛的情形
y
yx
y g ( x)
o
x0 x 2 x 4
x
*
x3 x1
x
收敛的情形
y
y g ( x)
yx
x2
o
x1
x0 x *
x
发散的情形
5.1.2
收敛性问题
1、大范围收敛性
Th5.1(压缩映象原理)(与th5.4合并)
5.1
问题的提出
迭代法
科学技术、工程计算和生产过程中的许多问题常规归结为求解 高次代数方程或超越方程。例如 x3 x 1 0 (高次代数方程)

5非线性方程的求根

5非线性方程的求根

(3)迭代25次后 (4)迭代9次后 (5)迭代3次后
x3 1.36523001 若采用二分法则有 x25 1.364990235 , x27 1.36523001
迭代格式构造的不同,可能会出现发散或无意义的情形,即使 是收敛的,收敛的速度也有快慢之分。 9
单点迭代法
计算第k+1个近似值 xk 1 时仅用到第k个点处 的信息,如(5.1) 多点迭代法 计算 xk 1 时需要用到前面P个点处的信息 一般形式为
§2
迭代法
x g ( x)
设方程 f ( x) 0 可以转化为等价的形式 从某个初值
xk 1 g ( xk ) k 0,1, 2, (5.1) 得到序列 {xk } 。当 g ( x) 连续,且序列 {xk } 收敛时,有
lim xk 1 lim g ( xk ) g (lim xk )
k k k
x0
出发令

即序列 {xk } 的极限 是方程 f ( x) 0 的根。 称(5.1)为迭代格式,函数 g ( x) 为迭代函数。构造迭代 格式的方法称为迭代法。 7
g ( )
例5.2 构造不同的迭代格式,求方程 x3 4 x 2 10 0 在(1,2)内的近似根。
当 n 充分大时就有 误差估计式为
k 1, 2, , n.
1 (an bn ) 2
an bn b a | | n 1 2 2
3
算法(二分法)
输入 f ( x ),区间 [ a, b] ,精度 0,最大的迭代次数N 1.对 2. 3. 4.若
k 1, 2,, N ,
对迭代方程 x g ( x) ,若迭代函数 g ( x) 满足

非线性方程求根

非线性方程求根

实际中,用解方程组的形式
J ( X k )( X k 1 X k ) F ( X k )
迭代法的基本步骤如下:
f ( x) 0 x ( x ) 2、取合适的初值,产生迭代序列 x0 , xi 1 ( xi )
1、给出方程的局部等价形式 3、求极限
x* lim xn 易知,该值为方程的根 n
一定收敛吗?
y p1 p0
y=x y=g(x)
y y=g(x) p0
什么时候停止?
a
x a1 x* x2 b b
xk 1 xk ε1

f ( x ) ε2
算法
While(|a-b|>eps) x=(a+b)/2 f(x) 若(|f(x)|<eps) x为解 若f(x)*f(b)<0 修正区间为[x,b] 若f(a)*f(x)<0 修正区间为[a,x] End while
若 f ' ( x0 ) 0 ,则有
y
记为
f ( x0 ) x x0 f ' ( x0 )
类似,我们可以得到
x1
x* x
x0
f ( x1 ) x2 x1 f ' ( x1 )
这样一直下去,我们可以得到迭代序列
xk 1 xk
f ( xk ) f ' ( xk )
Newton迭代的等价方程为:
非线性方程求根
非线性科学是当今科学发展的一个重要研究方向,而非线性方程的求根也成了一个 不可缺的内容。但是,非线性方程的求根非常复杂。 通常非线性方程的根的情况非常复杂:
sin( 2 x) y 1 y 2
无穷组解

mathematica方法之非线性方程求根

mathematica方法之非线性方程求根

'(x)
2 3
1
2x 52/3
,
当x [1.5,2.5], '(x) 1
构造的迭代序列收敛。
取x0=2,则x1=2.08008,x2=2.09235,x3=2.094217,x4=2.094494, x5=2.094543, x6=2.094550. 准确的解是x=2.09455148150
2)将迭代格式写为
通常,非线性方程的根不止一个,对于非线性方程,一般用迭代法求 解。因此,在求解非线性方程时,要给定初始值或求解范围。
5.1 实根的对分法
使用对分法的条件 对分法或称二分法是求方程近似解的一种简单直观的方法。设函数
f(x)在[a,b]上连续,且 f(a)f(b)<0, 则在[a,b]上至少有一零点,这是 微积分中的介值定理,也是使用对分法的前题条件。计算中通过对分区 间、缩小区间范围的步骤搜索零点的位置。
xn1
xn3 2
5
,
2
(
x)
x3 5 2ຫໍສະໝຸດ 2' (x)3x2 2
1,
当x [1.5,2.5]
迭代格式 xn1 2 (xn ) 不能保证收敛。
不动点迭代举例
5.3 Newton迭代法
将f(x)在初值处作Taylor展开
f (x)
f (x0 )
f '(x0 )(x x0 )
f
'
' ( x0 2!
[x1,x2]=[1.5,1.75]。 (4)一直做到|f(xk)|<ε(计算前给定的精度)或|a-b|< ε时停止。
对分法算法
While(|a-b|>eps) x=(a+b)/2 f(x) 若(|f(x)|<eps) x为解 若f(x)*f(b)<0 修正区间为[x,b] 若f(a)*f(x)<0 修正区间为[a,x]

第五讲非线性方程求根及其MATLAB实现

第五讲非线性方程求根及其MATLAB实现

lim x n a
n
a就是函数φ的一个不动点,即 a =φ(a) 等价于 f (a) = 0
a就是方程f (x) = 0的根。
收敛的迭代: f(x0) y=x
f(x1)
x0 x2= f(x1) x
y=f(x)
x1= f(x0)
发散的迭代:
由以上图形可以看出,序列
x k 的收敛速度,取决于曲线
0.1 1
y=x
0.9 0.8
y=x M
M
0.7 0.6 0.5 0.4 0.3 0.2
0.1
0
0
0
0.2
0.4
0.6
0.8
1
0
0.2
0.4
0.6
0.8
1
程序:zhuwang.m
绘制出迭代格式为 的蛛网图。
4 x 1 x
此处用到一个函数:quiver,画出矢量方向。
quiver(x,y,u,v):画出在(x,y)处,方向为u,v的矢量
f ( x0 ) 记为x1= x0 f ( x0 )
为改善根的精确程度,反复实施这一过程,得到牛顿 迭代公式: f (x )
xk 1 xk f ( x k )
k
xk+1就是从线性方程 f (xk) + f '(xk)(x – xk) = 0 中解得的根x.
(1)
以点(xk , f (xk))为切点,曲线y = f (x)的切线 y = f (xk) + f '(xk)(x – xk) (2)
f '( x ) 3 x 2 3
迭代公式为:xk 1
计算步骤如下:
xk 3 3 xk 1 xk 3 xk 2 3

非线性方程求根

非线性方程求根

由于每一区间都是前一区间的一半,因此区间 [an , bn]的长度为
1 bn an n (b a ) 2 若每次二分时所取区间中点都不是根,则上述过程将
无限进行下去. 当 n→∞ 时,区间必将最终收缩为一 点x* ,显然x*就是所求的根.
上页 下页
若取区间[an , bn]的中点 1 xn (an bn ) 2 作为x*的近似值,则有下述误差估计式
f ( x ) a0 x a1 x
n
n 1
an1 x an (a0 0), (1.2)
其中系数ai(i=0,1,,n)为实数.
上页 下页
方程f(x)=0的根x*,又称为函数f(x)的零点,它使得 f(x*)=0,若f(x)可分解为 f(x)=(x-x*)mg(x), 其中m为正整数,且g(x*)≠0. 当m=1时,则称x*为单 根,若m>1称x*为(1.1)的m重根,或x*为函数f(x)的m 重零点. 若x*是f(x)的m重零点,且g(x)充分光滑,则
步骤2 二分 计算函数f(x)在区间中点(a+b)/2处的 值f((a+b)/2).
步骤3 判断 若f((a+b)/2)=0,则(a+b)/2即是根, 计算过程结束,否则检验. 若f(a)· f((a+b)/2)<0, 则以(a+b)/2代替b ,否则以 (a+b)/2代替a. 反复执行步骤2和步骤3,直到区间[a, b]长度小于 允许误差ε,此时中点(a+b)/2即为所求近似根.
解 将原方程化为x–e–x= 0,则 f(x)=x–e–x, f(x)=1+e–x, 牛顿迭代公式为
xk
xk 1
取 x0=0.5,迭代得

Cht7非线性方程求根

Cht7非线性方程求根
有根区间
②近似根的精确化 已知根的一个近似值后, 构造某种算法, 将此近似值 精确化, 使其满足给定的精度要求.
3
上一页
下一页
返回
下面介绍方程求根的二分法 在确立了有根区间[a, b]后, 需要逐步缩小有根区间. 取[a, b]的中点x0=(a+b)/2,将区间一分为二.若 f(x0)=0,则x0 就是方程的根,否则判别根 x* 在x0 的左 侧还是右侧.
* * * * *
17
* * 唯一性. 设x1 , x2 [a, b]都是 ( x)的不动点, 则由(2.4)

* * * * * * x1 x2 | ( x1 ) ( x2 ) | L | x1 x2 |.
矛盾。 故 ( x)有唯一的不动点 x *.
18
ቤተ መጻሕፍቲ ባይዱ
定理2 在定理1的条件下, 对任意初值x0 [a, b], 迭代序列 (2.2)均收敛于 ( x)的不动点x*, 并有误差估计
x26 x27 1.124123
xk 1 2( xk ),
xk 1 3( x k ),
x6 x7 1.124123
x3 96, x4 8.495307 107
13
准确根 x*=1.124123029, 可见迭代格式不同, 收敛情况也不同, 收敛速度也不同.
上一页
若f (a ) f ( x0 ) 0, 则x* (a, x0 ), 令a1 a, b1 x0 若f (a ) f ( x0 ) 0, 则x* ( x0 , b), 令a1 x0 , b1 b
不论出现哪种情况, (a1, b1)均为新的有根区间, 它 的长度只有原有根区间长度的一半, 达到了压缩有根 区间的目的. 4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

开 始
例1:考察方程
读入a, 读入 h a ⇒ x0 f (x0) ⇒ y0 x0 + h ⇒ x0 是 f (x0) ⋅ y0>0 继续扫描
f (x) = x − x −1 = 0
3
x f (x) 的 符号 0 - 0.5 - 1.0 - 1.5 +
打 印 否 结 束
§2
二 分 法
a
a x0
x* x1 b b
f ( x * ) = 0 ,则称 x 为方程(5.1.1) 方程(5.1.1)
*
的根或 的零点。 的根或函数 f (x) 的零点。 定理1: 在区间[a, 上连续 如果f 上连续, 定理 :设函数 f (x) 在区间 b]上连续,如果 (a) ⋅ f (b) < 0, , 则方程 f (x) = 0 在[a, b]内至少有一实根 *。 内至少有一实根x 内至少有一实根 若 f ( x) = ( x − x* ) m g ( x), 其中 g ( x* ) ≠ 0, m 为正整数,则 为正整数,
xn
e x + 10 x − 2 = 0 存在唯一的实根 x* ∈ (0,1) 例1 证明方程
用二分法求出此根, 用二分法求出此根,要求误差不超过 0.5 × 10−2 。 求出此根 解:记
f ( x) = e x + 10 x − 2 ,则对任意 x ∈ R ,
f ′( x) = e x + 10 > 0
* 的单零点。 方程(5.1.1) 的单根或 当m=1时,称 x 为方程(5.1.1) 的单根或函数 f (x ) 的单零点。 m=1时
方程(5.1.1) 重根或 当 m ≥ 2 时,称 x* 为方程(5.1.1)的m重根或函数 f (x ) 的m 称 重零点。 重零点。
2. 根的搜索 (1) 图解法(利用作图软件如 Matlab) 图解法( (2) 解析法 (3) 近似方程法 (4) 定步长搜索法
xk +1 = ϕ ( xk ) (k = 0,1,L)
称这种迭代格式为不动点迭代。 称这种迭代格式为不动点迭代。 不动点迭代
例3:求方程 :
f ( x) = x − 10 x + 2 = 0
的一个根. 的一个根
解: x − 10 x + 2 = 0 ⇔ 10 x = x + 2
⇔ x = lg( x + 2)
第五章
非问题驱动:全球定位系统(GPS) )
人类对导航和定位的需求是伴随着人类整个文明历史的 进步而发展的,中国古代“四大发明” 进步而发展的,中国古代“四大发明”之一的指南针是最早 的定位仪器和系统,其后还有经纬仪以及近代的雷达。 的定位仪器和系统,其后还有经纬仪以及近代的雷达。如图 5.1.1所示全球定位系统 GPS)是基于卫星的导航系统, 所示全球定位系统( 5.1.1所示全球定位系统(GPS)是基于卫星的导航系统,最 早最早由美国和前苏联分别在80年代研制,并于1993 80年代研制 1993年正式 早最早由美国和前苏联分别在80年代研制,并于1993年正式 投入使用。 投入使用。现代社会中全球定位系统越来越深入到人们生活 的方方面面。例如市场上出售的手持型GPS, GPS,定位的精度可以 的方方面面。例如市场上出售的手持型GPS,定位的精度可以 达到10米以内,这无疑给旅行者提供了方便;安装有GPS 10米以内 GPS的儿 达到10米以内,这无疑给旅行者提供了方便;安装有GPS的儿 童手表,家长在家里的计算机上可以追踪到孩子的位置, 童手表,家长在家里的计算机上可以追踪到孩子的位置,防 止儿童走失;安装有GPS GPS系统的汽车可以帮助新司机辨识道路 止儿童走失;安装有GPS系统的汽车可以帮助新司机辨识道路 等等。 等等。
1− 0 ≤ 0.5 × 10−2 2 k +1
2 = 6.64,取 k = 7 解得 k ≥ lg 2
。所以只要二等分7次,即可求得满 所以只要二等分 次
足精度要求的根。计算过程如表 足精度要求的根。计算过程如表5.2.1所示 所示
表5.2.1
k 0 1 2 3 4 5 6 7 f(ak)及符号 )及符号 0(-) - 0(-) - 0(-) - 0(-) - 0.0625(-) - 0.0625(-) - 0.078125(-) - 0.0859375(-) - f(xk)及符号 )及符号 0.5(+) 0.25(+) 0.125(+) 0.0625(-) - 0.09375(+) 0.078125(-) - 0.0859375(-) - f(bk)及符号 )及符号 1( + ) 0.5( + ) 0.25( + ) 0.125( + ) 0.125( + ) 0.09375( + ) 0.09375( + ) 0.09375( + )
假设接收的信息如表5.1.1所示。请设法确定R点的位置。 所示。请设法确定 点的位置 点的位置。 假设接收的信息如表 所示
表9.1.1
图5.1.2 卫星分布图
GPS导航问题可归结为求解非线性代数数方程组 导航问题可归结为求解非线性代数数方程组 时就是单个方程. F ( x) = 0 , 当 n = 1 时就是单个方程
构造迭代格式
xk +1 = lg( x k + 2) x1 = 0.4771
x1 = 0.4771 x2 = 0.3939 … x6 = 0.3758 x7 =0.3758
f ( x) = 0
可以是代数方程,也可以是超越方程。 其中 f ( x )可以是代数方程,也可以是超越方程。使 f ( x ) = 0 值称为方程的根, 的零点。 成立的x 值称为方程的根,或称为 f ( x )的零点。科学与工程 计算中,如电路和电力系统计算、非线性力学、非线性微( 计算中,如电路和电力系统计算、非线性力学、非线性微( . 积分)方程、非线性规划(优化)等众多领域中, 积分)方程、非线性规划(优化)等众多领域中,问题的求 解和模拟最终往往都要解决求根或优化问题。 解和模拟最终往往都要解决求根或优化问题。前一种情形要 求出方程(组)的根;后一种情形则要求找出函数取最大或 求出方程( 的根; 最小的点。 最小的点。 即使是对实验数据进行拟合或数值求解微分方
方程的根。在实际计算中, 方程的根。在实际计算中,只要[an , bn ] 的区间长度小于预定容 就可以停止搜索, 许误差 ε 就可以停止搜索,即
1 b−a b n − a n = ( b n −1 − a n −1 ) = L = <ε n 2 2
然后取其中点 xn 作为方程的一个根的近似值。 作为方程的一个根的近似值。
(1)画出 f(x) 的略图,从而看出曲线与 轴交点的位置。 画出 的略图,从而看出曲线与x 轴交点的位置。 f(x)
x0 = a
x0 + h
x* b
出发, (2)从左端点x = a出发,按某个预先选定的步长 一步 从左端点 出发 按某个预先选定的步长h一步 一步地向右跨,每跨一步都检验每步起点 和终点x 一步地向右跨,每跨一步都检验每步起点x0和终点 0 + h 的函数值, 那么所求的根x 的函数值,若 f ( x0 ) ⋅ f ( x0 + h) ≤ 0 那么所求的根 *必在 x0与x0+h之间,这里可取x0或作为根的初始近似。 之间,这里可取 或作为根的初始近似。 之间
所以, 所以,
x* ≈ 0.5 × (0.0859375 + 0.09375) ≈ 0.09
二分法的优缺点
简单; ①简单 要求不高(只要连续即可 只要连续即可) ② 对f (x) 要求不高 只要连续即可 .
①无法求复根及偶重根 ② 收敛慢
§3
迭 代 法
问题
虽然二分法计算简单,能够保证收敛, 虽然二分法计算简单,能够保证收敛,但是它对于方程 单根存在区域信息要求太高,一般情况下很难实现, 单根存在区域信息要求太高,一般情况下很难实现,并 且不能求重根、复根和虚根。在实际应用中, 且不能求重根、复根和虚根。在实际应用中,用来求解 方程根的主要方法是迭代法。 方程根的主要方法是迭代法。 使用迭代法求解非线性代数方程的步骤为: 使用迭代法求解非线性代数方程的步骤为: (1) 迭代格式的构造; 迭代格式的构造; (2) 迭代格式的收敛性分析; 迭代格式的收敛性分析; (3) 迭代格式的收敛速度与误差分析。 迭代格式的收敛速度与误差分析。
[a, b] ⊃ [a1 , b1 ] ⊃ [a2 , b2 ] ⊃ L ⊃ [an , bn ] ⊃ L
4、当 bn − an < ε 、 即为根的近似。 即为根的近似。
1 停止; 时,停止; xn = (an +bn ) 2
注:
b 当 n → ∞ 时,n − an → 0 ,即这些区间必将收缩于一点,也就是 即这些区间必将收缩于一点,
1.简单迭代法 f (x) = 0
等价变换
x = ϕ (x)
(5.3.1) )
是连续函数。 其中ϕ (x)是连续函数。方程(5.3.1)称为不动点方程,满足 是连续函数 方程( )称为不动点方程, 不动点, (5.3.1)式的点称为不动点,这样就将求 f ( x) 的零点问题转 )式的点称为不动点 化为求 ϕ ( x ) 的不动点问题。 的不动点问题。 以不动点方程为原型构造迭代格式
f (x) = 0
(5.1.1) )
1.根的存在性。方程有没有根?如果有,有几个根? .根的存在性。方程有没有根?如果有,有几个根?
2.根的搜索。这些根大致在哪里?如何把根隔离开? .根的搜索。这些根大致在哪里?如何把根隔离开?
3.根的精确化。 .根的精确化。
1.根的存在性 1.根的存在性
定义: 如果存在 x* 使得 定义:
程,也总是将问题简化成上述两类问题。上述除少数特殊方 也总是将问题简化成上述两类问题。 程外,大多数非线性代数方程( 程外,大多数非线性代数方程(组)很难使用解析法求解精 确解,一般需要通过一些数值方法逼近方程的解。 确解,一般需要通过一些数值方法逼近方程的解。这里主要 介绍单个方程的数值解法,方程组也可以采用类似的方法, 介绍单个方程的数值解法,方程组也可以采用类似的方法, 将放在后面讨论。 将放在后面讨论。
相关文档
最新文档