По сути, z = F-G
- это функция, которая будет иметь нули, которые вы хотите превратить в кривую и график, поэтому не оборачивайте ее во все скобки. Затем вам нужно просто нанести один контур на ноль, поэтому используйте contours
, чтобы указать c точный интересующий вас контур.
Вот как это выглядит:
И вот код:
delta = 0.025
xrange = np.arange(-2, 2, delta)
yrange = np.arange(-2, 2, delta)
X, Y = np.meshgrid(xrange,yrange)
F = X**2
G = 1- (5*Y/4 - np.sqrt(np.abs(X)))**2
fig = go.Figure(data =
go.Contour(
z = F-G,
x = xrange,
y = yrange,
contours_coloring='lines',
line_width = 2,
contours=dict(
start=0,
end=0,
size=2,
),
))
fig.show()
Это хороший трюк, чтобы получить общее представление о том, как может выглядеть кривая, но это довольно грубо и даст вам результат только с точностью delta
. Если вы хотите, чтобы действительные нули были в любой момент, вам лучше использовать решатель, например scipy optimize
, как это делается здесь .