用高斯消元法解线性方程组 的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
展开
2个回答
展开全部
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)求得的线性方程组解是一样的。
东莞大凡
2024-11-14 广告
2024-11-14 广告
标定板认准大凡光学科技,专业生产研发厂家,专业从事光学影像测量仪,光学投影测量仪.光学三维测量仪,光学二维测量仪,光学二维测量仪,光学三维测量仪,光学二维测量仪.的研发生产销售。东莞市大凡光学科技有限公司创立于 2018 年,公司总部坐落于...
点击进入详情页
本回答由东莞大凡提供
展开全部
%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
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询