赞
踩
在多变量微积分和矩阵理论的交叉点是求解非线性代数方程的迭代方法。设是的
n
n
n个未知向量x,有
F
(
x
)
=
0
∈
R
n
\mathbf{F}\left( \mathbf{x} \right) =0\in \text{R}^{\text{n}}
F(x)=0∈Rn
就是求解x的
n
n
n个非线性方程组,其中向量函数具有连续导数,并且雅可比矩阵
F
x
(
x
)
\mathbf F_\mathbf{x}(\mathbf x)
Fx(x) 在
R
n
R^n
Rn的开集D中是非奇异的。在解的估计值为
x
0
x^0
x0的情况下,一阶泰勒展开寻求
x
0
x^0
x0的扰动
Δ
x
0
\Delta x^0
Δx0,该干扰
Δ
x
0
\Delta x^0
Δx0使得
x
1
=
x
0
+
Δ
x
0
\mathbf{x}^1=\mathbf{x}^0+\Delta \mathbf{x}^0
x1=x0+Δx0更好地逼近解,使得
F
(
x
0
)
+
F
x
(
x
0
)
Δ
x
0
=
0
\mathbf{F}\left( \mathbf{x}^0 \right) +\mathbf{F}_{\mathbf{x}}\left( \mathbf{x}^0 \right) \Delta \mathbf{x}^0=0
F(x0)+Fx(x0)Δx0=0
经过
J
J
J次迭代,增量方程可表示为
F
x
(
x
j
)
Δ
x
j
=
−
F
(
x
j
)
x
j
+
1
=
x
j
+
Δ
x
j
一直持续到
∥
F
(
x
j
+
1
)
∥
≤
Tol
\lVert \mathbf{F}\left( \mathbf{x}^{j+1} \right) \rVert \leq \text{Tol}
∥F(xj+1)∥≤Tol ,其中Tol为解的容差。
如果
x
0
x^0
x0足够接近解,则该方法二次收敛于解;即
∥
x
ˉ
−
x
j
+
1
∥
≤
k
∥
x
ˉ
−
x
j
∥
2
\lVert \mathbf{\bar{x}}-\mathbf{x}^{j+1} \rVert \leq \text{k}\lVert \mathbf{\bar{x}}-\mathbf{x}^j \rVert ^2
∥xˉ−xj+1∥≤k∥xˉ−xj∥2
其中
x
‾
\overline x
x是解,
k
k
k是常数。然而,良好的初始估计通常很难获得,并且对于较差的初始估计,该方法可能会产生偏差。幸运的是,在时间
t
i
+
1
=
t
i
+
h
,
(
i
=
1
,
2
,
…
,
h
很
小
)
t_i+1=t_i+ h,(i=1,2,…,h很小)
ti+1=ti+h,(i=1,2,…,h很小)的运动学和动力学模拟应用中,其解可以用作
t
i
+
1
t_i+1
ti+1的初始估计,并且很可能收敛。
代码如下(示例):
tolerance=1.0e-10; %迭代误差 x=0.5; %初始值 iters=0; %迭代次数 rnorm=1.0; %初始误差的最大值 itersmax=20; %最大迭代次数 while iters<itersmax && rnorm>tolerance %Iteration for x, through line 15 fx=1+sin(x)-x; %原函数 dfx=cos(x)-1; %函数的一阶导数 K=-dfx; R=fx; delx=R/K; %Newton-Raphson iteration,x的增量 x=x+delx; rnorm=abs(R); iters=iters+1; fprintf('iters=%3d,|R|=%14.5e,|delx|=%14.5e\n',iters,rnorm,abs(delx)); end % 输出最终结果 if rnorm<tolerance fprintf('the converged solution is:x=%14.6e,f(x)=%15.8e\n',x,fx); else fprintf('oops,your newton-raphson failed') end
输出结果
iters= 1,|R|= 9.79426e-01,|delx|= 8.00070e+00
iters= 2,|R|= 6.70264e+00,|delx|= 4.18242e+00
iters= 3,|R|= 4.24162e+00,|delx|= 3.06478e+00
iters= 4,|R|= 6.96585e-01,|delx|= 1.01248e+00
iters= 5,|R|= 4.98041e-01,|delx|= 3.03586e-01
iters= 6,|R|= 3.80906e-02,|delx|= 2.75686e-02
iters= 7,|R|= 3.52559e-04,|delx|= 2.59991e-04
iters= 8,|R|= 3.15841e-08,|delx|= 2.32956e-08
iters= 9,|R|= 4.44089e-16,|delx|= 3.27548e-16
the converged solution is:x= 1.934563e+00,f(x)=-4.44089210e-16
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。