function [l,u,x,y]=agui_lu(a,b)% 求可逆矩阵的分解,l为下三角矩阵,u为上三角矩阵
n =length(a);
u =zeros(n,n);
l =eye(n,n);u(1,:)=a(1,:);l(2:n,1)=a(2:n,1)/u(1,1);for k=2:n
u(k,k:n)=a(k,k:n)-l(k,1:k-1)*u(1:k-1,k:n);l(k+1:n,k)=(a(k+1:n,k)-l(k+1:n,1:k-1)*u(1:k-1,k))/u(k,k);
end
l
u
% 解Ly=b
y =zeros(n,1);y(1)=b(1);for k=2:n
y(k)=b(k)-l(k,1:k-1)*y(1:k-1);
end
y
% 解Ux=y
x =zeros(n,1);x(n)=y(n)/u(n,n);for k=(n-1):-1:1x(k)=(y(k)-u(k,(k+1):n)*x((k+1):n))/u(k,k);
end
x
end
测试
>> a=[215;4112;-2-45]
a =2154112-2-45>> b=[11;27;12]
b =112712>>agui_lu(a,b)
l =100210-131
u =2150-12004
y =1158
x =1-12