1
大学数学实验
Experiments in Mathematics
实验6 非线性方程求解
清华大学数学科学系
什么叫方程(组) ?
方程:包含未知数(或 /和未知函数)的等式
方程组:包含未知数(或 /和未知函数)的一组等式
不包含未知函数的方程组的一般形式: F(x)=0
x= (x
1
,x
2
,…,x
n
)
T
, F(x)=(f
1
(x),f
2
(x),…,f
m
(x))
T
(一般 m=n)
满足方程(组)的未知数的取值称为方程(组)的
解,或称为 F(x)的零点。
单变量方程(一元方程): f(x)=0, “解 ”也称为 “根 ”
非线性方程的特点
方程根的特点:
? n次代数方程有且只有 n个根 (包括复根、重根 );
? 5次以上的代数方程无求根公式;
? 超越方程有无根,有几个根通常难以判断。
方程分类:
? 代数方程 : a
0
x
n
+a
1
x
n-1
+…+a
n
=0;
? 超越方程:包含超越函数 (如 sinx, lnx)的方程;
? 非线性方程: n(≥2)次代数方程和超越方程。
实验6的基本内容
3.实际问题中非线性方程的数值解
1.非线性方程 f(x)=0 的数值解法:
? 迭代方法的基本原理;
? 牛顿法; 拟牛顿法.
2.推广到解非线性方程组
4.分岔和混沌现象
实例1 路灯照明
道路两侧分别安装路灯,在漆黑的夜晚,当两只路灯开启时,
两只路灯连线的路面上最暗的点和最亮的点在哪里?
h
2
P
2
P
1
s
h
1
? 如果 P
2
的高度可以在 3米到 9米之间变化,如何使路面上最暗
点的亮度最大?
? 如果两只路灯的高度均可以在 3米到 9米之间变化呢?
s=20(米 )
P
1
=2, P
2
=3(千瓦 )
h
1
=5, h
2
=6(米 )
实例1 路灯照明
建立坐标系如图,两个光源在点 Q(x,0)的照度分别为
(k是由量纲单位决定的比
例系数,不妨记 k=1)2
2
22
2
2
1
11
1
sin
,
sin
r
P
kI
r
P
kI
αα
==
点 Q的照度
22
2
2
2
22
1
2
1
)(, xshrxhr ?+=+=
x
x
α
2
α
1
O
h
2
P
2
r
1
P
1
s
r
2
h
1
y
Q
22
1
1
1
1
1
sin
xh
h
r
h
+
==α
22
2
2
2
2
2
)(
sin
xsh
h
r
h
?+
==α
()()
3
22
2
22
3
22
1
11
)(
)(
xsh
hP
xh
hP
xC
?+
+
+
=
2
实例1 路灯照明
为求最暗点和最亮点,先求 C(x)的驻点
x
x
α
2
α
1
O
h
2
P
2
r
1
P
1
s
r
2
h
1
y
令 C’ (x)=0:解析解是难以求出,需数值求解
Q
()()
3
22
2
22
3
22
1
11
)(
)(
xsh
hP
xh
hP
xC
?+
+
+
=
()()
5
22
2
22
5
22
1
11
)(
)(
33)('
xsh
xshP
xh
xhP
xC
?+
?
+
+
?=
实例2 均相共沸混合物的组分
均相共沸混合物( homogeneous azeotrope) 是由两种或两种
以上物质组成的液体混合物,当在某种压力下被蒸馏或局部汽
化时,在气体状态下和在液体状态下保持相同的组分(比例)
给定几种物质,如何确定它们构成均相共沸混合物时的比例?
设该混合物由 n个可能的物质组成,物质 i所占的比例为 x
i
模型建立
0,1
1
≥=
∑
=
i
n
i
i
xx
实例2 均相共沸混合物的组分
均相共沸混合物应该满足 稳定条件 ,即共沸混合物的每个组分
在气体和液体状态下具有相同的化学势能。在压强 P不大的情
况下,这个条件可以表示为:
P
i
是物质 i的饱和汽相压强,与温度 T有关,可以如下确定:
niPP
ii
,,1, L==γ
ni
cT
b
aP
i
i
ii
,,1,ln L=
+
?=
是组分 i的液相活度系数,可以根据如下表达式确定 :i
γ
ni
qx
qx
qx
n
j
n
k
jkk
jij
n
j
ijji
,,1,ln1ln
1
1
1
L=
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?=
∑
∑
∑
=
=
=
γ
(q
ij
表示组分 i与组分 j的交互作用参数 ,可以通过实验近似得到 )
(a
i
, b
i
, c
i
是常数 )
实例2 均相共沸混合物的组分
ii
PP γ=
i
i
ii
cT
b
aP
+
?=ln
∑
∑
∑
=
=
=
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?=
n
j
n
k
jkk
jij
n
j
ijji
qx
qx
qx
1
1
1
ln1lnγ
只有当物质 i参与到该共沸混合物中时才需要满足上式,故得到
0ln1ln
1
1
1
=+??
?
?
?
?
?
?
?
?
?
?
?
?
+
?
?
?
?
?
?
?
?
+
+
∑
∑
∑
=
=
=
Pa
qx
qx
qx
cT
b
i
n
j
n
k
jkk
jij
n
j
ijj
i
i
0ln1ln
1
1
1
=
?
?
?
?
?
?
?
?
?
?
?
?
+??
?
?
?
?
?
?
?
?
?
?
?
?
+
?
?
?
?
?
?
?
?
+
+
∑
∑
∑
=
=
=
Pa
qx
qx
qx
cT
b
x
i
n
j
n
k
jkk
jij
n
j
ijj
i
i
i
nixx
i
n
i
i
,...,2,1,0,1
1
=≥=
∑
=
解析解是难以求
出,需数值求解
? 根的隔离:二分法
解方程 f(x)=0第一步 ——确定根的大致范围
? 图形法:作 f(x)图形,观察 f(x)与 x轴的交点
非线性方程的基本解法
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5
-50
-40
-30
-20
-10
0
10
20
30
01281362
2346
=++??? xxxxx
图形法
有 4个根分别位于
x= -1.75, -0.75, 1.00, 2.40附近
Exam0600.m
若对于 ba < , 有 0)()( <? bfaf , 则在 ),( ba 内 )(xf
至少有一个零点,即 0)( =xf 至少有一个根。
二分法
的原理
二分法
的实现
不足 收敛速度较慢
0)( <af
0)( >bf
0)(
0
<xf0)(
0
>xf
LL ???? ),(),(),(
11 nn
bababa
011
, xbaa ==
bbxa ==
101
,
区间每次缩小一半, n足
够大时,可确定根的范围
a b
)(xf
x xa b
)(xf
0
x
0
x
中点
),(:
0
bax
非线性方程的基本解法
3
例1 014)(
2
=?+= xxxf
2
1
14)( xxx ?==? , 迭代公式:
2
1
14
kk
xx ?=
+
)1/(14)(
2
+== xxx ? ,迭代公式: )1/(14
1
+=
+ kk
xx
)12/()14()(
2
3
+?+?== xxxxxx ? ,
迭代公式: )12/()14(
2
1
+?+?=
+ kkkkk
xxxxx
6)4(,2)3( =?= ff
)4,3(∈x存在根
)(xx ?=?
非线性方程迭代法的基本思想
将原方程 0)( =xf 改写成容易迭代的形式 )(xx ?= , 选
合适的初值
0
x , 进行迭代: ),2,1,0()(
1
L==
+
kxx
kk
?
x
0
x
1
x
2
x
3
x
4
x
5
1
?
3.0000 5.0000 -11.0000 -107.0000
2
?
3.0000 3.5000 3.1111 3.4054 3.1779 3.3510
3
?
3.0000 3.2857 3.2749 3.2749 3.2749 3.2749
1
? 根本不收敛;
2
? 虽呈现收敛趋势,但很慢;
3
? 收敛很快。
2749.3
2
)571(
,
2
)41411( *
2,1
≈
+?
=
×+±?
= xx
非线性方程的迭代法(例)
迭代法的几何解释
y=φ (x)
x
* x
y
y=x
0
x
1
x
0
P
0
(x
0
,x
1
)
x
2
P
1
(x
1
,x
2
)
x
3
P
2 P
3
x
y y=x
y=φ (x)
0 x
*
x
0
x
1
x
2
x
3
P
0
P
1
P
3
{x
k
}收敛于 x
*
{x
k
}不收敛于 x
*
取决于曲线 φ(x)的斜率
)(
**
xx ?=不动点L,1,0),(
1
==
+
kxx
kk
?
迭代法的收敛性
设 )(xy ?= 在 bxa ≤≤ 连续,且 bya ≤≤ ,若存在 1<L 使
,)( Lx ≤′? 则 )(xx ?= 在 bxa ≤≤ 有唯一解
*
x ,且
1) 对于 ),(
0
bax ∈ ,迭代公式 )2,1,0()(
1
L==
+
kxx
kk
? 产生
的序列 }{
k
x 收敛于
*
x ;
2)
01
***
1
1
, xx
L
L
xxxxLxx
k
kkk
?
?
≤??≤?
+
。
局部收敛性 : 只要 )(x? 在
*
x 的一个邻域连续且
,1)(
*
<′ x? 则对于该邻域内的任意初值
0
x ,序列
}{
k
x 就收敛于
*
x 。
L不易确定 放宽定理条件,缩小初值范围
迭代法的收敛速度(收敛阶)
记
*
xxe
kk
?= ,若 0
1
lim ≠=
+
∞→
c
e
e
p
k
k
k
( p 为一正数)
称序列 }{
k
x p 阶收敛。 显然, p 越大收敛越快 。
LL +?++?′+=
p
k
p
kk
xx
p
x
xxxxx )(
!
)(
))(()()(
*)(
***
?
???
0)(
*
≠′ x? , }{
k
x
0)(,0)()(
*)(*)1(*
≠===′
?
xxx
pp
??? L , }{
k
x p阶收敛
LL +++′=
+
p
k
p
kk
e
p
x
exe
!
)(
)(
*)(
*
1
?
?
1阶收敛(线性收敛)
结论: φ(x)的构造决定收敛速度
)12/()14()(
2
3
+?+?= xxxxx?
迭代法的收敛速度(例)
)1/(14)(
2
+= xx? 014)(
2
=?+= xxxf例题
阶收敛1}{0)(,
)1(
14
)(
*
2
2
2 k
xx
x
x ?≠′
+
?
=′ ??
阶收敛2}{0)(
,0)(,
)12(
)14(2
)(
*
3
*
3
2
2
3
k
xx
x
x
xx
x
?≠′′
=′
+
?+
=′
?
??
4
牛顿切线法
)(xf 在
k
x 作 Tayl or 展开,去掉 2阶及 2阶以上项得
))(()()(
kkk
xxxfxfxf ?′+=
)(
)(
)(,
)(
)()(
)(
*
*
*
2*
**
*
xf
xf
x
xf
xfxf
x
′
′′
=′′
′
′′
=′ ??
牛顿切线法 2阶收敛
,0)(
*
=xf 0)(),(
**
≠′′′ xfxf
0)(,0)(
**
≠′′=′ xx ??
若 x
*
为单根
设 0)( ≠′
k
xf ,用
1+k
x 代替右端的 x ,由 0)( =xf 得
)(
)(
1
k
k
kk
xf
xf
xx
′
?=
+
, 即令
)(
)(
)(
xf
xf
xx
′
?=?
x
k
x
k+1
M
N
x
O
y=f(x)
y
f(x
k
)
牛顿
割线法
用差商
1
1
)()(
?
?
?
?
kk
kk
xx
xfxf
代替 )(
k
xf ′
)()(
))((
1
1
1
?
?
+
?
?
?=
kk
kkk
kk
xfxf
xxxf
xx
x
*
为单根时收敛阶数是 1.618
y
O
x
k+1
x
y=f(x)
P
Q
x
k-1
x
k
若 x
*
为重根
0)(
*
≠′ x?
牛顿切线法 1阶收敛
收敛速度比牛顿切线法稍慢
0)()(
**
=′= xfxf
重数越高,收敛越慢
解非线性方程组的牛顿法
T
n
T
n
xfxfxFxxxxF )](),([)(,],[,0)(
11
LL ===
))(()()(
11 kkkkk
xxxfxfxf ?′+=
++
)(
)(
1
k
k
kk
xf
xf
xx
′
?=
+
解方程 f(x)=0
的 牛顿切线法
推广到解方程组
nixx
x
xf
xx
x
xf
xfxf
k
n
k
n
n
k
i
kk
k
ik
i
k
i
LL ,2,1),(
)(
)(
)(
)()(
1
1
1
1
1
1
=?
?
?
++
?
?
?
+=
+
++
))(()()(
11 kkkkk
xxxFxFxF ?′+=
++
)()]([
11 kkkk
xFxFxx
?+
′?=
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
=
?
?
=′
×
n
nn
n
nn
j
i
x
f
x
f
x
f
x
f
x
f
xF
LL
LL
LL
1
1
1
1
][)(
T
n
T
n
xfxfxFxxxxF )](),([)(,],[,0)(
11
LL ===
))(()()(
11 kkkkk
xxxfxfxf ?′+=
++
)(
)(
1
k
k
kk
xf
xf
xx
′
?=
+
解方程 f(x)=0
kkk
xxx ?+=
+1
)()(
kkk
xFxxF ?=?′
解非线性方程组的牛顿法
解方程 f(x)=0
的 牛顿割线法
)()()(
11 kkkkk
xxaxfxf ?+=
++
k
k
kk
a
xf
xx
)(
1
?=
+
1
1
)()(
?
?
?
?
=
kk
kk
k
xx
xfxf
a
解方程组的拟牛顿法 ——用 A
k
代替 F′(x
k
)
)()()(
11 ??
?=?
kkkkkk
xFxFxxAA 满足使
矩阵 A
k
(n
2
个未知数 )不能由这样的 n个方程确定
kkkk
AAAAA 计算有不同的构造用迭代方法 )(
11
??+=
??
)()(
11 kkkk
xFAxx
?+
?=再求
拟牛顿法 (Quasi-Newton)
MATLAB优化工具箱解非线性方程
fzero: 单变量方程 f(x)=0 求根 (变号点)
最简形式x= fzero(@f, x0 )
可选输入 : “P1,P2,...”是传给 f.m的参数 (如果需要的话 )
’opt’是一个结构变量,控制参数 (如精度 TolX )
opt可用 optimset设定 , 不指定或指定为 ’[ ]’时将采用缺省值
如 : opt=optimset(‘TolX’,1e-8)
输出: ’fv’是函数值; ’ef’是程序停止运行的原因(1,0,-1);
’out’是一个结构变量,包含:
iterations(迭代次数), funcCount (函数调用次数), algorithm(所用算法)
一般形式[x, fv, ef, out] = fzero(@f, x0, opt, P1, P2, ... )
必须输入 : ’f’为 f.m函数名, ’x0’是迭代初值 (或有根区间 )
输出: ’x’是变号点的近似值(函数不连续时不一定是根)
演示: exampleFzero.m
5
fsolve: 多变量方程组F(x)=0求解
输出 ---- 与fzero类似, 但:
’out’中还输出’firstorderopt’, 即结果(x点)处梯度向量
的范数(实际上是1-范数,即分量按绝对值取最大的值);
’jac’输出x点所对应的雅可比矩阵
输入 ---- 与fzero类似, 但:
’x0’是迭代初值,
’opt’中控制参数更多(如MaxFunEvals, MaxIter等)
x= fsolve(@f, x0 ) 最简形式
[x, fv, ef, out, jac ] = fsolve(@f, x0, opt, P1, P2, ... ) 一般形式
注: solve函数也可求解(符号工具箱)
MATLAB优化工具箱解非线性方程组
需自行编制程序,如对切线法编写名为 newton.m的 m文件
牛顿法
当 )(xf 为多项式时可用
r=roots(c) 输入多项式的系数 c(按降幂排列) ,输出
r 为 0)( =xf 的全部根;
c=poly(r) 输入 0)( =xf 的全部根 r,输出 c 为多 项
式的系数(按降幂排列) ;
df=polyder(c) 输入多项式的系数 c(按降幂排列) ,输出
df为多项式的微分的系数。
多项式求根
MATLAB优化工具箱解非线性方程
function [y,z]=newton(fv,df,x0,n,tol)
x(1)=x0; y=x0; b=1; k=1;
while abs(b)>tol*abs(x(k))
x(k+1)=x(k)-feval(fv,x(k))/feval(df,x(k));
b=x(k+1)-x(k);
y=x(k+1);
k=k+1;
if(k>n)
error('Error: Reached maximum iteration times');
end
end
k=k-1;
fv是 f(x)的函数句柄, df是 f ’(x)的函数句柄
求解 f(x)=0的 newton.m文件
Newton.m
1,4
2
2
2
1
2
2
2
1
=?=+ xxxx解例
?
?
?
?
?
?
?
=′
?
?
?
?
?
?
?
?
??
?+
=
21
21
2
2
2
1
2
2
2
1
2)(,
1
4
)(
xx
xx
xF
xx
xx
xF
),()(
kkk
xFxxF ?=?′ L,1,0,
1
=?+=
+
kxxx
kkk
T
x )1,1(
0
=取
kx
k
0 (1.000000, 1.000000)
1 (1.750000, 1.250000)
2 (1.589286, 1.225000)
3 (1.581160, 1.224645)
4 (1.581139, 1.224745)
5 (1.581139, 1.224745)
T
T
x
)22474487.1,58113883.1(
)2/3,2/5(
=
=精确解
演示exam0602Newton.m;
exam0602Fsolve.m;
exam0602Solve.m
实例1 路灯照明
()()
0
)(
)(
33)('
5
22
2
22
5
22
1
11
=
?+
?
+
+
?=
xsh
xshP
xh
xhP
xC
2065
32
21
21
===
==
shh
PP
,,
,
0 5 10 15 20
0
0.02
0.04
0.06
0.08
0.1
C(x)
0 5 10 15 20
-4
-2
0
2
4
6
x 10
-3
dC(x)
()()
3
22
2
22
3
22
1
11
)(
)(
xsh
hP
xh
hP
xC
?+
+
+
=
C (x)有 3个驻点 : (9,10)内的是最小点, 0或 20附近的是最大点
实例1 路灯照明
function y=zhaoming(x)
y=2*5*x/(5^2+x^2)^(5/2)-3*6*(20-x)/(6^2+(20-x)^2)^(5/2);
x0=[0,10,20];
for k=1:3
x(k)=fzero(@zhaoming,x0(k));
c(k)=2*5/(5^2+x(k)^2)^(3/2)+3*6/(6^2+(20-x(k))^2)^(3/2);
end
[x;c]
0.084474680.084476550.018243930.081981040.08197716
C(x)
2019.976695819.338299140.028489970
x
x =9.3383是 C(x)的最小值点, x =19.9767是 C(x)的最大值点
6
实例1 路灯照明
问题: P
2
=3千瓦路灯的高度在 3~9米变化,如何使路面上最暗点
的照度最大 ?
用 fzero命令解方程,得到的结果是:
x=9.5032, h
2
=7.4224, C(x, h
2
)= 0.018556(最暗点的最大照度 )
()()
3
22
2
22
3
22
1
11
2
)(
)(
xsh
hP
xh
hP
hxC
?+
+
+
=,
()()
5
22
2
22
5
22
1
11
)(
)(
33
xsh
xshP
xh
xhP
x
C
?+
?
+
+
?=
?
?
()()
5
22
2
2
22
3
22
2
2
2
)(
3
)( xsh
hP
xsh
P
h
C
?+
?
?+
=
?
?
=0 ? )(
2
1
2
xsh ?=
=0 ?
()
0
)(
439
3
2
5
22
1
11
=
?
?
+
xs
P
xh
xhP
实例1 路灯照明
问题:讨论两只路灯的高度均可以在 3~9米之间变化的情况
实际数据计算,得到 x=9.3253, 最暗点的照度达到最大的路灯高
度 h
1
=6.5940, h
2
=7.5482
()()
3
22
2
22
3
22
1
11
21
)(
),,(
xsh
hP
xh
hP
hhxC
?+
+
+
=
()()
5
22
2
22
5
22
1
11
)(
)(
33
xsh
xshP
xh
xhP
x
C
?+
?
+
+
?=
?
?
()()
5
22
2
2
22
3
22
2
2
2
)(
3
)( xsh
hP
xsh
P
h
C
?+
?
?+
=
?
?
=0 ? )(
2
1
2
xsh ?=
=0 ?
0
1
=
?
?
h
C
=0 ? xh
2
1
1
=
3
2
3
1
)( xs
P
x
P
?
=
3
2
3
1
3
1
PP
sP
x
+
=
实例1 路灯照明
讨论 1: 若 P
1
=P
2
, 则 x=0.5s (中点 ), 与直觉符合
思考: 2只以上路灯的情形(如篮球场四周安装照明灯)
)(
2
1
2
xsh ?=
xh
2
1
1
=
3
2
3
1
3
1
PP
sP
x
+
=
x
x
α
2
α
1
O
h
2
P
2
r
1
P
1
s
r
2
h
1
y
Q
讨论 2: 2/2
21
== αα tgtg
6135
21
′==
o
αα
(这个角度与路灯的功率和道路宽度均无关 )
实例2 均相共沸混合物的组分
0ln1ln
1
1
1
=
?
?
?
?
?
?
?
?
?
?
?
?
+??
?
?
?
?
?
?
?
?
?
?
?
?
+
?
?
?
?
?
?
?
?
+
+
∑
∑
∑
=
=
=
Pa
qx
qx
qx
cT
b
x
i
n
j
n
k
jkk
jij
n
j
ijj
i
i
i
a
1
=16.388, a
2
=16.268, a
3
=18.607;
b
1
=2787.50, b
2
=2665.54,
b
3
=3643.31;
c
1
=229.66, c
2
=219.73, c
3
=239.73;
P=760( mmHg)
Q=[1.0 0.48 0.768
1.55 1.0 0.544
0.566 0.65 1.0 ]
1
1
=
∑
=
n
i
i
x
∑
?
=
?=
1
1
1
n
i
in
xx
给定 n=3种物资:丙酮、乙酸甲脂、甲醇 (分别记为 1、 2、 3)
n个变量: T, x
i
实例2 均相共沸混合物的组分
XT = [0.2740 0.4636 54.2560]
Y = 1.0e-006 *
[0.4195 -0.3112 0.2083]
function f=azeofun(XT,n,P,a,b,c,Q)
x(n)=1;
for i=1:n-1
x(i)=XT(i);
x(n)=x(n)-x(i);
end
T=XT(n);
p=log(P);
for i=1:n
d(i) = x * Q(i,1:n)';
dd(i)=x(i)/d(i);
end
for i=1:n
f(i)=x(i)*(b(i)/(T+c(i)) + log(x*Q(i,1:n)')
+ dd*Q(1:n,i) - a(i) - 1 + p);
end
n=3;
P=760;
a=[16.388,16.268,18.607]';
b=[2787.50,2665.54,3643.31]';
c=[229.66,219.73,239.73]';
Q=[1.0 0.48 0.768
1.55 1.0 0.544
0.566 0.65 1.0];
XT0=[0.333,0.333,50];
[XT,Y]=fsolve(@azeofun,XT
0,[],n,P,a,b,c,Q)
实例2 均相共沸混合物的组分
55.67640.00000.46720.5328[0.5, 0.5, 54]
54.50400.25250.00000.7475 [0.5, 0, 54]
54.35790.32340.67660.0000[0, 0.5, 54]
54.25600.26240.46360.2740
[0.333, 0.333, 50]
Tx
3
x
2
x
1
XT0
解初值
7
分岔与混沌现象
离散形式的阻滞增长模型(见实验 2)
L,2,1,0,)1(
1
=?=?
+
kx
N
x
rxx
k
k
kk
问题: 种群数量总是趋于稳定吗?
(x
k
是第 k代的种群数量, r是固有增长率, N是种群最大容量 )
取 N=1, r=0.3, 1.8, 2.2, 2.5, 2.55, 2.7,初值 x0=0.1,按照迭代方
程用 MATLAB计算 x
k
,观察得到结果
分
岔
与
混
沌
现
象
分岔与混沌现象
k
k
kk
x
N
x
rxx )1(
1
?=?
+
即 1< b <3, 0 < r <2
平衡点 y=y*=1-1/b(相应于 x*=N)稳定的条件为 | f ’( y*)| <1
1,
)1(
+=
+
= rbx
Nr
r
y
kk
L,2,1,0
)1()(
1
=
?==
+
k
ybyyfy
kkkk
分岔与混沌现象
隔代收敛分析
)(),(,10
*
1
*
2
*
2
*
1
*
2
**
1
yfyyfyyyy ==<<<<
1))((
*
2,1
)2(
<′yf
平衡点 y
1,2
*稳定的条件是
)21)(21()()())((
*
2
*
1
2*
2
*
1
*
2,1
)2(
yybyfyfyf ??=′′=′
449.361 ≈+<b 449.2<r
L,2,1,0),())(()(
)2(
12
====
++
kyfyffyfy
kkkk
平衡点 (除 y=y*=1-1/b 外 )
)]1(1)[1()(
)2(
ybyybbyyfy ???==
b
bbb
y
2
321
2
*
2,1
??+
=
m
分岔与混沌现象
类似地可以得到:迭代方程有 4个稳定平衡点的条件
544.3449.3 <<b 544.2449.2 << r
记有 2
n
个收敛子序列的 b的上限为 b
n
,上面的分析给出:
进一步研究表明:当 n→∞时 b
n
→ 3.57,若 b>3.57(即 r>2.57),就
不再存在任何 2
n
收敛子序列,序列 x
k
的趋势似乎呈现一片混
乱,这就是所谓 混沌现象( Chaos) 。
b
0
=3, b
1
=3.449, b
2
=3.544
L6692.4lim
1
1
=
?
?
+
?
∞→
nn
nn
n
bb
bb
混沌现象实际上有其内在的规律性 , 如
是普遍存在于不同混沌现象中的常数 (费根鲍姆常数 )
分岔与混沌现象
混沌现象的一个典型特征是对初始条件的敏感性
? “差之毫厘,失之千里 ”
? 著名的 “蝴蝶效应 ”
非线性迭代过程 ---- 混沌现象 ---- 非线性科学
8
分岔与混沌现象
function chaos(iter_fun,x0,r,n) % 该函
数没有返回值; iter_fun是迭代函数
(句柄); x0是迭代初值;
kr=0;
for rr=r(1):r(3):r(2)
% 输入中 [r(1),r(2)]是参数变化的范
围, r(3) 是步长
kr=kr+1;
y(kr,1)=feval(iter_fun,x0,rr);
for i=2:n(2)
%输入中 n(2)是迭代序列的长度,但
画图时前 n(1)个迭代值被舍弃
y(kr,i)=feval(iter_fun,y(kr,i-1),rr);
end
end
plot([r(1):r(3):r(2)],y(:,n(1)+1:n(2)),'k.');
本例迭代函数为:
function y=iter01(x,r)
y=r*x*(1-x);
2 2.2 2.4 2.6 2.8 3 3.2 3.4 3.6 3.8 4
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
输入如下命令:
chaos(@iter01,0.5,[2,4,0.01],
[100,200])
布置实验
目的
1) 用 MATLAB软件掌握求解非线性方程的
迭代法和牛顿法,并对结果作初步分析;
内容课上布置,或参见网络学堂
2) 通过实例练习用非线性方程求解的实际问题。