# ApCoCoA:Num.ABM

## Num.ABM

Computes the border basis of an almost vanishing ideal for a set of points using the ABM algorithm.

### Syntax

`Num.ABM(Points:MAT, Epsilon:RAT):Object
Num.ABM(Points:MAT, Epsilon:RAT, Delta:RAT, ForbiddenTerms:LIST, NormalizeType:INT):Object
`

### Description

*Please note:* The function(s) explained on this page is/are using the *ApCoCoAServer*. You will have to start the ApCoCoAServer in order to use it/them.

This command computes a border basis of an almost vanishing ideal for a set of points.

The current ring has to be a ring over the rational numbers with a standard-degree
compatible term-ordering. The matrix `Points` contains the points: each
point is a row in the matrix, so the number of columns must equal the
number of indeterminates in the current ring.

- @param
*Points*The points for which a border basis is computed. - @param
*Epsilon*A positive rational number describing the maximal admissible least squares error for a polynomial. (Bigger values for`Epsilon`lead to bigger errors of the polynomials evaluated at the point set).`Epsilon`should be in the interval (0,1). As a rule of thumb,`Epsilon`is the expected percentage of error on the input points. - @return A list of two results. First the border basis as a list of polynomials, second the vector space basis of
`P/I`as a list of terms.

The following parameters are optional:

- @param
*Delta*A positiv rational number.`Delta`describes the computing precision. In different steps, it is crucial, if a value is 0 or not. The algorithm assumes every value in`[-Delta, Delta]`to be 0. The default value for`Delta`is 0.00000000001. - @param
*ForbiddenTerms*A list containing the terms which are not allowed to show up in the order ideal. - @param
*NormalizeType*A integer of the range 1..4. The default value is 2. This parameter describes, if/how the input points are normalized. If`NormalizeType`equals 1, each coordinate is divided by the maximal absolute value of the corresponding column of the matrix. This ensures that all coordinates of points are in [-1,1]. With`NormalizeType=2`no normalization is done at all.`NormalizeType=3`shifts each coordinate to [-1,1]. So it's minimum is mapped to -1 and the maximum to one, describing a unique affine mapping. The last option is`NormalizeType=4`. In this case, each coordinate is normalized, using the column's euclidian norm.

#### Example

Use P::=QQ[x,y,z]; Points := Mat([[1,0,0],[0,0,1],[0,0.99,0]]); Res := Num.ABM(Points,0.1); Dec(Res[1],2); -- CoCoAServer: computing Cpu Time = 0.016 ------------------------------- [1 x +1.01 y +0.99 z -0.99 ,1 z^2 -0.99 z +0.00 ,1 yz ,1 xz ,1 y^2 -0.98 y -0.00 ,1 xy ] -------------------------------

### See also

ApCoCoA:Introduction to CoCoAServer