错误共解论弗洛依登斯坦方程

2024-06-14 21:33:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图得到弗洛伊德登斯坦方程(psi)的一个角度:

k1*cos(psi)-k2*cos(fi)+k3-cos(psi-fi)=0

我有k1,k2,k3和fi值。我尝试了以下方法:

from sympy import Symbol, solve, cos

x = Symbol('x')
realPsi = solve(k1 * cos(x) - k2 * cos(fi) + k3 - cos(x - fi), x)

我收到这个错误:

^{pr2}$

我以前不使用这种工具,也许我做错了什么事…
有什么想法吗?在

谢谢

赫克托。在

编辑:
谢谢你的快速反应。在

我尝试了以下方法(简单的cos方程):

eq = 3.2 * cos(x + 0.2).rewrite(exp) + 1.7   

eq   

Out[1]: 1.6*exp(I*(-x - 0.2)) + 1.6*exp(I*(x + 0.2)) + 1.7   

solve(1.6*exp(I*(-x - 0.2)) + 1.6*exp(I*(x + 0.2)) + 1.7, x)

NotImplementedError: Unable to solve the equation(tsolve: at least one Function expected at this point  

我使用正确吗?重写??在


Tags: 方法fromk2k1cossymbolatfi
2条回答

NotImplementedError的意思是,这类方程的解算器“没有实现”。在

您可以帮助SymPy找到解决方案:

>>> k * cos(x) - m * cos(y) + n - cos(x - y)
k*cos(x) - m*cos(y) + n - cos(x - y)
>>> _.rewrite(exp)
k*(exp(I*x)/2 + exp(-I*x)/2) - .....
>>> solve(_, x)
..... long solution

可以使用rewrite将用三角函数编写的表达式转换为包含复指数的表达式。在

当然,它应该“有效”,但这里有一个例子,在这个例子中,借助上面给出的“带cos的更简单的等式”,你可以得到一个答案:

>>> eq=3.2*cos(x+.2)+1.7
>>> [w.n(3,chop=True) for w in solve(expand(eq.rewrite(exp)))]
[-2.33, 1.93]

相关问题 更多 >