提问者:小点点

尝试为行写入公式时的运行时警告


方程式

这个链接指向我试图在matplotlib中绘制的方程的图片

from matplotlib import pyplot as plt
import numpy as np
x_values = np.arange(1, 10, step=0.1)
y_values = (np.arcsin(np.sqrt(abs(np.sin(x_values) ** (abs(np.cos(x_values)) + abs(np.sin(x_values)) + (2.718281828459045** np.sin(x_values)))))) - x_values)/x_values

上面的代码抛出以下错误消息:

ipykernel_launcher.py:4: RuntimeWarning: invalid value encountered in power
  after removing the cwd from sys.path.

我没有进行绘图,因为这段代码本身就会抛出一条错误消息,我该如何修复这个问题呢?


共1个答案

匿名用户

numpy不允许负数的小数幂,因为它需要复杂的结果,而您没有定义复杂类型。 您可以这样检查您的电源阵列:

pow = abs(np.cos(x_values)) + abs(np.sin(x_values)) + (2.718281828459045** np.sin(x_values))
a = np.sin(x_values)

并使用如下的变通方法:

a_pow = np.sign(a) * (np.abs(a)) ** (pow)

y_values = (np.arcsin(np.sqrt(abs(a_pow))) - x_values)/x_values

但要事先确定,你并没有期待复数作为结果!

如果这样做,请将数组dtype更改为np.complex