逐行解析下列代码并在代码后写出clear;clc;A=10 -7 0 1;-3 2099999 6 2;5 -1 5 -1;2 1 0 2;b=8;5900001;5;1;nn = sizeA; x = zerosn1; P = 1n;Aug = Ab; 增广矩阵 for k = 1n-1 pivr = maxabsAugknk; 找列主元所在子矩阵的行r r = r + k - 1
清空命令窗口和工作区,以免影响后续操作。
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 著作权归作者所有。请勿转载和采集!