清空命令窗口和工作区,以免影响后续操作。

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的行数和列数,并初始化未知数向量x和置换向量P。

[n,n] = size(A); x = zeros(n,1); P = [1:n];

构造增广矩阵Aug。

Aug = [A,b];

进行高斯消元法计算。

for k = 1:n-1 [piv,r] = max(abs(Aug(k:n,k))); %找列主元所在子矩阵的行r r = r + k - 1; % 列主元所在大矩阵的行 if r>k Aug([k,r],:)=Aug([r,k],:); P([k,r])=P([r,k]); end if Aug(k,k)==0 error('对角元出现0'); end % 把增广矩阵消元成为上三角 for p = k+1:n Aug(p,:)=Aug(p,:)-Aug(k,:)*Aug(p,k)/Aug(k,k); end end

解上三角方程组。

A = Aug(:,1:n); b = Aug(:,n+1); x(n) = b(n)/A(n,n); for k = n-1:-1:1 x(k) = (b(k)-A(k,n:-1:k+1)*x(n:-1:k+1))/A(k,k); end

输出置换向量P和解向量x,以及系数矩阵A的行列式detA。

P x detA=det(A


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

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