美文网首页
MATLAB解方程组的几种方法

MATLAB解方程组的几种方法

作者: 乄三楼半 | 来源:发表于2020-05-07 18:36 被阅读0次

求方程组AX=b的解

2x+3y-r=2;
8x+2y+3r=4;
45x+3y+9r=23。

根据方程组提取系数矩阵和常数向量
clear
clc

%a为系数矩阵
a=[2,3,-1;8,2,3;45,3,9];

%b为常数向量
b=[2;4;23];
一、求逆运算法

Ax=b ,X=A的逆乘b

% inv(a)  表示求a的逆矩阵
z1=inv(a)*b
二、左除法

AX=b ,将左右同时左除A矩阵可得z2=X=A\b

% a左除b,即a\b=b/a,表示b除以a
z2=a\b
三、克拉默法则
克拉默法则
  • 1、使用 det(a) 获得系数矩阵a的行列式值d。
  • 2、若d不为0,则该方程组有唯一确定的解。
  • 3、分别计算D1、D2和D3的转化的行列式值d1、d2、d3。
  • 4、计算x1=d1/d、x2=d2/d、x3=d3/d,得出唯一解z。
% 用det()  求矩阵的行列式值
% 系数行列式值d不等于0时,方程有唯一解。
d=det(a)

D1=[2,3,-1;4,2,3;23,3,9];
D2=[2,2,-1;8,4,3;45,23,9];
D3=[2,3,2;8,2,4;45,3,23];

d1=det(D1);
d2=det(D2);
d3=det(D3);

x1=d1/d;
x2=d2/d;
x3=d3/d;

z3=[x1;x2;x3]
四、LU分解法

AX=b
当矩阵(方阵)A为行列式不为0的矩阵时,也就是说方阵A是可逆矩阵的,那么A为非奇异矩阵。
对于非奇异矩阵A可以进行LU分解,即把A分解为一个变换形式的下三角矩阵L(进行了行变换)和一个上三角矩阵U,使得 A=LU
同时由 LUX=b 得到线性方程组的解为 X=U(L\b),其中b为线性方程组等号右边的常数构成的列向量。

% [L,U] = lu(a) 将满矩阵或稀疏矩阵 a 分解为一个上三角矩阵 U 和一个经过置换的下三角矩阵 L,使得 a = L*U.
[L,U]=lu(a);
z4=U\(L\b)
运行结果
四种方法算得解相同,即z1=z2=z3=z4

相关文章

网友评论

      本文标题:MATLAB解方程组的几种方法

      本文链接:https://www.haomeiwen.com/subject/cbfzghtx.html