python - 尝试定义复指数时出现语法错误

标签 python math

def GetE(x1, x2, k, x, z, N):
    firstHeight = math.exp(((k/(2*math.pi*z)) * ((x-x1) ** 2))j)

我的函数在定义firstHeight 的行上出现语法错误。我相信这与无法用变量定义复数有关,正如我所尝试的那样:

test = 2 + (k)j

并且还收到语法错误。有谁知道如何解决这个问题吗?

最佳答案

math 不支持复数,因为您有 cmath :

import math, cmath

cmath.exp(((k/(2*math.pi*z)) * ((x-x1) ** 2))*1j)
# (0.998966288513345+0.045457171204028084j)

或者您可以使用NumPy:

np.exp(((k/(2*np.pi*z)) * ((x-x1) ** 2))*1j)
#(0.998966288513345+0.045457171204028084j)

正如 @GreenCloakGuy 指出的那样,您不能使用 j 将非文字转换为复数。您可以使用 complex()1j

关于python - 尝试定义复指数时出现语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60151920/

相关文章:

python - 疯狂使用 python 集

python - 什么时候应该在 Django 中使用自定义管理器而不是自定义查询集?

Python 和 plot() : how to limit the number of x-axis ticks (labels)

c++ - 是否有一种直接的方法来反转三角形(上或下)矩阵?

python - 向一叠玻璃杯中加水

algorithm - 查找具有子区间的区间的最小覆盖范围

Python 字符串函数

python - 通过 python 进行多人游戏

math - 交互式数学证明系统

Python 三角函数返回意外值