Coder Social home page Coder Social logo

atbug / multivariatepolynomials.jl Goto Github PK

View Code? Open in Web Editor NEW

This project forked from juliaalgebra/multivariatepolynomials.jl

0.0 0.0 0.0 744 KB

Multivariate polynomials interface

Home Page: https://juliaalgebra.github.io/MultivariatePolynomials.jl/stable/

License: Other

Julia 100.00%

multivariatepolynomials.jl's Introduction

Multivariate Polynomials

Documentation Build Status Social References to cite
Build Status Build Status Gitter DOI
Coveralls branch Codecov branch

This package provides an interface for manipulating multivariate polynomials. Implementing algorithms on polynomials using this interface will allow the algorithm to work for all polynomials implementing the interface.

The interface contains functions for accessing the coefficients, monomials, terms of the polynomial, defines arithmetic operations on them, rational functions, division with remainder, calculus/differentiation and evaluation/substitution.

Documentation

  • STABLE โ€” most recently tagged version of the documentation.
  • LATEST โ€” in-development version of the documentation.

Examples

Below is a simple usage example

using TypedPolynomials
@polyvar x y # assigns x (resp. y) to a variable of name x (resp. y)
p = 2x + 3.0x*y^2 + y
@test differentiate(p, x) # compute the derivative of p with respect to x
@test differentiate.(p, (x, y)) # compute the gradient of p
@test p((x, y)=>(y, x)) # replace any x by y and y by x
@test subs(p, y=>x^2) # replace any occurence of y by x^2
@test p(x=>1, y=>2) # evaluate p at [1, 2]

Below is an example with @polyvar x[1:3]

using TypedPolynomials
A = rand(3, 3)
@polyvar x[1:3] # assign x to a tuple of variables x1, x2, x3
p = sum(x .* x) # x_1^2 + x_2^2 + x_3^2
subs(p, x[1]=>2, x[3]=>3) # x_2^2 + 13
p(x=>A*vec(x)) # corresponds to dot(A*x, A*x), need vec to convert the tuple to a vector

Ecosystem

The following packages provides multivariate polynomials that implement the interface:

  • TypedPolynomials : Commutative polynomials of arbitrary coefficient types
  • DynamicPolynomials : Commutative and non-commutative polynomials of arbitrary coefficient types

The following packages extend/use the interface:

  • SemialgebraicSets : Sets defined by inequalities and equalities between polynomials and algorithms for solving polynomial systems of equations.
  • FixedPolynomials : Fast evaluation of multivariate polynomials
  • HomotopyContinuation : Solving systems of polynomials via homotopy continuation.
  • MultivariateMoments : Moments of multivariate measures and their scalar product with polynomials.
  • PolyJuMP : A JuMP extension for Polynomial Optimization.
  • SumOfSquares : Certifying the nonnegativity of polynomials, minimizing/maximizing polynomials and optimization over sum of squares polynomials using Sum of Squares Programming.

See also

  • Nemo for generic polynomial rings, matrix spaces, fraction fields, residue rings, power series
  • Polynomials for univariate polynomials
  • PolynomialRoots for a fast complex polynomial root finder

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.