资源描述
个人收集整理 勿做商业用途
Error! Bookmark not defined.Error! Bookmark not defined.第二章 线性方程组的解法
基本解法迭代法和直接法。
直接方法大家已学过,我们重在分析程序写法。
§1 雅可比(Jacobi)迭代法
例: 求解线性方程组
分离出、、,构造迭代
取初值
得到近似解
准确解为
思路和方程迭代解法一样
极限存在 极限为根
线性方程组
矩阵
当 极限存在就是方程组的解,
本方法也适用于非线性方程组
迭代 极限存在 极限即为解
程序思想:
定义数组 A(n,n) X0(n) X(n) B(n)
读入组数 A B X0 (初值)
Do 100 k=1,10
Do 200 i=1,n
三重循环
200 CONTINUE
DO 300 i=1,n
300 X0(i)=X(i)
100 WRITE(*,*)X
Stop
End
§2 高斯-塞德尔(Gauss-Seidel)迭代法
对雅可尔迭代稍加改进 就可得到更有效的计算公式
Jacobi迭代中,第次迭代时,都用的是第次迭代结果
例如
在此之前 到已经迭代出第k+1次结果。
我们用已有的到新值,可改造为
高斯-塞德尔迭代法
程序更简单:
定义数组 A(n,n) X0(n) X(n) B(n)
读入组数 A B X0 (初值)
Do 100 k=1,10
Do 200 i=1,n
三重循环
200 CONTINUE
DO 300 i=1,n
300 X0(i)=X(i)
100 WRITE(*,*)X
Stop
End
§3 超松驰迭代法
我们要解的方程组是 矩阵形式
有初值
有一残余误差
上式w前应为“—”,若极限存在则B—AX(0)为零
将b的残余误差用来修正X,数学家也很伟大
当极限,极限即解 为什么收敛极限即解?
迭代公式:
注意可以,且必须含有该项
或
以上两式迭代有何异同?
当时
w减少 倍 不影响思想
可以证明 保证迭代收效 必须要求
低松弛法 超松弛法
迭代法的收放性
定理 所有迭代都可写成矩阵形式
对任意初值问差及任意
迭代收放的充要条件是:
为方阵B的特征值
定理(充分条件)
对任意收敛
对角元点优
对间钱上元素绝对值大于同行元素绝对值之和.
AX=b 则Jacobi Gauss-Seidel都收敛。
§4 高斯消去法
消去②中的
消去③中的
即消第i行的
经过上式得零。
或 直接让为零.
经过k—1次消元
第k次
消 用第k个方程消其下边方程中的
消第i个方程中的
消第i个方程中的时第i个方程中各项相应变化
当j=k时
或 消第i个方程中的时第i个方程中各项相应变化
强行让
DO 100 k=1, n-1
DO 200 i=k+1, n
DO 300 j=k,n
300 CONTINUE
200 CONTINUE
100 CONTINUE
回代过程
程序结构:
DO I=N—1,1,—1
T=0。0
DO J=I+1,N
T=T+
ENDDO
ENDDO
列主元素消去法
高斯消去法 碰到为零或很小时,消去无法进行.
人手工解时无所谓,为零更好该方程省得去消,但程序计算就不能进行
列主元素消去 调换方程顺序 注意调换方程顺序并不会改变未知数顺序
例 :
每次作消去时,判断不为零的剩余方阵第一列水最大。
比如做第k次消元(消)剩余k 乘 k 矩阵,则判断谁最大。
判断大小,只记最大位置
比如最大, 则用它去消剩余的。
为了程序设计方便我们将第m个方程移到第i个,一次下移。
或更简洁地将第i个与第m个进行对换。
必需作
注意:X矩阵不用变化。为什么?调整方程顺序,未知数的位置并不变。
这样一来程序上要做一些变化,在消之前加判断大小和跳换位置
加在********处 回代过程不变
DO 100 k=1, n-1
**********
DO 200 i=k+1, n
DO 300 j=k,n
300 CONTINUE
200 CONTINUE
100 CONTINUE
回代过程不变
完全主元素消去法
在A中找最大元素, 将该元素换到第一行第一列。
这样方程调顺序未知数亦调顺序.
做到第k次时
在剩余的方阵元素中找最大的再调整方程顺序
未知数顺序
特别注意 前几个方程的系数、未知数还要调整顺序。
未知数位置的变化必须记住,打印结果时要还原顺序.
回代过程不变。
§5 追赶法
消元,变成:
第一步给原方程组的方程1 除以b1,变成:
第二步,给上方程组变成:
、
第i 步,给方程组中第i—1个方程乘以,加到方程i,再除以.
回带过程也比较简单
归结为:
消元:
回带:
展开阅读全文