直接法
高斯消去法
列主元消去法
矩阵的三角分解法
(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
注意:在使用迭代法时要考虑方程组是否收敛,那种收敛速度快,那种收敛速度慢,集体问题具体分析