使用solve()函数在Matlab中求解符号方程组

时间:2016-05-12 11:09:11

标签: matlab equation-solving

我知道在这个论坛上有一些非常相似的问题,我已经完成了这些问题,不幸的是我还不相信我取得的成果。

我正在尝试解决一个由三个联立方程组成的系统,但问题在于所有方程都是符号的,我实际上通过“求解方程式”的意思是用其余的方式写出“符号未知数”。符号或所谓的已知值。

我在下面发布了我的代码,我几乎尝试在Mathworks网站上应用其中一个示例。会发生什么,代码运行并且Matlab在很长一段时间内仍然处于繁忙状态,然后最终说它无法解决方程式。

在我见过的其他类似例子中,人们做了类似且特别的事情,没有人抱怨漫长的等待时间。这应该花很长时间吗?我做错了什么或者可以改变以获得我追求的目标? 这是我的代码:

    L2 = sym('L2');
    L1 = sym('L1');
    L3 = sym('L3');
    theta1 = sym('theta1');
    theta2 = sym('theta2');
    theta3 = sym('theta3');
    x = sym('x');
    y = sym('y');
    z = sym('z');
    eqn1 = cos(theta1)*(L1 + L3*cos(theta2 + theta3) + L2*cos(theta2)) == x
    eqn2 = sin(theta1)*(L1 + L3*cos(theta2 + theta3) + L2*cos(theta2)) == y
    eqn3 = L3*sin(theta2 + theta3) + L2*sin(theta2) == z
    sol = solve([eqn1,eqn2,eqn3],[theta1,theta2,theta3]);

0 个答案:

没有答案