西京学院数学软件实验任务书
课程名称
数学软件实验
班级
***
学号
***
姓名
***
实验课题
线性方程组高斯消去法,高斯列主元消去法,高斯全主元消去法
实验目的
熟悉线性代数方程组高斯消去法,高斯列主元消去法,高斯全主元消去法
实验要求
运用Matlab/C/C++/Java/Maple/Mathematica等其中一种语言完成
实验内容
线性方程组高斯消去法
线性方程组高斯列主元消去法
线性方程组高斯全主元消去法
成绩
教师
《数值分析》实验报告
实验一
一、实验目的与要求
1.掌握高斯列主元消去法解线性方程组的基本思路;
2.了解一些计算机的算法,会以某种汇编语言实现算法结果(本实验主要用matlab编程)
二、实验内容
1.编写用高斯列主元消元法解线性方程组的MATLAB程序,并求解下面的线性方程组,然后用逆矩阵解方程组的方法验证.
(1) (2)
2.列主元消元法及其matlab程序
function [Ra,Rb,n,X]=GaussXQLineMain(A,b)
%高斯列主元消元法,其中B为增广矩阵
B=[A b];
%读入b的长度
n=length(b);
%读出矩阵a,b秩
Ra=rank(A);
Rb=rank(B);
if (Rb-Ra)>0
disp('因为Ra不等于Rb,所以此方程组无解.')
return
end
if Ra==Rb
if Ra==n
disp('因为Ra=Rb=n,所以此方程组有唯一解.')
X=zeros(n,1);
C=zeros(1,n+1);
for p= 1:n-1
%找出列中最大的元素并指出他的位置
[Y,j]=max(abs(B(p:n,p)));
C=B(p,:);
B(p,:)= B(j+p-1,:);
B(j+p-1,:)=C;
for k=p+1:n
m= B(k,p)/ B(p,p);
B(k,p:n+1)= B(k,p:n+1)-m* B(p,p:n+1);
end
end
b=B(1:n,n+1);A=B(1:n,1:n);
X(n)=b(n)/A(n,n);
for q=n-1:-1:1
X(q)=(b(q)-sum(A(q,q+1:n)*X(q+1:n)))/A(q,q);
end
else
disp('因为Ra=Rb<n,所以此方程组有无穷多解.')
end
end
%调用格式
% clear;
% A=[1 2 3;4 5 6;7 8 9 ];
% b=[21;22;23];
% [Ra,Rb,n,X] =GaussXQLineMain(A,b)
三、实验过程
方程组(1)过程
>> clear;
A=[1 2 -1;-3 1 2;3 -2 1 ];
b=[1;2
消元法实验报告7 来自淘豆网m.daumloan.com转载请标明出处.