1. clear; 清空工作区变量
  2. clc; 清空命令窗口
  3. A=[10 -7 0 1 -3 2.099999 6 2 5 -1 5 -1 2 1 0 2]; 定义矩阵A,为4行4列的矩阵,值为给定的数值
  4. b=[8;5.900001;5;1]; 定义向量b,为4行1列的列向量,值为给定的数值
  5. [m,n]=size(A); 获取矩阵A的行数和列数,分别赋值给m和n
  6. L=eye(n); 定义单位下三角矩阵L,为n行n列的矩阵,对角线上的元素为1,其余为0
  7. U=zeros(n); 定义上三角矩阵U,为n行n列的矩阵,所有元素为0
  8. flag='ok'; 定义字符串flag,赋值为'ok'
  9. for i=1:n U(1,i)=A(1,i); end 将矩阵A的第1行复制到矩阵U的第1行
  10. for r=2:n L(r,1)=A(r,1)/U(1,1); end 计算矩阵L的第2到n行第1列的元素,值为矩阵A对应位置的元素除以矩阵U第1行对应位置的元素
  11. 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的第2到n行和第2到n列的元素,通过高斯消元法计算 如果U的对角线元素小于eps,则将flag赋值为'failure',并退出循环
  12. L 输出矩阵L
  13. U 输出矩阵U
  14. y=L\b; 通过矩阵L和向量b计算y,即解方程Ly=b
  15. x=U\y 通过矩阵U和向量y计算x,即解方程Ux=y
  16. detA=det(L)*det(U) 计算矩阵A的行列式,即det(A),等于矩阵L的行列式和矩阵U的行列式的乘积
MATLAB代码逐行解析:高斯消元法求解线性方程组

原文地址: https://www.cveoy.top/t/topic/n1RO 著作权归作者所有。请勿转载和采集!

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