高斯法和列主元高斯消去法解线性方程组(MATLAB版)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
clear;clc;
%Gauss消去法解线性方程组
A=[3-564-2-38;
11-9151-92;
2-175-1611;
-11327-1-2;
431-7211;
29-811-1-4-1;
72-127-19];%系数矩阵
b=[1122995825]';%n维向量
y=inv(A)*b%matlab的计算结果
n=length(b);%方程个数n
x=zeros(n,1);%未知向量
%-------------消去-----------
for k=1:n-1
%if A(k,k)==0;
%error('Error');
%end
for i=k+1:n
%A(i,k)=A(i,k)/A(k,k);
Aik=A(i,k)/A(k,k)
for j=k:n
A(i,j)=A(i,j)-Aik*A(k,j);
end
A
b(i)=b(i)-Aik*b(k)
end
end
%-------------回代-----------
x(n)=b(n)/A(n,n)
for k=n-1:-1:1
S=b(k);
for j=k+1:n
S=S-A(k,j)*x(j);
end
x(k)=S/A(k,k)
end
x%程序的计算结果
error=abs(x-ones(n,1))%误差
clear;clc;
%列主元Gauss校区法解线性方程组
A=[3-564-2-38;
11-9151-92;
2-175-1611;
-11327-1-2;
431-7211;
29-811-1-4-1;
72-127-19];%系数矩阵
b=[1122995825]';%n维向量
y=inv(A)*b%matlab的计算结果
n=length(b);%方程个数n
x=zeros(n,1);%未知向量
%-------------消去-----------
for k=1:n-1
Auk=A(k:n,k);
[m,u]=max(abs(Auk));
u=u+k-1%u为最大元所在的列
%------交换最大的行和当前行的值-------
for j=k:n
temp=A(u,j);A(u,j)=A(k,j);A(k,j)=temp;
end
temp=b(k);b(k)=b(u);b(u)=temp;
%if A(k,k)==0;
%error('Error');
%end
for i=k+1:n
%A(i,k)=A(i,k)/A(k,k);
Aik=A(i,k)/A(k,k)
for j=k:n
A(i,j)=A(i,j)-Aik*A(k,j);
end
A
b(i)=b(i)-Aik*b(k)
end
end
%-------------回代-----------
x(n)=b(n)/A(n,n)
for k=n-1:-1:1
S=b(k);
for j=k+1:n
S=S-A(k,j)*x(j);
end
x(k)=S/A(k,k)
end
x%程序的计算结果
error=abs(x-ones(n,1))%误差
%误差小于直接进行高斯消去的计算误差