高斯法和列主元高斯消去法解线性方程组(MATLAB版)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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);%方程个数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 -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);%方程个数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))%误差
%误差小于直接进行高斯消去的计算误差