1. 什么是Gauss变换
对于一个向量x,左乘一个矩阵Lk,使得x变成向量y,该y向量第k个元素起皆为0。 比如x=(2,2,6)', 将其转化为向量y=(2,0,0)'。其中的Lk为
向量ek=(0,0,...,0,1,0,...,0),
2. 你可能没怎么看懂或者懒得看,我们来举个栗子
所以Gauss变换至少要保证求分母不为0,不是所有矩阵都可以用的。
3. 上个例子是针对向量的,现在我们来看矩阵情况。
用Gauss法把矩阵写成上三角和下三角矩阵之后,就可以用之前说的解上下三角矩阵的方法解线性方程组了。
MATLAB代码如下:
function [L,U]=myLU(A)
n=length(A);
for k=1:n-1
A(k+1:n,k)=A(k+1:n,k)/A(k,k);
A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-A(k+1:n,k)*A(k,k+1:n);
end
L=eye(n)+tril(A,-1); %tril是对下三角矩阵的抽取,抽取到主对角线下一条对角线
U=triu(A); %triu是对上三角矩阵的抽取