MATLAB线性方程组的求解

本文概述了线性方程组的各种求解方法,包括直接法如高斯消去法、列主元消去法及矩阵的三角分解法;矩阵分解法如LU分解、QR分解和Cholesky分解;以及迭代法如雅可比迭代法和高斯-赛德尔迭代方法。详细介绍了每种方法的原理和适用条件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接法

高斯消去法
列主元消去法
矩阵的三角分解法

(1)利用左除运算符的直接解法,
x=A\b如果矩阵A是奇异的或接近奇异的,会警告
(2)利用矩阵分解求解线性方程组
LU分解
[L,U]=lu(A):产生一个上三角阵U和一个变换形式的下三角阵L,使之满足A=LU。注意,A必须是方阵
[L,U,P]=lu(A) 产生一个上三角阵U和一个变换形式的下三角阵P,使之满足PA=LU。注意,A必须是方阵
QR分解
Cholesky分解

迭代法

雅可比迭代法

Ax=b A可以分解成D-L-U D为对角阵 L为下三角阵取反 U为上三角阵取反
求解公式为x=D-1(L+U)x+D-1b
与之对应的迭代公式为:x(k+1)=D-1(L+U)x(k)+D-1b

function [y,n]=jacobi(A,b,x0,ep)     %系数矩阵 右端列向量  迭代初值   精度
D=diag(diag(A));
L=-tril(A,-1);
U=-triu(A,1);
B=D\(L+U);
f=D\b;
y=B*x0+f;
n=1;
while norm(y-x0)>=ep
    x0=y;
    y=B*x0+f;
    n=n+1;
end
高斯-赛德尔迭代方法

Dx(k+1)=(L+U)x(k)+b
Dx(k+1)=Lx(k+1)+Ux(k)+b
(D-L)X(k+1)=Ux(k)+b
x(k+1)=(D-L)-1Ux(k)+(D-L)-1b
B=(D-L)-1U,f=(D-L)-1b >x(k+1)=Bx(k)+f

    function[y,n]=gauseidel(A,b,x0,ep)
D=diag(diag(A));
L=-tril(A,-1);
U=-triu(A,1);
B=(D-L)\U;
f=(D-L)\b;
y=B*x0+f;
n=1;
while norm(y-x0)>=ep
    x0=y;
    y=B*x0+f;
    n=n+1;
end

注意:在使用迭代法时要考虑方程组是否收敛,那种收敛速度快,那种收敛速度慢,集体问题具体分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值