MATLAB 中的線性方程組

Ammar Ali 2023年1月30日
  1. 使用 MATLAB 中的 solve() 函式求解線性方程組
  2. 在 MATLAB 中使用 linsolve() 函式求解線性方程組
MATLAB 中的線性方程組

本教程將討論使用 Matlab 中的 solve()linsolve() 函式求解線性方程組。

使用 MATLAB 中的 solve() 函式求解線性方程組

我們可以使用 Matlab 內建函式 solve() 來求解 Matlab 中的線性方程組。首先,我們可以使用 syms 變數來定義變數。之後,我們可以在 Matlab 中編寫方程。之後,我們需要使用函式 solve() 來求解方程。例如,讓我們在 Matlab 中定義一些方程並使用 solve() 函式找到它們的解。請參閱下面的程式碼。

syms x y z
eq1 = 2*x + y + 2*z == 1;
eq2 = 2*x + 5*y - z == 2;
eq3 = -3*x + 2*y + 6*z == 10;
matx = solve([eq1, eq2, eq3], [x, y, z]);
xValue = matx.x
yVlaue = matx.y
zValue = matx.z

輸出:

xValue =
 
-82/93
 
 
yVlaue =
 
29/31
 
 
zValue =
 
85/93

如你所見,方程中有三個變數,並且有三個答案。你還可以使用 vapsolve() 函式代替 solve() 函式來獲得數字答案。要使用 vpasolve() 函式,你需要將上面程式碼中的函式名稱 solve 更改為 vpasolve。如果方程是矩陣形式,你可以使用 linsolve() 函式。

在 MATLAB 中使用 linsolve() 函式求解線性方程組

如果你有矩陣而不是方程,則使用函式 linsolve() 代替 solve() 函式。我們還可以使用 equationsToMatrix() 函式將方程轉換為矩陣形式。例如,讓我們在 Matlab 中定義一些方程並使用 linsolve() 函式找到它們的解。請參閱下面的程式碼。

syms x y z
eq1 = 2*x + y + 2*z == 1;
eq2 = 2*x + 5*y - z == 2;
eq3 = -3*x + 2*y + 6*z == 10;
[matA,matB] = equationsToMatrix([eq1, eq2, eq3], [x, y, z])
matX = linsolve(matA,matB)

輸出:

 
matA =
 
[  2, 1,  2]
[  2, 5, -1]
[ -3, 2,  6]
 
 
matB =
 
  1
  2
 10
 
 
matX =
 
 -82/93
  29/31
  85/93

solve()linsolve() 函式隨符號數學工具箱一起提供,因此請確保你已安裝工具箱以使用這些函式。

作者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相關文章 - MATLAB Equation