實驗二
矩陣的
LU
分解
一、題目:
求矩陣
[2 1 1 2;1 2 3 2;2 4 1 1;3 1 2 3]
的
Doolittle
分解
二、方法:
Doolittle
分解,矩陣的緊湊格式的
LU
分解法
三、程式:
(1)
緊湊格式的
LU
分解法
function a=nalupad(a)
n=length(a);
a(2:n-1)=a(2:n-1)/a(1,1);
for k=2:n
a(k,k:n)=a(k,k:n)-a(k,1:k-1)*a(1:k-1,k:n);
a(k+1:n,k)=(a(k+1:n,k)-a(k+1:n,1:k-1)*a(1:k-1,k))/a(k,k);
end
(2) LU
分解
function f=LU_decom(A)
[m,n]=size(A)
L=eye(n);
U=zeros(n);
flag='ok';
for i=1:n
U(1,i)=A(1,i);
end
for r=2:n
L(r,1)=A(r,1)/U(1,1);
end
for i=2:n
for j=i:n
z=0;
for r=1:i-1
z=z+L(i,r)*U(r,j);
end
U(i,j)=A(i,j)-z;
end
if abs(U(i,i))
flag='failure'
return;
end
for k=i+1:n
m=0;
for q=1:i-1
m=m+L(k,q)*U(q,i);
end
L(k,i)=(A(k,i)-m)/U(i,i);
end
end