计算方法实验报告材料-线性方程组地数值解法.doc

计算方法实验报告材料-线性方程组地数值解法.doc

ID:48871543

大小:255.00 KB

页数:11页

时间:2020-02-03

计算方法实验报告材料-线性方程组地数值解法.doc_第1页
计算方法实验报告材料-线性方程组地数值解法.doc_第2页
计算方法实验报告材料-线性方程组地数值解法.doc_第3页
计算方法实验报告材料-线性方程组地数值解法.doc_第4页
计算方法实验报告材料-线性方程组地数值解法.doc_第5页
资源描述:

《计算方法实验报告材料-线性方程组地数值解法.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实用文档重庆大学学生实验报告实验课程名称计算方法开课实验室DS1421学院年级专业学生姓名学号开课时间至学年第学期总成绩教师签名实用文档1.实验目的(1)高斯列主元消去法求解线性方程组的过程(2)熟悉用迭代法求解线性方程组的过程(3)设计出相应的算法,编制相应的函数子程序2.实验内容分别用高斯列主元消去法,Jacobi迭代法,Gauss--Saidel迭代法,超松弛迭代法求解线性方程组3.实验过程解:(1)高斯列主元消去法编制高斯列主元消去法的M文件程序如下:%高斯列主元消元法求解线性方程组Ax=b%A为输入矩阵系数,b为方程组右端系数%方程组的解保存在x变量中formatlon

2、g;%设置为长格式显示,显示15位小数A=[2,10,0,-3;-3,-4,-12,13;1,2,3,-4;4,14,9,-13]b=[10,5,-2,7]'[m,n]=size(A);%先检查系数正确性ifm~=nerror('矩阵A的行数和列数必须相同');return;endifm~=size(b)error('b的大小必须和A的行数或A的列数相同');return;end%再检查方程是否存在唯一解ifrank(A)~=rank([A,b])error('A矩阵的秩和增广矩阵的秩不相同,方程不存在唯一解');return;endc=n+1;A(:,c)=b;%(增广)for

3、k=1:n-1实用文档[r,m]=max(abs(A(k:n,k)));%选主元m=m+k-1;%修正操作行的值if(A(m,k)~=0)if(m~=k)A([km],:)=A([mk],:);%换行endA(k+1:n,k:c)=A(k+1:n,k:c)-(A(k+1:n,k)/A(k,k))*A(k,k:c);%消去endendx=zeros(length(b),1);%回代求解x(n)=A(n,c)/A(n,n);fork=n-1:-1:1x(k)=(A(k,c)-A(k,k+1:n)*x(k+1:n))/A(k,k);enddisp('X=');disp(x);forma

4、tshort;%设置为默认格式显示,显示5位运行,结果如下所示:(2)Jacobi迭代法编制迭代计算的M文件程序如下:%Jacobi迭代法求解实用文档%A为方程组的增广矩阵clc;A=[2,10,0,-3,10;-3,-4,-12,13,5;1,2,3,-4,-2;4,14,9,-13,7]MAXTIME=50;%最多进行50次迭代eps=1e-5;%迭代误差[n,m]=size(A);x=zeros(n,1);%迭代初值y=zeros(n,1);k=0;%进入迭代计算disp('迭代过程X的值情况如下:')disp('X=');while1disp(x');fori=1:1:n

5、s=0.0;forj=1:1:nifj~=is=s+A(i,j)*x(j);endy(i)=(A(i,n+1)-s)/A(i,i);endendfori=1:1:nmaxeps=max(0,abs(x(i)-y(i)));%检查是否满足迭代精度要求endifmaxeps<=eps%小于迭代精度退出迭代fori=1:1:nx(i)=y(i);%将结果赋给xendreturn;endfori=1:1:n%若不满足迭代精度要求继续进行迭代x(i)=y(i);y(i)=0.0;endk=k+1;ifk>MAXTIME%超过最大迭代次数退出error('超过最大迭代次数,退出');retu

6、rn;endend运行该程序结果如下:实用文档(3)Gauss--Saidel迭代法实用文档编制求解程序Gauss_Seidel.m如下:%Gauss_Seidel.m%A为方程组的增广矩阵clc;formatlong;A=[2,10,0,-3,10;-3,-4,-12,13,5;1,2,3,-4,-2;4,14,9,-13,7][n,m]=size(A);%最多进行50次迭代Maxtime=50;%控制误差Eps=10E-5;%初始迭代值x=zeros(1,n);disp('x=');%迭代次数小于最大迭代次数,进入迭代fork=1:Maxtimedisp(x);fori=1:

7、ns=0.0;forj=1:nifi~=js=s+A(i,j)*x(j);%计算和endendx(i)=(A(i,n+1)-s)/A(i,i);%求出此时迭代的值end%因为方程的精确解为整数,所以这里将迭代结果向整数靠近的误差作为判断迭代是否停止的条件ifsum((x-floor(x)).^2)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。