我有一个数学表达式,|z - (-1)| < 1,z元素的复形,它相当于一个半径为1的圆,以(x,y)=(-1,0)为中心。
到目前为止我尝试过的:
using ImplicitEquations, Plots
f(a,b) = abs.(a+im*b - (-1))
plot(f<1)我所犯的错误:
ERROR: MethodError: no method matching isless(::typeof(f), ::Int64)
Closest candidates are:
isless(::Union{StatsBase.PValue, StatsBase.TestStat}, ::Real) at /home/buddhilw/.julia/packages/StatsBase/PGTj8/src/statmodels.jl:514
isless(::AbstractGray{T} where T, ::Real) at /home/buddhilw/.julia/packages/ColorTypes/6m8P7/src/operations.jl:31
isless(::ForwardDiff.Dual{Tx, V, N} where {V, N}, ::Integer) where
Tx at /home/buddhilw/.julia/packages/ForwardDiff/UDrkY/src/dual.jl:144
...
Stacktrace:
[1] <(x::Function, y::Int64)
@ Base ./operators.jl:279
[2] top-level scope
@ REPL[62]:1发布于 2021-10-27 23:59:38
对于文档并没有太多的ImplicitEquations,但是有一点很突出:您没有使用正确的操作符。这个包依赖于不寻常的操作符来用朱莉娅函数来表示数学表达式:≪(\lltab)、≦(\leqqtab)、⩵(\geqqtab)、≶(\lessgtrtab)或≷(\gtrlesstab)、≧(\geqqtab)、≫(\leqqtab)。
所以这个修复看起来是这样的:
using ImplicitEquations, Plots
f(a,b) = sqrt((a+1)^2 + b^2)
plot(f ≪ 1)更新:
f(a,b) = abs(a + im*b - (-1))会导致方法歧义错误。f(a, b) = hypot(a+1, b),这是abs所调用的,也会导致错误。看起来问题是,在hypot中的某个时候,调用了OInterval(x::Ointerval),但是调度不能在boot.jl中的(::Type{T})(x::T) where T<:Number和intervals.jl中的OInterval(a)之间进行选择。仅仅重新定义OInterval(a::Ointerval) = a也不能工作,因为您遇到了另一个用于decompose(::OInterval)的MethodError,这是一种用于处理浮点数的方法。从intervals.jl的角度来看,调度似乎是一项正在进行的工作。
https://stackoverflow.com/questions/69745476
复制相似问题