@polyvar 未定义,使用 MultivariatePolynomials 时

@polyvar not defined, when using MultivariatePolynomials

当尝试编译下面的代码(来自 here)时,我被告知“@polyvar 未定义”。我正在使用 Julia v.0.6

using MultivariatePolynomials
@polyvar(x[1:2])
p = 2x[1] + 3x[1]x[2]^2 + x[2] + 3
differentiate(p, x[1])
p([1,2], x)

消息:UndefVarError:@polyvar 未定义。

请问有什么问题吗?

包中可能最近发生了变化,现在看来 @polyvar 定义在 TypedPolynomials 包中,而 MultivariatePolynomials 定义了一个公共接口,TypedPolynomials 是它的一个实现。所以,

# install TypedPolynomials
Pkg.clone("https://github.com/rdeits/TypedPolynomials.jl")

using MultivariatePolynomials
using TypedPolynomials

应该解决的问题:

julia> @polyvar(x[1:2])
(x1, x2)
julia> p = 2x[1] + 3x[1]x[2]^2 + x[2] + 3
3x1x2^2 + 2x1 + x2 + 3

并且您想将最后一行更改为:

julia> p(x=>[1,2])
19