# ApCoCoA-1:Num.CEXTABM

This article is about a function from ApCoCoA-1. |

## Num.CEXTABM

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

### Syntax

Num.CEXTABM(PointsReal:MAT, PointsComp:MAT, ValReal:MAT, ValComp:MAT, Epsilon:RAT):Object Num.CEXTABM(PointsReal:MAT, PointsComp:MAT, ValReal:MAT, ValComp:MAT, Epsilon:RAT, Delta:RAT, 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 complex points. A special property of the polynomials is, that when evaluated at the original set of points, one obtains approximately `Val`. To obtain an approximate ideal an additional indeterminate has to be added to each equation, which represents the coordinates of Val.

The current ring has to be a ring over the rational numbers with a standard-degree

compatible term-ordering. The matrix `PointsReal` contains the real part of the points, the matrix `PointsComp` the complex part: each point is a row in the matrix, so the number of columns must equal the

number of indeterminates in the current ring.

@param

*PointsReal*The real part of the points for which a border basis is computed.@param

*PointsComp*The complex part of the points for which a border basis is computed.@param

*ValReal*The real part of the time series we want to approximate using*Points*.@param

*ValComplex*The complex part of the time series we want to approximate using*Points*.@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).@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

*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. Due to backward compatibility, the default is 1, although 3 is in most cases a better choice.

#### Example

Use P::=Q[x,y]; PointsReal := Mat([[0,0],[1,1]]); PointsComplex := Mat([[1,-1],[-1,1]]); ValReal := Mat([[1],[1]]); ValComp := Mat([[0],[1]]); Res := Num.CEXTABM(PointsReal, PointsComplex, ValReal, ValComp, 0.1); Dec(Res,3); [[["-0.399 y -0.799 ", "-0.200 y -0.399 ", "0.400 x -1.199 ", "-0.199 x -0.399 "], [["1 "]] -------------------------------

### See also