- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)