在Julia中绘制线性方程/不等式

在Julia中绘制线性方程/不等式,julia,Julia,假设我们有两个线性不等式,比如2x-5y=0,我们如何绘制这两个不等式?为了扩展这一点,如果我们有多个这样的不等式,我们如何用图形来解决这个问题 您可以在要绘制的间隔(使用meshgrid的版本)上创建x和y的矩阵,然后让u=(2x-5y.=0)。当方程满足时,u将为1,与v相同。您可以使用Plots.jl中的热图、等高线图或散点图,然后绘制(x,y,u)和(x,y,v)(您将看到您是否根据绘图的粗糙程度选择了足够精细的网格)。对于重叠,您可以绘制z=(u.==v)您可以尝试隐式方程: usin

假设我们有两个线性不等式,比如
2x-5y=0
,我们如何绘制这两个不等式?为了扩展这一点,如果我们有多个这样的不等式,我们如何用图形来解决这个问题

您可以在要绘制的间隔(使用
meshgrid
的版本)上创建
x
y
的矩阵,然后让
u=(2x-5y.=0)
。当方程满足时,
u
将为1,与
v
相同。您可以使用Plots.jl中的热图、等高线图或散点图,然后绘制
(x,y,u)
(x,y,v)
(您将看到您是否根据绘图的粗糙程度选择了足够精细的网格)。对于重叠,您可以绘制
z=(u.==v)

您可以尝试
隐式方程

using ImplicitEquations, Plots
f(x,y) = 2x - 5y - 6
g(x,y) = x + y - 0
plot((f < 0) & (g > 0))
使用隐式方程、绘图
f(x,y)=2x-5y-6
g(x,y)=x+y-0
绘图((f<0)和(g>0))
导致默认矩形[-5,5]、-5,5]上的区域:


隔离y告诉我们,这两个不等式的形式都是
y>=ax+b
。这意味着我们可以使用图、等式版本的函数以及函数在区间上获得的最大值来绘制不等式

using Plots
f(x) = (2/5)x-6/5
g(x) = -x
X = -10:10
the_max = max(f(X[end]), g(X[1]))

plot(X, f, fill = (the_max, 0.5, :auto))
plot!(X, g, fill = (the_max, 0.5, :auto))
这给了我们

如果第二个等式的不等式被翻转,我们就会

using Plots
f(x) = (2/5)x-6/5
g(x) = -x
X = -10:10
the_max = max(f(X[end]), g(X[1]))
the_min = min(f(X[1]), g(X[end]))
plot(X, f, fill = (the_max, 0.5, :auto))
plot!(X, g, fill = (the_min, 0.5, :auto))
显然,如果有许多这样的不等式需要绘制,您可能希望自动执行求最小值和最大值的过程。同样,这种重写依赖于线性,但你的问题特别提到它们是线性的


看看IntervalConstraintProgramming.jl(仍有很多工作在进行中…

该软件包看起来很棒。我得到了MethodError:没有方法匹配isless(::typeof(f),::Int64)为了避免盗版,运营商
对不起,我不明白你的意思。