,并取其线性部分,
Fx≈FxkF′xkxxk
令上式右端为零,令上式右端为零,得到线性方程组
F′xkxxkFxk
其中
3
ff1xf1xxx21f2xf2xxx21F′xf
xf
xx2x1
f1xx
f2xx
f
xx
4
为雅可比(Jacobi)矩阵。称为Fx为雅可比(Jacobi)矩阵。求解线性方程组记解为x
k1
3,并
,则得
xk1xkF′xk1Fxk
这就是解非线性方程组
k01
5
2的牛顿法。的牛顿法。
3、算法
k1xkF′xk1Fxk牛顿法主要思想是用x
k01进行迭代。因此首先需要算出Fx的雅可比
′1′′矩阵Fx,再求过Fx求出它的逆Fx,当它达到某
时即停止迭代。个精度x_k时即停止迭代。
具体算法如下:具体算法如下:1.2.首先宏定义方程组Fx,确定步长
x_和精度x_k;
′求Fx的雅可比矩阵Fx;
可用
fix1xjx
xj
求出雅可比矩阵;求出雅可比矩阵;
fix1xjx_x
fix1xjx
x_
fF′x的逆F′x1;3.求雅可比矩阵
1…001′,通过单位矩阵变将Fx右乘一个单位矩阵
′的逆,用指针来存贮。换实现求Fx的逆,用指针来存贮。
4.5.6.
′′的相乘;雅可比矩阵Fx与其逆Fx的相乘;
1
来迭代;用5来迭代;当精度
x_ki大于x_k时,重复执行25步,直到精度小5
大于
时,重复执行25步,直到精度小
停止迭代,于或等于x_k停止迭代,其中
x_ki
就是最后的迭代结果。就是最后的迭代结果。
x_kix1i1x1i2x
i1x
i2
4、代码
i
cludeiostreamhi
cludestdlibhi
cludemathhi
cludeco
iohdefi
ef0x1x2x12x23x12x22x1x1x2x2defi
ef1x1x22x1x1x2x25defi
ex_0000001defi
ematrixNum2doublematrixF2doublexi
ty0
fvoidmai
i
tij
doublepxdoublebdoublematrixFdoublematrixF_矩阵矩阵F矩阵F的雅可比矩阵的逆矩阵
bdoublemallocmatrixNummatrixFdoublemallocmatrixNummatrixF_doublemallocmatrixNummatrixNumcout