MATLAB直接法和迭代法求解线性方程组

本文介绍了MATLAB中求解线性方程组的直接法和迭代法。直接法包括左除运算符解法和LU分解法,迭代法涉及雅可比迭代和高斯-赛德尔迭代。直接法适用于低阶稠密线性方程组,而迭代法适合大型稀疏矩阵,并讨论了迭代法的收敛性。
摘要由CSDN通过智能技术生成

前言

线性方程组计算机解法有直接法迭代法两大类。

  • 直接法
    计算公式直接计算求出线性方程组解的方法。包括有高斯(Gauss)消元法、列主元消元法、全主元消元法、LU分解法(矩阵的三角分解法)、追赶法等。
  • 迭代法
    迭代公式通过迭代计算求出满足精度要求的线性方程组近似解的方法。包括有Jacobi迭代法、seidel迭代法(即Gauss-seidel迭代法)、sor法(超松弛迭代法)等。(迭代法是一种逐次逼近线性方程组解的方法)

1 线性方程组的直接解法

1.1利用左除运算符的直接解法

A x = b      ⇒ d e t ( A ) ≠ 0      x = A \ b Ax=b \;\;\xRightarrow{det(A) \neq 0} \;\;x=A\backslash b Ax=bdet(A)=0 x=A\b
eg:
{ 2 x 1 + x 2 − 5 x 3 + x 4 = 13 x 1 − 5 x 2 + 7 x 4 = − 9 2 x 2 + x 3 − x 4 = 6 x 1 + 6 x 2 − x 3 − 4 x 4 = 0 \begin{cases} 2x_1+x_2-5x_3+x_4=13\\ x_1-5x_2+7x_4 = -9 \\ 2x_2+x_3-x_4=6\\x_1+6x_2-x_3-4x_4=0 \end{cases} 2x1+x25x3+x4=13x15x2+7x4=92x2+x3x4=6x1+6x2x34x4=0
demo:

A=[2 1 -5 1;1 -5 0 7;0 2 1 -1;1 6 -1 -4];
b=[13,-9,6,0]';
x=A\b

运行结果如下:

x =
 -66.555555555555543
  25.666666666666664
 -18.777777777777775
  26.555555555555550

1.2 LU分解法

1.2.1 LU分解法的基本思想

A x = b ⇒ A = L U L U x = b ⟹ { L y = b U x = y Ax=b \quad \xRightarrow{A=LU}LUx=b \Longrightarrow \left\{\begin{matrix} Ly=b \\ Ux=y \end{matrix}\right. Ax=bA=LU LUx=b{ Ly=bUx=y

1.2.2 Matlab的LU分解函数

  • [L,U]=lu(A):产生一个上三角矩阵U和一个变换形式的下三角矩阵L,使之满足A=LU。(!注意:矩阵A必须为方阵
  • [L,U,P]=lu(A):产生一个上三角阵U和一个下三角阵L以及一个置换矩阵P,使之满足PA=LU。(!注意:矩阵A也必须为方阵

1.2.3 用LU分解法求解线性方程组

  • A x = b ⟶ L U x = b ⟶ x = U \ ( L \ b ) Ax=b\longrightarrow LUx=b \longrightarrow x=U\backslash(L\backslash b) Ax=bLUx=bx=U\(L\b)
  • A x = b ⟶ P A x = P b ⟶ L U x = P b ⟶ x = U \ ( L \ p ∗ b ) Ax=b\longrightarrow PAx=Pb \longrightarrow LUx=Pb\longrightarrow x=U\backslash(L\backslash p*b) Ax=bPAx=PbLUx=Pbx=U\(L\pb)

eg:
{ 2 x 1 + x 2 − 5 x 3 + x 4 = 13 x 1 − 5 x 2 + 7 x 4 = − 9 2 x 2 + x 3 − x 4 = 6 x 1 + 6 x 2 − x 3 − 4 x 4 = 0 \begin{cases} 2x_1+x_2-5x_3+x_4=13\\ x_1-5x_2+7x_4 = -9 \\ 2x_2+x_3-x_4=6\\x_1+6x_2-x_3-4x_4=0 \end{cases} 2x1+x25x

  • 26
    点赞
  • 138
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值