python - 简化时 SymPy 中的指数到三角转换 - 一个顽固的表达

标签 python sympy

我一直在努力简化

exp(2*I*N) - 1)**2/((exp(2*I*N) - 1)**2 - 4*exp(2*I*N)*cos(N)**2)

答案应该是 (sin N)^2,但输出与输入相同。

我尝试了 .rewrite(cos) 然后简化、trigsimp、扩展和几乎所有我可以从帮助资源中快速发现的东西。

最佳答案

exp 而不是 cos 重写更有帮助:

expr.rewrite(exp).simplify()

返回 -cos(2*N)/2 + 1/2,这显然等同于 sin(N)**2。用

清理它
expr.rewrite(exp).simplify().trigsimp()

获取 sin(N)**2


旧答案,可能仍然有值(value):您可能认为 N 是真实的,所以让我们这样声明它。

鉴于混合了复杂的指数函数和三角函数,使用 as_real_imag() 可能有助于分离实部和虚部。直接应用除了放置 re(...) 和 im(...) 之外没有做太多事情,因此建议首先以指数形式重写并扩展正方形/乘积:

N = symbols('N', real=True)
expr = (exp(2*I*N) - 1)**2/((exp(2*I*N) - 1)**2 - 4*exp(2*I*N)*cos(N)**2)
result = [a.trigsimp() for a in expr.rewrite(cos).expand().as_real_imag()]

结果:[sin(N)**2, 0],表示表达式的实部和虚部。它可以用 result[0] + I*result[1] 重新组合成一个表达式。

关于python - 简化时 SymPy 中的指数到三角转换 - 一个顽固的表达,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52722676/

相关文章:

python - Keras GAN 批量训练

python - 从字面上呈现一个 sympy 表达式,没有简化

python - sympy.simplify 不适用于 "tanh^2(x-y) + sech^2(x-y)"

python - 用numpy求解矩阵方程时出错

python - 如何在Python中正确实现不相交集数据结构来查找跨越森林?

python - 规范化数据帧(删除数据冗余并创建查找表)

python - 如何在创建表期间在 SQLite 中设置默认日期值

python - 将一个字典的键替换为另一个字典的值以创建一个新字典

python - 假设函数未完全集成到 SymPy 中

python - Sympy:整合()奇怪的输出