列主元消去法例题详解_MATLAB列主元消去法

functionx=gauss(A,b)intAB=[A,b];n=length(b);RA=rank(A);RB=rank(B);d=RB-RA;ifd>0disp('此方程组无解')endifRA==RB&RA~=ndisp('此方程组有无穷解')endifRA==RB&RA==ndisp('此方程组...

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

不知道是哪儿写错了,求大神帮忙看看

展开

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值