Julia 将多变量多项式输出作为用户定义函数导入到跳转中

Julia 将多变量多项式输出作为用户定义函数导入到跳转中,julia,polynomials,nonlinear-optimization,julia-jump,Julia,Polynomials,Nonlinear Optimization,Julia Jump,我正在尝试从多变量多项式导入函数的输出,并将其作为函数使用到跳转中。下面是相关代码,它是NL方程大型系统的一部分 using JuMP using MultivariatePolynomials @polyvar k s θ_1k θ_2k θ_3k θ_4k θ_5k θ_6k θ_7k θ_8k θ_9k θ_10k θ_11k θ_12k θ_13k E ρ d=.... j_11=subs(d,k=>q11(θ_1k,θ_2k,θ_3k,θ_4k,θ_5k,θ_6k

我正在尝试从多变量多项式导入函数的输出,并将其作为函数使用到跳转中。下面是相关代码,它是NL方程大型系统的一部分

using JuMP
using MultivariatePolynomials 
@polyvar k s θ_1k θ_2k θ_3k θ_4k θ_5k θ_6k θ_7k θ_8k θ_9k θ_10k θ_11k θ_12k θ_13k E ρ   
d=....    
j_11=subs(d,k=>q11(θ_1k,θ_2k,θ_3k,θ_4k,θ_5k,θ_6k,θ_7k,θ_8k,θ_9k),s=>f(s,ρ,E))
c_11=subs(j_11, k=>-0.7071067811865476,s=>0)

function v11(θ_1k,θ_2k,θ_3k,θ_4k,θ_5k,θ_6k,θ_7k,θ_8k,θ_9k,ρ,E)
    c_11
end

m=Model(solver=IpoptSolver())

JuMP.register(m, :v11, 27, v11, autodiff=true)

@NLconstraint(m,cons1, ((v11(θ_1k,θ_2k,θ_3k,θ_4k,θ_5k,θ_6k,θ_7k,θ_8k,θ_9k,θ_10k,θ_11k,θ_12k,θ_13k,ρ, E))*w_1+*β*(1-δ+...

solve(m)
status=solve(m)
我收到以下错误:

MethodError: no method matching parseNLExpr_runtime(::JuMP.Model, ::DynamicPolynomials.PolyVar{true}, ::Array{ReverseDiffSparse.NodeData,1}, ::Int64, ::Array{Float64,1})

Closest candidates are:
  parseNLExpr_runtime(::JuMP.Model, ::Number, ::Any, ::Any, ::Any) at C:\Users\s1364322\.julia\v0.6\JuMP\src\parsenlp.jl:196
  parseNLExpr_runtime(::JuMP.Model, ::JuMP.Variable, ::Any, ::Any, ::Any) at C:\Users\s1364322\.julia\v0.6\JuMP\src\parsenlp.jl:202
似乎输出
c_11
没有像我定义函数
v11
那样被转换为多元函数类型,而是保持为多项式类型。我怎样才能解决这个问题?
请,我非常感谢您的帮助

供将来参考,问题已于解决。

请查看我的编辑是否没有歪曲任何含义。并尝试熟悉标记工具和标记(右上角有一个小帮助按钮)——它们通常比手动按行格式化更容易使用:)