清华大学课程“数值分析”(No.20240033)
交互演示网站

<<主页

解非线性方程组的牛顿法

本模块演示用牛顿法求解一个二维非线性方程组 f (x, y) = 0. 给定一个近似解,牛顿法基于在当前解处进行局部线性化的原理, 通过计算Jacobian矩阵形成一个线性方程组,求解它便得到生成新的近似解所需的增量步长. 这个过程重复进行,通常很快就能收敛.

使用者可以选择一个预设的例子问题或者自行输入函数f1(x, y)f2(x, y), 也可以输入初始解(x, y) (在右下角处, 输入后再点击"Refresh"按钮)或者使用默认的初始解. 然后通过不断点击图右侧的"NEXT"按钮或高亮显示的步骤可一步一步地执行牛顿法. 图中用圆点标出当前解(x, y)的位置, 并将它们的数值显示在下面的表格中. 在牛顿法的每个迭代步,通过求解线性化得到线性方程组J s = − f, 其中Jf的Jacobian矩阵, 得到求下一个近似解所需的增量步长s, 这样不断地重复下去. 如果初始解足够接近精确解,牛顿法一定收敛,并且能够达到平方的收敛速度.

注意:本模块绘图区上方的几个按钮提供了绘图区的更多功能的设置, 与本模块无关, 因此不要做任何修改.

参考内容: 课本第2.7.1节.