MATLAB列主元消去法

functionx=gauss(A,b)intAB=[A,b];n=length(b);RA=rank(A);RB=rank(B);d=RB-RA;ifd>0disp('... function x = gauss(A,b)
int A
B=[A,b];
n=length(b);
RA=rank(A);
RB=rank(B);
d=RB-RA;
if d>0
disp('此方程组无解')
end
if RA==RB&RA~=n
disp('此方程组有无穷解')
end
if RA==RB&RA==n
disp('此方程组有唯一解')
[n,n]=size(A);
x=zeros(n,1);
for k = 1:n-1
[piv,r] = max(abs(B(k:n,k))); %找列主元所在子矩阵的行r
r = r + k - 1; % 列主元所在大矩阵的行 ,
if r>k
temp=B(k,:);
B(k,:)=B(r,:);
B(r,:)=temp;
end
end

if B(k,k)==0, error('对角元出现0'), end

% 把增广矩阵消元成为上三角
for p = k+1:n
B(p,:)=B(p,:)-B(k,:)*B(p,k)/B(k,k);
end
end

% 解上三角方程组
A =B(:,1:n); b = B(:,n+1);
x(n) = b(n)/A(n,n);
for k = n-1:-1:1
x(k)=b(k);
for p=n:-1:k+1
x(k) = x(k)-A(k,p)*x(p);
end
x(k)=x(k)/A(k,k);
end

运行
A=[0.729,0.8100,0.9000;1.000,1.000,1.000;1.331,1.210,1.100];
b=[0.6867;0.8338;1.000];
guass(A,b)

它的答案应该是
x=
0.2246
0.2812
0.3280

不知道是哪儿写错了,求大神帮忙看看
展开
 我来答
lhmhz
高粉答主

2013-06-16 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17020

向TA提问 私信TA
展开全部
问题出在点除上(3处),如
B(p,:)=B(p,:)-B(k,:)*B(p,k)/B(k,k); 应为 B(p,:)=B(p,:)-B(k,:)*B(p,k)./B(k,k)
x(n) = b(n)/A(n,n); 应为 x(n) = b(n)./A(n,n);
x(k)=x(k)/A(k,k); 应为 x(k)=x(k)./A(k,k);
>> A=[0.729,0.8100,0.9000;1.000,1.000,1.000;1.331,1.210,1.100];
>>b=[0.6867;0.8338;1.000];
>>gauss(A,b)
ans =
A^2/2
此方程组有唯一解
x =
0.2245
0.2814
0.3279
百度网友69be25575
2013-06-30
知道答主
回答量:18
采纳率:0%
帮助的人:13.1万
展开全部
function [RA,RB,n,X]=gaus(A,b)
%
%
B=[A b];n=length(b);RA=rank(A);
RB=rank(B);zhica=RB-RA;
if zhica>0,
disp('请注意:因为RB~=RA,所以此方程无解.')
return
end
if RA==RB
if RA==n
disp('请注意:因为RA=RB=n,所以此方程组有唯一解.')
X=zeros(n,1);C=zeros(1,n+1);
for p=1:n-1
for k=p+1:n
m=B(k,p)/B(p,p);
B(k,p:n+1)=B(k,p:n+1)-m*B(p,p:n+1);
end
end
b=B(1:n,n+1);A=B(1:n,1:n);X(n)=b(n)/A(n,n);
for q=n-1:-1:1
X(q)=(b(q)-sum(A(q,q+1:n)*X(q+1:n)))/A(q,q);
end
else
disp('请注意:因为RA=RB<n,所以此方程组有无穷多解.')
end
end

这个程序没问题用这个吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huangfeng574
2017-12-25 · TA获得超过1472个赞
知道小有建树答主
回答量:309
采纳率:66%
帮助的人:45.6万
展开全部
经本人亲自测试,即使经过改正,你这个程序仍然是错的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式