前言: 有朋友问我如何使用 matlab 求解方程组,他查不到,且不太会写代码,我查了一下,总结了个模板。
假设要解一个三元方程组如下:
{ x 2 + sin y − z = 100 x − y + z = 5 x z + cos y = 6 z \left\{\begin{aligned} x^2 + \sin{y} - z & = & 100 \\ x - y + z & = & 5 \\ xz + \cos{y} & = & 6z \\ \end{aligned}\right. ⎩⎪⎨⎪⎧x2+siny−zx−y+zxz+cosy===10056z
我们的求解过程如下。
% 首先声明符号变量
syms x y z;
% 列出等式,字符串形式,因此要加单引号
eq1 = 'x^2 + sin(y) - z = 100';
eq2 = 'x - y + z = 5';
eq3 = 'x * z + cos(y) = 6 * z';
% 使用 solve() 函数求解
[x, y, z] = solve(eq1, eq2, eq3, 'x', 'y', 'z')
matlab 针对复杂的方程使用数值计算
的方式求解,此时x, y, z
应该已经在你的工作区里。你也可以在控制图输入x
等变量名称查看数值解。
警告: Cannot solve symbolically. Returning a numeric approximation instead.
> In solve at 306
In equations at 14
x =
10.044861348830706718130912031098
y =
4.9795861545146561508942123172393
z =
-0.06527519431605056723669971385847