即每步要解一个 阶线性方程组.
按照上述线性化法取得的迭代法通常形式为
(2-13)
为保证 近似于方程组(2-1 )的解 ,应要求 与 近似.基于不同的考虑,适当选取 就得到牛顿法的各种变型,这类方法称为牛顿型迭代法.
求非线性方程组的数值解的方法有非常多种,随着数学科技的发展,以及长期的研究,形成了更多非线性方程组数值解法,可是作为经典数值解法的牛顿法等还是拥有重要地位,现如今很多迭代法都是以牛顿法为根本,下面对几种非线性方程组的数值解法进行分析以及提出相应的改进.
2.1.2 三种牛顿法的比较
2.1.2.1 传统牛顿法
由2.1.1节中知牛顿法的迭代公式为:
迭代一次解一次如下方程组:
此为线性方程组,故能以高斯消去法获取解.以以下条件:
为此方法停止的标准,其中 为给出的精度标准,亦能以给出的最大迭代次数 为停止迭代标准.
对非线性方程组(2-1)记
用此方法解 的步骤:
输入[12]:方程组的阶数 ,最大迭代次数 ,迭代第一个值 误差 .
输出:近似解 或 的消息.
1)如果已经完成 次迭代,同时获得了 ;
2)运算
3)对 阶线性方程组进行高斯消去求解: ;
4)求 ;
5)求解 ;
6)若 ,则转8),否则转7);
7)若 并且转2),否则转8);
8)输出数值解或者输出 的消息;
9)终止迭代.
2.1.2.2 简化牛顿法
相对于其它方法虽然牛顿法拥有高收敛速度,但是每进行一次迭代时,需要求解 个函数的值 ,以及 个导数值 构成的矩阵:jacobi矩阵 ,且需要计算 的逆矩阵以及求一个线性方程组的解,计算数量大,就算是运用一些数学软件也是费事的.所以在这个方向上,可以做一些改动,在上述的牛顿法中改动,如对一切 ,取 ,则迭代公式应该为:
式(2-15)即为简化的牛顿法,此方法虽然减少了计算量,反而导致求得最终结果的速度变慢了.
简化了的牛顿法与牛顿法的不同点不多,只在于仅由预知的初始近似值来计算 ,得到的值后期迭代时只引用不再计算,保持所得初始计算所得值.解非线性方程组 的简化牛顿算法如下:
输入:方程组的阶数 最大迭代次数 ;迭代初值 误差 .
输出:近似解 或或 的消息.
1)假设已经经过k次迭代,且求出了 ;
2)计算 ;
3)运用高斯消去法解 阶线性方程组: ;
4)求 ;
5)求解 ;
6)若 ,则转8),否则转7);
7)若 并且转3),否则转8);
8)输出数值解或者输出输出 的消息;
9)终止迭代.
2.1.2.3 修正牛顿法
分析以上两者,其利弊自现,各有优有劣,而若能取长补短,效益倍增,故可以使牛顿法的快速收敛与简化牛顿法的计算量少有效结合,即在算法中改进,如将m步简化后的牛顿法的步骤与牛顿法的步骤合并成一次牛顿步