【问题标题】:Sympy can't solve this trigonometric equationSympy 无法求解这个三角方程
【发布时间】:2021-02-19 15:08:45
【问题描述】:

我正在尝试解决下面的三角方程,但它给了我这个错误:

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

有没有办法让我能够同情解决下面的等式?

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)

【问题讨论】:

  • 那就解决不了了,希望this给你一些思路。
  • 从等式中删除 b 似乎会导致结果 solve([Eq(tan(2 * a) / 6, tan(3 * a) / 9)], a)

标签: python sympy


【解决方案1】:

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

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    ⎠⎦

【讨论】:

  • i 的值是多少?或者它有什么价值?
  • i-1 的平方根。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多