MATLAB解方程組的幾種方法

求方程組AX=b的解

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

根據(jù)方程組提取系數(shù)矩陣和常數(shù)向量
clear
clc

%a為系數(shù)矩陣
a=[2,3,-1;8,2,3;45,3,9];

%b為常數(shù)向量
b=[2;4;23];
一、求逆運(yùn)算法

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) 獲得系數(shù)矩陣a的行列式值d。
  • 2、若d不為0,則該方程組有唯一確定的解。
  • 3、分別計算D1、D2和D3的轉(zhuǎn)化的行列式值d1、d2、d3。
  • 4、計算x1=d1/d、x2=d2/d、x3=d3/d,得出唯一解z。
% 用det()  求矩陣的行列式值
% 系數(shù)行列式值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
當(dāng)矩陣(方陣)A為行列式不為0的矩陣時,也就是說方陣A是可逆矩陣的,那么A為非奇異矩陣。
對于非奇異矩陣A可以進(jìn)行LU分解,即把A分解為一個變換形式的下三角矩陣L(進(jìn)行了行變換)和一個上三角矩陣U,使得 A=LU 。
同時由 LUX=b 得到線性方程組的解為 X=U(L\b),其中b為線性方程組等號右邊的常數(shù)構(gòu)成的列向量。

% [L,U] = lu(a) 將滿矩陣或稀疏矩陣 a 分解為一個上三角矩陣 U 和一個經(jīng)過置換的下三角矩陣 L,使得 a = L*U.
[L,U]=lu(a);
z4=U\(L\b)
運(yùn)行結(jié)果
四種方法算得解相同,即z1=z2=z3=z4
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容