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

(Added BBABM) |
m (replaced <quotes> tag by real quotes) |
||

(10 intermediate revisions by 4 users not shown) | |||

Line 1: | Line 1: | ||

+ | {{Version|1}} | ||

<command> | <command> | ||

<title>Num.BBABM</title> | <title>Num.BBABM</title> | ||

− | <short_description>Computes the border basis of an almost vanishing ideal for a set of points.</short_description> | + | <short_description>Computes the border basis of an almost vanishing ideal for a set of points using the BB ABM algorithm.</short_description> |

<syntax> | <syntax> | ||

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

− | Num.BBABM(Points:MAT, Epsilon:RAT, Delta:RAT, NormalizeType:INT):Object | + | Num.BBABM(Points:MAT, Epsilon:RAT, Delta:RAT, ForbiddenTerms:LIST, NormalizeType:INT):Object |

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

Line 20: | Line 21: | ||

<itemize> | <itemize> | ||

<item>@param <em>Points</em> The points for which a border basis is computed.</item> | <item>@param <em>Points</em> The points for which a border basis is computed.</item> | ||

− | + | <item>@param <em>Epsilon</em> A positive rational number describing the maximal admissible least squares error for a polynomial. (Bigger values for <tt>Epsilon</tt> lead to bigger errors of the polynomials evaluated at the point set). <tt>Epsilon</tt> should be in the interval (0,1). As a rule of thumb, <tt>Epsilon</tt> is the expected percentage of error on the input points. </item> | |

− | <item>@param <em>Epsilon</em> A positive rational number describing the maximal admissible least squares error for a polynomial. (Bigger values for <tt> | ||

− | |||

<item>@return A list of two results. First the border basis as a list of polynomials, second the vector space basis of <tt>P/I</tt> as a list of terms.</item> | <item>@return A list of two results. First the border basis as a list of polynomials, second the vector space basis of <tt>P/I</tt> as a list of terms.</item> | ||

</itemize> | </itemize> | ||

Line 30: | Line 29: | ||

<item>@param <em>Delta</em> A positiv 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 positiv 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>NormalizeType</em> | + | <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> An 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> | ||

</itemize> | </itemize> | ||

Line 42: | Line 43: | ||

-- CoCoAServer: computing Cpu Time = 0.015 | -- CoCoAServer: computing Cpu Time = 0.015 | ||

------------------------------- | ------------------------------- | ||

− | [ | + | ["1 x +1.01 y +1 z -0.99 ", "1 z^2 -1 z ", "1 yz ", "1 xz ", "1 y^2 -0.98 y ", "1 xy "] |

-------------------------------------------------------------- | -------------------------------------------------------------- | ||

</example> | </example> | ||

Line 48: | Line 49: | ||

<seealso> | <seealso> | ||

− | <see>Introduction to CoCoAServer</see> | + | <see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see> |

− | <see>Num.SubBBABM</see> | + | <see>ApCoCoA-1:Num.SubBBABM|Num.SubBBABM</see> |

+ | <see>ApCoCoA-1:Num.ABM|Num.ABM</see> | ||

+ | <see>ApCoCoA-1:Num.CABM|Num.CABM</see> | ||

+ | <see>ApCoCoA-1:Num.DABM|Num.DABM</see> | ||

</seealso> | </seealso> | ||

<types> | <types> | ||

Line 58: | Line 62: | ||

<key>Num.BBABM</key> | <key>Num.BBABM</key> | ||

<key>numerical.BBABM</key> | <key>numerical.BBABM</key> | ||

− | <wiki-category>Package_numerical</wiki-category> | + | <wiki-category>ApCoCoA-1:Package_numerical</wiki-category> |

</command> | </command> |

## Latest revision as of 13:46, 29 October 2020

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

## Num.BBABM

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

### Syntax

Num.BBABM(Points:MAT, Epsilon:RAT):Object Num.BBABM(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. In contrast to the ABM algorithm the border polynomials are computed in such a way, that the residual is calculated on polynomials that have leading borderterm coefficient one.

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*An 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::=QQ[x,y,z]; Points := Mat([[1,0,0],[0,0,1],[0,0.99,0]]); Res := Num.BBABM(Points,0.1); Dec(Res[1],2); -- CoCoAServer: computing Cpu Time = 0.015 ------------------------------- ["1 x +1.01 y +1 z -0.99 ", "1 z^2 -1 z ", "1 yz ", "1 xz ", "1 y^2 -0.98 y ", "1 xy "] --------------------------------------------------------------

### See also