如何在Matlab或python中操作方程式?

时间:2014-09-11 11:52:33

标签: python matlab sympy symbolic-math

我有一个复杂的等式,它是几个变量的函数,我想像这个例子一样操作:

y = (x + a) / z 

x = y*z - a 

是否可以进行这种操作matlab或python?

如果有可能,请指出执行此操作的方法或功能。

我尝试在Sympy Shell中使用以下代码:

x,y,z,a = symbols ('x y z a')
solve ( y = (x-a)/z, x)

我收到以下错误:

Traceback (most recent call last):
  File "<string>", line 1
SyntaxError: non-keyword arg after keyword arg

2 个答案:

答案 0 :(得分:2)

在Matlab中,您需要符号化的数学工具箱(我没有,所以我无法测试)然后您应该能够使用solve函数:

syms y x a z
solve(y == (x+a)/z, x)

我对sympy没有任何体验,但非常确定based on the docs这就是你的做法:

from sympy import solve, Poly, Eq, Function, exp
from sympy.abc import x, y, z, a
solve(y - (x+a)/z, x)

答案 1 :(得分:1)

SymPy是一个Python库,因此您的SymPy代码需要是有效的Python。在Python中,=是赋值运算符,这就是solve ( y = (x-a)/z, x)给出SyntaxError的原因。请参阅http://docs.sympy.org/latest/gotchas.html#equals-signs

要在SymPy中创建相等,请使用Eq,例如solve(Eq(y, (x - a)/z, x),或使用假设SymPy中的表达式等于零的事实,例如solve(y - (x - a)/z, x)