毕业论文

打赏
当前位置: 毕业论文 > 数学论文 >

非线性方程组的几种数值解法+matlab源代码(4)

时间:2020-10-22 21:40来源:毕业论文
即每步要解一个 阶线性方程组. 按照上述线性化法取得的迭代法通常形式为 (2-13) 为保证 近似于方程组(2-1 )的解 ,应要求 与 近似.基于不同的考虑,

即每步要解一个 阶线性方程组.

按照上述线性化法取得的迭代法通常形式为

             (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步简化后的牛顿法的步骤与牛顿法的步骤合并成一次牛顿步

非线性方程组的几种数值解法+matlab源代码(4):http://www.youerw.com/shuxue/lunwen_63443.html
------分隔线----------------------------
推荐内容