将复数指数重写为三角函数

Rewriting complex exponential as trig functions

提问人:Ben G 提问时间:9/2/2023 最后编辑:Ben G 更新时间:9/2/2023 访问量:77

问:

我想将复数指数重写为trig函数,如图所示:enter image description here

我对 e^(2 pi I / 8) 的尝试不起作用,因为它会立即将其转换为平方根:

from sympy import E, pi, I, re

root = E**(2 * pi * I / 8)
print(root)
print(root.rewrite(cos))
print(re(root).rewrite(cos))

从这些印刷语句中,我得到:

exp(I*pi/4)

sqrt(2)/2 + sqrt(2)*I/2

平方(2)/2

我想得到实部的 cos(2 pi/8),虚部的 sin(2 pi/8)。但正如你所看到的,它直接计算为平方根。如何获取三角表示?

python sympy 三角函数复

评论

0赞 Tim Roberts 9/2/2023
你假设 sympy 已经被编程为理解这些身份。我不认为有人答应过。另外,您的示例有 ,而不是 .6/8*pi*i2/8*pi*i
0赞 Ben G 9/2/2023
修正了方程式中的错别字
0赞 Mike 'Pomax' Kamermans 9/2/2023
改用 Sage?=/
0赞 MSalters 9/2/2023
我错过了更大的背景,但这样的东西会起作用吗?arccos(re(E**(2 * pi * I / 8)))

答:

0赞 Jeff 9/2/2023 #1

这有点笨拙,但您可以为 pi 定义自己的符号,而不是使用 sympy.pi 来避免实际计算余弦和正弦:

from sympy import E, I, symbols, cos
mypi = symbols("pi")
root = E**(2 * mypi * I / 8)
print(root)
print(root.rewrite(cos))

输出:

exp(I*pi/4)
I*sin(pi/4) + cos(pi/4)