MATLAB 中的線性方程組
    
    Ammar Ali
    2023年1月30日
    
    MATLAB
    MATLAB Equation
    
 
本教程將討論使用 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() 函式隨符號數學工具箱一起提供,因此請確保你已安裝工具箱以使用這些函式。
        Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
    
作者: Ammar Ali
    
