Предупреждение во время выполнения при попытке написать уравнение для строки - PullRequest
0 голосов
/ 21 июня 2020

Уравнение

Эта ссылка ведет к изображению уравнения, которое я пытаюсь построить в графике в 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 Ответ

1 голос
/ 21 июня 2020

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.

...