РЕДАКТИРОВАТЬ: Я думаю, что я понял ваш вопрос неправильно.Округление числа, как вы делали в операторах печати, очевидно, приведет к некоторым различиям (которые довольно малы (около 1e-9
)).
Чтобы найти все x, вы должны применить некоторый метод глобального решения или начать сдругая начальная точка, чтобы найти все локальные минимы (как видно на графике).
У уравнения, однако, есть два решения.
def func(x): # testing function which leads to the same behaviour
return (x * 5 + x * (1 - x) * (6-3*x) * 5)
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-0.1,1,100)
plt.plot(x, func(x)-7)
plt.plot(x, np.zeros(100))
plt.show()
Функция: