清空命令窗口和工作区变量,避免影响后续计算结果。

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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录