数值分析实验报告Matlab实现).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 14 学 生 实 验 报 告 实验课程名称 数值分析 开课实验室 数学与统计学院实验室 学 院 2010 年级 数学与应用数学专业班 01班 学 生 姓 名 学 号 开 课 时 间 2012 至 2013 学年第 一 学期 总 成 绩 教师签名 课程 名称 数值分析 实验项目 名 称 Gauss消元法 实验项目类型 验证 演示 综合 设计 其他 指导 教师 何光辉 成 绩 √ 实验目的: (1)高斯列主元消去法求解线性方程组的过程 (2)熟悉用迭代法求解线性方程组的过程 (3)设计出相应的算法,编制相应的函数子程序 实验内容 分别用高斯列主元消元法和直接消元法求解线性方程组: 实验原理 对于线性方程组 (1) 常记为矩阵形式 (2) 根据高等代数的知识,若,上式的解存在且唯一。 Gauss直接消元法 考虑上述线性方程组的增广矩阵,对增广矩阵进行行变换,将(2)式化为等价的三角形方阵,然后回代解之,这就是Gauss消元法。具体如下: 消元 = 1 \* GB3 ①令; = 2 \* GB3 ②对k=1到n-1,若,进行 回代,若 Gauss列主元消元法 设列主元消元法已完成的第k-1()次消元,的到方程组 在进行第k次消元前,先进行2个步骤: 在至这一列内选出最大值,即,若,此时 方程组无确定解,应给出退出信息。 若,则交换第行和行,然后用Gauss消元法进行消元。 MATLAB软件实现 写出Gauss消元法和列主元消元法实现的MATLAB函数 根据以上的算法,写出如下程序: %%%%%%%Gauss消元法%%%%%%%%%%%% function y=Gauss1(A,b) [m,n]=size(A); %检查系数正确性 if m~=n error(矩阵A的行数和列数必须相同); return; end if m~=size(b) error( b的大小必须和A的行数或A的列数相同); return; end %再检查方程是否存在唯一解 if rank(A)~=rank([A,b]) error( A矩阵的秩和增广矩阵的秩不相同,方程不存在唯一解); return; end %这里采用增广矩阵行变换的方式求解 c=n+1; A(:,c)=b; %%消元过程 for k=1:n-1 A(k+1:n, k:c)=A(k+1:n, k:c)-(A(k+1:n,k)/ A(k,k))*A(k, k:c); end %%回代结果 x=zeros(length(b),1); x(n)=A(n,c)/A(n,n); for k=n-1:-1:1 x(k)=(A(k,c)-A(k,k+1:n)*x(k+1:n))/A(k,k); end %显示计算结果 %disp(x=); %disp(x); y=x; % %%%%%%%%%%%高斯列主元消元法求解线性方程组Ax=b%%%%%%%%%%%%%% %A为输入矩阵系数,b为方程组右端系数 %方程组的解保存在x变量中 function y=Gauss_line(A,b) format long;% 设置为长格式显示,显示15位小数 [m,n]=size(A); %先检查系数正确性 if m~=n error(矩阵A的行数和列数必须相同); return; end if m~=size(b) error( b的大小必须和A的行数或A的列数相同); return; end %再检查方程是否存在唯一解 if rank(A)~=rank([A,b]) error( A矩阵的秩和增广矩阵的秩不相同,方程不存在唯一解); return; end c=n+1; A(:,c)=b; %(增广) for 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([k m],:)=A([m k],:); %换行 end A(k+1:n, k:c)=A(k+1:n,

文档评论(0)

155****8706 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档