Series
MultivariateSeries.Series
Base.:*
LinearAlgebra.dot
MultivariatePolynomials.maxdegree
MultivariateSeries.dual
MultivariateSeries.hankel
MultivariateSeries.hankelbasis
MultivariateSeries.moment
MultivariateSeries.scale
MultivariateSeries.scale!
MultivariateSeries.series
MultivariateSeries.Series
— TypeSeries{C,M}
Class representing multivariate series. The series is a dictionary, which associates values of type C to monomials of type M.
MultivariateSeries.dual
— Functiondual(p::Polynomial) -> Series{C,M}
Compute the series associated to the polynomial p, replacing the variables xi by their dual variables dxi. C is the type of coefficients of the polynomial p and M its type of monomials.
LinearAlgebra.dot
— Functiondot(σ::Series{C,M}, p::Variable) -> C
dot(σ::Series{C,M}, p::Monomial) -> C
dot(σ::Series{C,M}, p::Term) -> C
dot(σ::Series{C,M}, p::Polynomial) -> C
dot(σ::Series{C,M}, p::Polynomial, q::Polynomial) -> C
Compute the dot product $‹ p, q ›_{σ} = ‹ σ | p q ›$ or $‹ σ | p ›$ for p, q polynomials, terms or monomials. Apply the linear functional sigma
on monomials, terms, polynomials
MultivariateSeries.moment
— Functionmoment(w::Vector{C}, P::Matrix{C}) -> Vector{Int64} -> C
Compute the moment function $α -> ∑_{i} ω_{i} P_{i}^α$ associated to the sequence P of r points of dimension n, which is a matrix of size r*n and the weights w.
moment(p::Polynomial, zeta::Vector{C}) -> Vector{Int64} -> C
Compute the moment function $α \rightarrow p(ζ^α)$.
MultivariateSeries.series
— FunctionConstruct the series with the term (c,m).
Construct the series from an array of pairs m=>c where m is a monomial and c the associate coefficient.
series(f::Function, L::Vector{M}) -> Series{C,M}
Compute the generating series $\sum_{x^{α} \in L} f(α) z^α$ for a function $f: \mathbb{N}^n \rightarrow C$ and a sequence L of monomials.
series(w:: Vector{C}, P::Matrix{C}, L::Vector{M}) -> Series{C,M}
Compute the series of the moment sequence $∑_{i} ω_{i} P_{i}^α$ for $α \in L$.
series(w:: Vector{C}, P::AbstractMatrix, X, d::Int64) -> Series{C,M}
Compute the series of the moment sequence $∑_i ω_{i} P_{i}^α$ for $|α| \leq d$.
series(p::Polynomial, zeta, X, d::Int64) -> Series
Compute the series of moments $p(ζ^α)$ for $|α| \leq d$.
series(H::Matrix{C}, L1::Vector{M}, L2::Vector{M}) -> Series{C,M}
Compute the series associated to the Hankel matrix H, with rows (resp. columns) indexed by the array of monomials L1 (resp. L2).
MultivariateSeries.scale
— Functionscale(σ,λ)
Scale the moments $σ_α$ by $λ^{deg(α)}$.
MultivariateSeries.scale!
— Functionscale!(σ,λ)
Scale the moments $σ_α$ by $λ^{deg(α)}$, overwriting $σ$
Base.:*
— FunctionMultiply the elements of L by the variable v
*(v::Variable, σ::Series{C,M}) -> Series{C,M}
*(m::Monomial, σ::Series{C,M}) -> Series{C,M}
*(t::Term, σ::Series{C,M}) -> Series{C,M}
*(p::Polynomial, σ::Series{C,M}) -> Series{C,M}
The dual product (or co-product) where variables are inverted in the polynomial and the monomials with positive exponents are kept in the series.
MultivariatePolynomials.maxdegree
— Functionmaxdegree(σ::Series) -> Int64
Maximal degree of the moments defined in the series σ
.
MultivariateSeries.hankel
— Functionhankel(σ::Series{C,M}, L1::Vector{M}, L2::Vector{M}) -> Array{C,2}
Hankel matrix of $σ$ with the rows indexed by the list of polynomials L1 and the columns by L2. The entries are the dot product for $σ$ of the corresponding elements in L1 and L2.
Example
julia> L =[1, x1, x2, x1^2, x1*x2, x2^2]
julia> H = hankel(s,L,L)
6x6 Array{Float64,2}:
4.0 5.0 7.0 5.0 11.0 13.0
5.0 5.0 11.0 -1.0 17.0 23.0
7.0 11.0 13.0 17.0 23.0 25.0
5.0 -1.0 17.0 -31.0 23.0 41.0
11.0 17.0 23.0 23.0 41.0 47.0
13.0 23.0 25.0 41.0 47.0 49.0
MultivariateSeries.hankelbasis
— FunctionGenerate the table of Hankel matrices $H_α$ associated to the monomials $x^α$ generating the space of Hankel matrices indexed by L1 (for the rows) and L2 (for the columns).