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)求得的线性方程组解是一样的。
%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
end