资源描述:
《线性方程组的guass消元法求解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、西京学院数学软件实验任务书课程名称数学软件实验班级数学0901学号0912020112姓名***实验课题线性方程组高斯消去法,高斯列主元消去法,高斯全主元消去法实验目的熟悉线性代数方程组高斯消去法,高斯列主元消去法,高斯全主元消去法实验要求运用Matlab/C/C++/Java/Maple/Mathematica等其中一种语言完成实验内容线性方程组高斯消去法线性方程组高斯列主元消去法线性方程组高斯全主元消去法成绩教师实验报告实验名称:Guass消元法编程求解线性方程实验目的:进一步熟悉理解Guass消元法解法思路学习matlab编程实验要求:已
2、知:线性方程矩阵输出:线性方程组的解程序流程:输入矩阵调用函数求解矩阵输出方程组的解实验原理:消元过程:设,令乘数,做(消去第i个方程组的)操作×第1个方程+第i个方程(i=2,3,.....n)则第i个方程变为这样消去第2,3,…,n个方程的变元后。原线性方程组变为这样就完成了第1步消元。对线性方程组中有第2,3,.。。。N个方程组成的n—1元线性方程组做同样的处理,消去其除第一个方程组之外的所有变元,可得到依次类推,当做到n-1步消元后,就完成了Guass消元过程,得到上三角方程组实验内容:利用Guass消元操作的原理,求解线性方程组回代过
3、程:在最后的一方程中解出,得:再将的值代入倒数第二个方程,解出,依次往上反推,即可求出方程组的解:其通项为流程图如下:开始输入矩阵否判断是否唯一解是运用Guass消元法求解输出结果程序如下:function[AXY]=togglebutton3_Callback(hObject,eventdata,handles)%hObjecthandletotogglebutton3(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhand
4、lesanduserdata(seeGUIDATA)[filename,pathname]=uigetfile('.txt','打开系数矩阵数据文件');filepath=strcat(pathname,filename);A=load(filepath)if~isempty(filepath)A=load(filepath);X=A(:,1)';Y=A(:,2)';handles.A=A;handles.X=X;handles.Y=Y;guidata(hObject,handles);elsemsgbox('打开文件失败','对话框','wa
5、rn');endA1=Aset(handles.text1,'string',A1)[n,m]=size(A);b=A(1:n,m);dataA1=A(:,1:n);y=inv(dataA1)*b;%matlab的计算结果n=length(b);%方程个数nx=zeros(n,1);%未知向量]%判断是否非奇异fori=1:nifdet(dataA1(1:i,1:i))==0msgbox('矩阵输入有误,请修改','对话框','warn');exit;endend%-------------消去-----------fork=1:n-1ifA(
6、k,k)==0;T=A(k,:);A(k,:)=A(k+1,:);A(k+1,:)=T;breakendfori=k+1:n%A(i,k)=A(i,k)/A(k,k);Aik=A(i,k)/A(k,k);forj=k:nA(i,j)=A(i,j)-Aik*A(k,j);endA;b(i)=b(i)-Aik*b(k);endend%-------------回代-----------x(n)=b(n)/A(n,n);fork=n-1:-1:1S=b(k);forj=k+1:nS=S-A(k,j)*x(j);endx(k)=S/A(k,k);end
7、x%程序的计算结果调试输入数据:3-5650-2-381111-9151-9222-175-161129-11327-1-29431-7211529-811-1-4-1872-127-1925输出结果:x=-1.78532.25290.67460.07461.20130.03372.7934