# Difference between revisions of "ApCoCoA-1:Num.AVI"

m |
(Added new parameter) |
||

Line 4: | Line 4: | ||

<syntax> | <syntax> | ||

Num.AVI(Points:MAT, Epsilon:RAT):Object | Num.AVI(Points:MAT, Epsilon:RAT):Object | ||

− | Num.AVI(Points:MAT, Epsilon:RAT, Delta:RAT, NormalizeType:INT, RREFNormalizeType:INT, RREFUseEps:BOOL, RREFType:INT):Object | + | Num.AVI(Points:MAT, Epsilon:RAT, Delta:RAT, ForbiddenTerms:LIST, NormalizeType:INT, RREFNormalizeType:INT, RREFUseEps:BOOL, RREFType:INT):Object |

</syntax> | </syntax> | ||

Line 28: | Line 28: | ||

<itemize> | <itemize> | ||

<item>@param <em>Delta</em> A positive rational number. <tt>Delta</tt> describes the computing precision. In different steps, it is crucial, if a value is 0 or not. The algorithm assumes every value in <tt>[-Delta, Delta]</tt> to be 0. The default value for <tt>Delta</tt> is 0.00000000001.</item> | <item>@param <em>Delta</em> A positive rational number. <tt>Delta</tt> describes the computing precision. In different steps, it is crucial, if a value is 0 or not. The algorithm assumes every value in <tt>[-Delta, Delta]</tt> to be 0. The default value for <tt>Delta</tt> is 0.00000000001.</item> | ||

+ | |||

+ | <item>@param <em>ForbiddenTerms</em> A list containing the terms which are not allowed to show up in the order ideal.</item> | ||

<item>@param <em>NormalizeType</em> A integer of the range 1..4. The default value is 2. This parameter describes, if/how the input points are normalized. If <tt>NormalizeType</tt> 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 <tt>NormalizeType=2</tt> no normalization is done at all. <tt>NormalizeType=3</tt> 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 <tt>NormalizeType=4</tt>. 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.</item> | <item>@param <em>NormalizeType</em> A integer of the range 1..4. The default value is 2. This parameter describes, if/how the input points are normalized. If <tt>NormalizeType</tt> 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 <tt>NormalizeType=2</tt> no normalization is done at all. <tt>NormalizeType=3</tt> 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 <tt>NormalizeType=4</tt>. 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.</item> |

## Revision as of 18:26, 30 March 2011

## Num.AVI

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

### Syntax

Num.AVI(Points:MAT, Epsilon:RAT):Object Num.AVI(Points:MAT, Epsilon:RAT, Delta:RAT, ForbiddenTerms:LIST, NormalizeType:INT, RREFNormalizeType:INT, RREFUseEps:BOOL, RREFType: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 function computes an approximate border basis of an almost vanishing ideal for a set of points using the AVI algorithm. AVI is an acronym of "Approximate Vanishing Ideal".

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 which singular values should be treated as 0 (smaller 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 positive 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. Due to backward compatibility, the default is 1, although 3 is in most cases a better choice.@param

*RREFNormalizeType*Describes, how in each RREF steps the columns are normalized. The options correspond to the ones for`NormalizeType`and the default is 1 again.@param

*RREFUseEps*must be either true or false! If`RREFUseEps`is true, the given`Delta`is used within the RREF to decide if a value equals 0 or not. If this parameter is false, a replacement value for`Delta`is used, which is based on the norm of the matrix.@param

*RREFType*This must be 1 or 2. If`RREFType=1`, the RREF operates column-wise, otherwise it works row-wise. The default is 1.

#### Example

Use P::=QQ[x,y,z]; Points := Mat([[1,0,0],[0,0,1],[0,1,0]]); Num.AVI(Points,0.001); -- CoCoAServer: computing Cpu Time = 0 ------------------------------- [[x + y + 4503599627370495/4503599627370496z - 4503599627370497/4503599627370496, xy, y^2 - y, xz, yz, z^2 - z], [1, z, y]] ------------------------------- -------------------------------

### See also