Построение алгебраических кривых в Julia

Я хочу визуализировать некоторые алгебраические кривые в

У меня есть многочлены:

f1=(x^4+y^4-1)(x^ 2 +y^2-2)+x^5y

f2 = х ^ 2 +2xy^2-2y^2-1 / 2

и я хотел бы построить график V (f1) и V (f2), чтобы увидеть их общие пересечения. Я пробовал использовать контурный график, но, похоже, он позволяет мне строить только одну кривую за раз. Есть ли способ построить обе кривые в Gadfly.jl или делать это в другом Julia упаковка?

Вот что у меня есть на данный момент.

1 ответ

Овод использует удобный составной элемент: Layers

https://gadflyjl.org/stable/man/compositing/#Layers

Они находятся в свободном доступе через сюжет как plot_name.layers и может быть добавлен вручную (например, с помощью append!(p.layers, new_layer)). Лично мне больше всего нравится создавать оба слоя перед вызовом и внедрять любые необходимые метки фигур в plot() функция:

      using Gadfly

pol_one = layer(z=(x,y) -> (x^4 + y^4 - 1) * (x^2+y^2-2) + x^5 * y,
               xmin=[-2], xmax=[2], ymin=[-2], ymax=[2],
               Geom.contour(levels=[0;]))

pol_two = layer(z=(x,y) -> x^2 + 2x*y^2 - 2y^2 - 1/2,
               xmin=[-2], xmax=[2], ymin=[-2], ymax=[2],
               Geom.contour(levels=[0;]))

plot(p_layer, q_layer, Guide.xlabel("x"), Guide.ylabel("y"))

что даст следующую цифру:

Другие вопросы по тегам