MATLAB 中的线性方程组
Ammar Ali
2023年1月30日
2021年11月29日
本教程将讨论使用 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()
函数随符号数学工具箱一起提供,因此请确保你已安装工具箱以使用这些函数。
Author: Ammar Ali