## LearnVanishingIdeal.jl

Author matthiashimmelmann
Popularity
1 Star
Updated Last
1 Year Ago
Started In
November 2020

# LearnVanishingIdeal

This `Julia` package aims at learning an algebraic variety from a list of potentially noisy data points. In doing so, it uses statistical techniques inspired by the Generalized Principal Component Analysis by Ma et al.

It runs under the assumption that the underlying variety is a complete intersection. At the moment, either a maximum occuring degree among the generators of the vanishing ideal or a list of degrees is required as input. In addition, we assume that the codimension of the variety is known.

# Installation

``````pkg> add LearnVanishingIdeal
``````

# Instructions

In the following example, we are given the points (0,1), (-1,2) and (1,2) that lie on a parabola. Hence, we want to approximate these data points with one degree 2 curve.

``````julia> using HomotopyContinuation
julia> @polyvar x y
julia> result, sampserror = approximateVanishingIdeal([[-2,5],[2,5],[0,1],[1,2],[-1,2]], )
julia> [[round(entry,digits=2) for entry in value]'*affineVeronese(2,[x,y]) for value in result]
1-element Array{Polynomial{true,Float64},1}:
-0.58x² + 0.58y - 0.58
``````

The output of this method is a normalized version of the classic parabola . The general input format of this method is `approximateVanishingIdeal(points::Array{Array{Float64,1},1}, listOfDegrees::Array{Int64,1})`.

### Required Packages

View all packages

### Used By Packages

No packages found.