# ApCoCoA-1:Num.SubEXTABM

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

## Num.SubEXTABM

Computes a border basis of an almost vanishing sub-ideal for a set of points and an ideal using the Num.EXTABM algorithm.

### Syntax

Num.SubEXTABM(Points:MAT, Val:MAT, Epsilon:RAT, Basis:LIST):Object Num.SubEXTABM(Points:MAT, Val:MAT, Epsilon:RAT, Basis:LIST, 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 sub-ideal for a set of points and an ideal using the Num.EXTABM algorithm.

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

compatible term-ordering. Each row in the matrix `Points` represents one point, 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

*Val*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).@param

*Basis*A set of polynomials in the current ring. This basis defines the ideal in which we compute the basis of the approximate vanishing ideal.@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 positive rational number which 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 set`{1,2,3,4}`. The default value is 2. This parameter describes, if and where required the input points are normalized. If`NormalizeType`equals 1, each coordinate of a point is divided by the maximal absolute value of all coordinates of this point. This ensures that all coordinates of the points are within`[-1,1]`. With`NormalizeType=2`no normalization is done at all.`NormalizeType=3`shifts each coordinate to`[-1,1]`, i.e. the minimal coordinate of a point is mapped to -1 and the maximal coordinate to 1, which describes a unique affine mapping. The last option is`NormalizeType=4`. In this case, each point is normalized by its euclidean norm. Although`NormalizeType=3`is in most cases a better choice, the default value is due to backward compatibility 1.

#### Example

Use P::=QQ[x,y,z]; Points := Mat([[1,2,3],[4,5,6],[7,11,12]]); Val := Mat([[1],[0.1],[0.2]]); R:=Num.SubEXTABM(Points,Val, 0.1, [x]); Dec(-Eval(R[1],Points[1]),3); Dec(-Eval(R[1],Points[2]),3); Dec(-Eval(R[1],Points[3]),3); -- CoCoAServer: computing Cpu Time = 0 ------------------------------- ["1.000", "0.999", "1.000", "0.999", "0.999", "1.000"] ------------------------------- ["0.099", "0.100", "0.100", "0.099", "0.099", "0.100"] ------------------------------- ["0.200", "0.200", "0.200", "0.199", "0.199", "0.199"] -------------------------------

### See also