gpt4 book ai didi

python - 将 sympy 结果作为三角函数而不是复杂的日志

转载 作者:行者123 更新时间:2023-12-01 08:47:59 24 4
gpt4 key购买 nike

我正在对三角方程进行一些操作,并希望结果以三角形式返回。

我正在做的是这样的:

from sympy import *
B,D,a=symbols(r'B,D,alpha',real=True,positive=True)
eq1=Eq(D,B*((sin(a)*sin(a))/(sin(a+a))))
solve(eq1,a)

我期望结果是 atan(2*D/B) 但我得到:

[-I*log(-sqrt((B + 2*I*D)/(B - 2*I*D))), -I*log((B + 2*I*D)/(B - 2*I*D))/2]

我知道 sympy 正在将三角函数扩展为指数形式,但我似乎无法说服它将结果转换回来。

我已经尝试过:

[n.rewrite(atan) for n in solve(eq1,a)]

但我得到了相同的结果......

最佳答案

如果求解之前进行简化,结果看起来会更好。

>>> solve(eq1.simplify(), a)
[atan(2*D/B)]

此外,数学上更严格的 solveset(solve 的现代替代方案)会返回数学上更正确的答案,而无需进行简化:

>>> solveset(eq1, a)
ConditionSet(alpha, Eq(tan(alpha)/2 - D/B, 0), Reals)

重点是,有无限多个解,因此它们不能以列表形式给出:因此,solvetset 将它们表示为所有 alpha 的集合,使得 tan(alpha) 2*D/B.

关于python - 将 sympy 结果作为三角函数而不是复杂的日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53235242/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com