1、clear;clc;%Gauss 消去法解线性方程组A=3 -5 6 4 -2 -3 8; 1 1 -9 15 1 -9 2;2 -1 7 5 -1 6 11; -1 1 3 2 7 -1 -2;4 3 1 -7 2 1 1; 2 9 -8 11 -1 -4 -1;7 2 -1 2 7 -1 9;%系数矩阵b=11 2 29 9 5 8 25;%n 维向量y=inv(A)*b %matlab 的计算结果n=length(b);%方程个数 nx=zeros(n,1);%未知向量%-消去 -for k=1:n-1% if A(k,k)=0;% error(Error);% endfor i=k+1
2、:n% A(i,k)=A(i,k)/A(k,k); Aik=A(i,k)/A(k,k)for j=k:nA(i,j)=A(i,j)-Aik*A(k,j);endAb(i)=b(i)-Aik*b(k)endend%-回代 -x(n)=b(n)/A(n,n)for k=n-1:-1:1S=b(k);for j=k+1:nS=S-A(k,j)*x(j);endx(k)=S/A(k,k)endx %程序的计算结果error=abs(x-ones(n,1)%误差clear;clc;%列主元 Gauss 校区法解线性方程组A=3 -5 6 4 -2 -3 8; 1 1 -9 15 1 -9 2;2 -1
3、7 5 -1 6 11; -1 1 3 2 7 -1 -2;4 3 1 -7 2 1 1; 2 9 -8 11 -1 -4 -1;7 2 -1 2 7 -1 9;%系数矩阵b=11 2 29 9 5 8 25;%n 维向量y=inv(A)*b %matlab 的计算结果n=length(b);%方程个数 nx=zeros(n,1);%未知向量%-消去 -for k=1:n-1Auk=A(k:n,k);m,u=max(abs(Auk);u=u+k-1 %u 为最大元所在的列%-交换最大的行和当前行的值-for j=k:ntemp=A(u,j);A(u,j)=A(k,j);A(k,j)=temp;
4、endtemp=b(k);b(k)=b(u);b(u)=temp;% if A(k,k)=0;% error(Error);% endfor i=k+1:n% A(i,k)=A(i,k)/A(k,k); Aik=A(i,k)/A(k,k)for j=k:nA(i,j)=A(i,j)-Aik*A(k,j);endAb(i)=b(i)-Aik*b(k)endend%-回代 -x(n)=b(n)/A(n,n)for k=n-1:-1:1S=b(k);for j=k+1:nS=S-A(k,j)*x(j);endx(k)=S/A(k,k)endx %程序的计算结果error=abs(x-ones(n,1)%误差%误差小于直接进行高斯消去的计算误差