计算方法第四章第一次作业程序.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章第一次作业 10. 程序 11, Ay=b function y=Chat4magauss2(A,b,flag) %列主元Gauss消去法解线性方程组Ay=b %格式:y=magauss(A,a,flag), A 为系数矩阵, b 为右端项, 若 flag=0, % 则不显示增广矩阵,否则显示增广矩阵, 默认为0, y为解向量 if nargin3,flag=0;end n=length(b); for k=1:(n-1) %选主元 [ap,p]=max(abs(A(k:n,k))); p=p+k-1; if pk t=A(k,:); A(k,:)=A(p,:); A(p,:)=t; t=b(k); b(k)=b(p); b(p)=t; end %消元 m=A(k+1:n,k)/A(k,k); A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-m*A(k,k+1:n); b(k+1:n)=b(k+1:n)-m*b(k); A(k+1:n,k)=zeros(n-k,1); if flag~=0, Ab=[A,b], end end %回代 y=zeros(n,1); y(n)=b(n)/A(n,n); for k=n-1:-1:1 y(k)=(b(k)-A(k,k+1:n)*y(k+1:n))/A(k,k); end 结果 11. Ax=a function x=Chat4magauss2(A,a,flag) %列主元Gauss消去法解线性方程组Ax=a %格式:x=magauss(A,a,flag), A 为系数矩阵, a 为右端项, 若 flag=0, % 则不显示增广矩阵,否则显示增广矩阵, 默认为0, x为解向量 if nargin3,flag=0;end n=length(a); for k=1:(n-1) %选主元 [ap,p]=max(abs(A(k:n,k))); p=p+k-1; if pk t=A(k,:); A(k,:)=A(p,:); A(p,:)=t; t=a(k); a(k)=a(p); a(p)=t; end %消元 m=A(k+1:n,k)/A(k,k); A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-m*A(k,k+1:n); a(k+1:n)=a(k+1:n)-m*a(k); A(k+1:n,k)=zeros(n-k,1); if flag~=0, Aa=[A,a], end end %回代 x=zeros(n,1); x(n)=a(n)/A(n,n); for k=n-1:-1:1 x(k)=(a(k)-A(k,k+1:n)*x(k+1:n))/A(k,k); End 结果 A=[4,0,-1;2,1,-2;0,3,2;0,3,2] a=[0,1,4]; Chat4magauss2(A,a) A = 4 0 -1 2 1 -2 0 3 2 0 3 2 flag = 0 ans = 0.0385 1.2308 0.1538 11. Az=c function z=Chat4magauss2(A,c,flag) %列主元Gauss消去法解线性方程组Az=c %格式:z=magauss(A,c,flag), A 为系数矩阵, c 为右端项, 若 flag=0, % 则不显示增广矩阵,否则显示增广矩阵, 默认为0, z为解向量 if nargin3,flag=0;end n=length(c); for k=1:(n-1) %选主元 [ap,p]=max(abs(A(k:n,k))); p=p+k-1; if pk t=A(k,:); A(k,:)=A(p,:); A(p,:)=t; t=c(k); c(k)=c(p); c(p)=t; end %消元 m=A(k+1:n,k)/A(k,k); A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-m*A(k,k+1:n); c(k+1:n)=c(k+1:n)-m*c(k); A(k+1:n,k)=zeros(n-k,1); if flag~=0, A=[A,c], end end %回代 z=zeros(n,1); z(n)=a(n)/A(n,n); for k=n-1:-1:1 z(k)=(c(k)-A(k

文档评论(0)

4477769 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档