我在exp中遇到运行时溢出错误,因为它超过了64位的限制,并且我不能使用np.flat128(),因为我使用的是64位Windows计算机.

我可以剪裁和使用它,但我如何剪裁一个复数,而仍然得到一个虚构的和复杂的部分.

Current代码:

import numpy as np
x = 738.368295193386-738.368295193386j
x = np.clip(x, -709.78, 709.78)
print(np.exp(x))

Output是这样的:

(1.7928227943945157e+308+0j)

但也希望这个假想的术语有价值.

For example:

np.exp(708.368295193386+708.368295193386j)

(-2.657182604727012e+306-4.3615140206566584e+307j)

我如何才能得到类似的结果,同时保留了一个值和符号(+-)?

推荐答案

虽然限制值的策略对实数有效,但对于复数来说,它是flawed.事实上,复数指数在复数空间中执行的是一种rotation(见similarity),它导致实部/虚部的符号只有很小的变化.幸运的是,您可以使用模数来减少虚部,使用钳子来饱和实部.这一战略明显比numerically stable%要高.还可以用np.realnp.imag提取实数/虚数部分.下面是一个例子:

x = np.fmod(np.imag(x), 2*np.pi)*1j + np.clip(np.real(x), -709.78, 709.78)

虚数部分将在]-2π;2π[的范围内.不能夹紧它,因为它会强烈影响指数(包括符号)的结果.

如果这还不够,可以计算实部的指数,然后自己使用np.cosnp.sin在复数空间中旋转结果.

Python-3.x相关问答推荐

使用数据库将文件从Sharepoint下载到文件系统

我没有';无法理解此TemplateDoesNotExist错误

如何将项目添加到Python中具有固定大小的列表列表中

查找值始终为零的行 pandas

替换 .txt 文件中的项目列表

基于组/ID从原始数据框中创建两个子数据框

如何通过 python 使用 auth no priv 获取 SNMPv3?

将 rgb numpy 图像转换为 rgb 列表和相应的索引值

无法理解此递归函数的分配和环境用法

python中两个连续的yield语句如何工作?

pip install mysqlclient 失败为 mysqlclient 运行 setup.py bdist_wheel ... 错误

multiprocessing.Queue 中的 ctx 参数

如何模拟 Django 模型对象(及其方法)?

如何判断一个字符串是否包含有效的 Python 代码

无法在 Windows 8 中使用 Python 3.3 找到 vcvarsall.bat

python 3的蓝牙库

python setup.py egg_info mysqlclient

使用 urllib3 忽略证书验证

用于 unicode 大写单词的 Python 正则表达式

从 csv 中删除单行而不复制文件