Как найти все точки пересечения нуля с функцией и отобразить их на графике?
Пытаюсь найти пересечения с нулем с помощью смены знака функции, т.к. не факт, что среди значений "x" функция будет равна 0. Однако точки расставляются некорректно из-за неправильного прохода по функции.
import numpy as np
import matplotlib.pyplot as plt
def func():
x = np.linspace(-10,10,1000)
y = x*x - 10
s = np.sign(y)
zeroes = []
for i in range(len(y)):
if s[i-1] + s[i] == 0:
zeroes.append(i)
plt.plot(x, y)
plt.plot([y[i] for i in zeroes],'ro')
plt.grid()
plt.show()
func()
https://i.stack.imgur.com/JG5L2.png
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Что-то вы странное пытаетесь рисовать, я исправил. Наверняка можно ещё проще сделать, но так понятно и работает. Ну то есть проблема у вас в отрисовке была, а не в вычислениях.
plt.plot(x, y)
plt.plot([x[i] for i in zeroes], [y[i] for i in zeroes],'ro')
plt.grid()
plt.show()

