2

我正在寻找可视化的一些代数曲线Julia

我有多项式:

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

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

我想绘制 V(f1) 和 V(f2) 以便我可以看到它们的共同交叉点。我尝试过使用等高线图,Gadfly.jl但它似乎只允许我一次绘制一条曲线。有没有办法在另一个包中绘制两条曲线Gadfly.jl或在另一个Julia包中绘制?

这是我到目前为止所拥有的。 在此处输入图像描述

4

1 回答 1

3

Gadfly 正在使用一个方便的复合项目:Layers

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

这些可以通过绘图自由访问,plot_name.layers并且可以手动附加(例如使用append!(p.layers, new_layer))。plot()个人最喜欢的是在函数中调用和实现任何必要的图形标签之前构建两个层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"))

这将产生下图: 在此处输入图像描述

于 2021-07-23T15:20:34.787 回答