逐行解析下列代码clear;clc;A=10 -7 0 1 -3 2099999 6 2 5 -1 5 -1 2 1 0 2;b=8;5900001;5;1;mn=sizeA; L=eyen; U=zerosn; flag=ok; for i=1n U1i=A1i; end for r=2n Lr1=Ar1U11;
清空命令窗口和工作区变量,避免影响后续计算结果。
clear;
clc;
定义矩阵 $A$ 和向量 $b$。
A=[10 -7 0 1
-3 2.099999 6 2
5 -1 5 -1
2 1 0 2];
b=[8;5.900001;5;1];
获取矩阵 $A$ 的行数和列数。
[m,n]=size(A);
初始化单位下三角矩阵 $L$ 和零上三角矩阵 $U$。
L=eye(n);
U=zeros(n);
初始化标志变量为 'ok'。
flag='ok';
首先将矩阵 $A$ 的第一行赋值给矩阵 $U$ 的第一行。
for i=1:n
U(1,i)=A(1,i);
end
接下来,从第二行开始,计算矩阵 $L$ 和 $U$ 的非零元素。
for r=2:n
L(r,1)=A(r,1)/U(1,1);
end
for i=2:n
for j=i:n
z=L(i,1:i-1)*U(1:i-1,j);
U(i,j)=A(i,j)-z;
end
if abs(U(i,i))<eps
flag='failure'
return;
end
for k=i+1:n
m=L(k,1:i-1)*U(1:i-1,i);
L(k,i)=(A(k,i)-m)/U(i,i);
end
end
最后,输出矩阵 $L$ 和 $U$,并求解线性方程组 $Ax=b$,计算行列式 $\det(A)$。
L
U
y=L\b;x=U\y
detA=det(L)*det(U)
``
原文地址: http://www.cveoy.top/t/topic/e49Y 著作权归作者所有。请勿转载和采集!