用高斯消元法解线性方程组 的MATLAB程序

%解释一下下面的程序的每一步,谢谢!也可以重新编程,需要解释function[RA,RB,n,X]=gaus(A,b)B=[Ab];n=length(b);RA=rank... %解释一下下面的程序的每一步,谢谢!也可以重新编程,需要解释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('请注意:因为RA~=RB,所以此方程组无解.')returnendif RA==RB if RA==ndisp('请注意:因为RA=RB=n,所以此方程组有唯一解.') X=zeros(n,1); C=zeros(1,n+1); for p= 1:n-1for 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);endend 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); endelse disp('请注意:因为RA=RB<n,所以此方程组有无穷多解.')endend 展开
刺友互
高粉答主

2019-07-06 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:72.6万
展开全部

1、下图是需要求解的线性方程组

2、打开MATLAB,利用左除法(\)求解上述线性方程组。输入如下代码:close all; clear all; clc% MATLAB左除法(\)求解线性方程组,A = [1 2 3;-1 3 7;9 0 3];b = [1 4 7]';x = A\b。

3、保存和运行上述代码,利用左除法(\)得到线性方程组的解。

4、用求逆法(inv)求解线性方程组,输入如下代码:close all; clear all; clc,% MATLAB求逆法(inv)求解线性方程组,% A是线性方程组等号左边系数构成的矩阵。

5、保存和运行上述代码,利用求逆法(inv)得到线性方程组的解如下。

6、最后,可以看到左除法(\)和求逆法(inv)求得的线性方程组解是一样的。

wacs5
推荐于2017-09-01 · TA获得超过1.6万个赞
知道大有可为答主
回答量:3724
采纳率:82%
帮助的人:2811万
展开全部
%function [RA,RB,n,X]=gaus(A,b)
A=[1 2 3;
1 4 9;
1 8 27];
b=[
1
2
3
];

B=[A b];
n=length(b);
RA=rank(A); %A的秩
RB=rank(B); %B的秩
zhica=RB-RA;
if zhica>0
disp('请注意:因为RA~=RB,所以此方程组无解.');
return;
end
if RA==RB %方程有唯一解
if RA==n
disp('请注意:因为RA=RB=n,所以此方程组有唯一解.')
X=zeros(n,1);
%生成上三角矩阵
for p= 1:n-1
for k=p+1:n
m= B(k,p)/ B(p,p); %要将B(k,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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式