辛菲解不了这个三角方程

2024-04-19 20:09:31 发布

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

我试图让Symphy解下面的三角方程,但它给了我这个错误:

NotImplementedError: could not solve b*tan(3*atan(6/b)/2) - 9

有没有一种方法可以让sympy解出下面的方程

import sympy

from sympy import *

a = sympy.symbols("a")
b = sympy.symbols("b")

eq1 = sympy.Eq(b*tan(2*a), 6)
eq2 = sympy.Eq(b*tan(3*a), 9)

result = sympy.solve([eq1, eq2], (a,b))
print(result)

Tags: import错误notresultcouldeqsymbolssympy
1条回答
网友
1楼 · 发布于 2024-04-19 20:09:31

您可以使用expand应用三角加法公式,该公式将所有内容简化为tan(a)中的有理函数:

In [16]: tan(2*a).expand(trig=True)
Out[16]: 
  2⋅tan(a) 
───────────
       2   
1 - tan (a)

然后方程可以求解:

In [14]: eq1, eq2 = [eq.expand(trig=True) for eq in [eq1, eq2]]

In [15]: solve([eq1, eq2], (a,b))
Out[15]: 
⎡⎛              18⋅√5⋅ⅈ⎞  ⎛             -18⋅√5⋅ⅈ ⎞⎤
⎢⎜-ⅈ⋅atanh(√5), ───────⎟, ⎜ⅈ⋅atanh(√5), ─────────⎟⎥
⎣⎝                 5   ⎠  ⎝                 5    ⎠⎦

相关问题 更多 >