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