Difference between revisions of "ApCoCoA-1:Num.EXTABM"

From ApCoCoAWiki
(Added EXTABM)
 
m (replaced <quotes> tag by real quotes)
 
(11 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
{{Version|1}}
 
<command>
 
<command>
 
   <title>Num.EXTABM</title>
 
   <title>Num.EXTABM</title>
Line 4: Line 5:
 
<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.</short_description>
 
<syntax>
 
<syntax>
Num.EXTABM(Points:MAT, Val:MAT, Tau:RAT):Object
+
Num.EXTABM(Points:MAT, Val:MAT, Epsilon:RAT, Tau:RAT):Object
Num.EXTABM(Points:MAT, Val:MAT, Tau:RAT, Delta:RAT, NormalizeType:INT):Object
+
Num.EXTABM(Points:MAT, Val:MAT, Epsilon:RAT, Tau:RAT, Delta:RAT, NormalizeType:INT):Object
 
</syntax>
 
</syntax>
  
Line 11: Line 12:
 
<em>Please note:</em> The function(s) explained on this page is/are using the <em>ApCoCoAServer</em>. You will have to start the ApCoCoAServer in order to use it/them.
 
<em>Please note:</em> The function(s) explained on this page is/are using the <em>ApCoCoAServer</em>. You will have to start the ApCoCoAServer in order to use it/them.
 
<par/>
 
<par/>
This command computes a border basis of an almost vanishing ideal for a set of points. A special property of polynomials is, that when evaluated at the original set of points, one obtains approximately <tt>Val</tt>. To obtain a "real" approximate ideal an additional indeterminate has to be added, which represents the coordinates of Val.
+
This command computes a border basis of an almost vanishing ideal for a set of points. A special property of the polynomials is, that when evaluated at the original set of points, one obtains approximately <tt>Val</tt>. To obtain an approximate ideal an additional indeterminate has to be added to each equation, which represents the coordinates of Val.
 
<par/>
 
<par/>
 
The current ring has to be a ring over the rational numbers with a standard-degree
 
The current ring has to be a ring over the rational numbers with a standard-degree
Line 21: Line 22:
 
<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>Tau</em> A positive rational number describing which singular values should be treated as 0 (smaller values for <tt>Tau</tt> lead to bigger errors of the polynomials evaluated at the point set). <tt>Tau</tt> should be in the interval (0,1). As a rule of thumb, <tt>Tau</tt> is the expected percentage of error on the input points. </item>
+
<item>@param <em>Val</em> The time series we want to approximate using <em>Points</em>. </item>
 +
 
 +
<item>@param <em>Epsilon</em> A positive rational number describing the maximal admissible least squares error for a polynomial, which will be considered as almost vanishing.</item>
 +
 
 +
<item>@param <em>Tau</em> A positive rational number describing the maximal admissible least squares error of an approximately interpolating polynomial. (Bigger values for <tt>Tau</tt> lead to bigger errors of the polynomials evaluated at the point set). </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>
 
<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>
Line 30: Line 35:
 
<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> 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. </item>
 
</itemize>
 
</itemize>
  
Line 38: Line 43:
 
Points := Mat([[1,2,3],[4,5,6],[7,11,12]]);
 
Points := Mat([[1,2,3],[4,5,6],[7,11,12]]);
 
Val := Mat([[1],[0.1],[0.2]]);
 
Val := Mat([[1],[0.1],[0.2]]);
R:=Num.EXTABM(Points,Val, 0.1);
+
R:=Num.EXTABM(Points,Val, 0.1, 0.1);
  
 
Dec(-Eval(R[1],Points[1]),3);
 
Dec(-Eval(R[1],Points[1]),3);
Line 47: Line 52:
 
-- CoCoAServer: computing Cpu Time = 0
 
-- CoCoAServer: computing Cpu Time = 0
 
-------------------------------
 
-------------------------------
[<quotes>1.000</quotes> <quotes>0.999</quotes> <quotes>0.999</quotes> <quotes>0.999</quotes> <quotes>0.999</quotes> <quotes>1.000</quotes>]
+
["1.000", "0.999", "0.999", "0.999"]
 
-------------------------------
 
-------------------------------
[<quotes>0.099</quotes> <quotes>0.099</quotes> <quotes>0.099</quotes> <quotes>0.099</quotes> <quotes>0.099</quotes> <quotes>0.099</quotes>]
+
["0.099", "0.099", "0.099", "0.099"]
 
-------------------------------
 
-------------------------------
[<quotes>0.199</quotes> <quotes>0.200</quotes> <quotes>0.199</quotes> <quotes>0.200</quotes> <quotes>0.199</quotes> <quotes>0.199</quotes>]
+
["0.199", "0.200", "0.199", "0.200"]
 
-------------------------------
 
-------------------------------
 
</example>
 
</example>
Line 57: Line 62:
  
 
     <seealso>
 
     <seealso>
       <see>Introduction to CoCoAServer</see>
+
       <see>ApCoCoA-1:Introduction to CoCoAServer|Introduction to CoCoAServer</see>
       <see>Num.SubEXTABM</see>
+
       <see>ApCoCoA-1:Num.SubEXTABM|Num.SubEXTABM</see>
 
     </seealso>
 
     </seealso>
 
     <types>
 
     <types>
Line 67: Line 72:
 
     <key>Num.EXTABM</key>
 
     <key>Num.EXTABM</key>
 
     <key>numerical.EXTABM</key>
 
     <key>numerical.EXTABM</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.EXTABM

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

Syntax

Num.EXTABM(Points:MAT, Val:MAT, Epsilon:RAT, Tau:RAT):Object
Num.EXTABM(Points:MAT, Val:MAT, Epsilon:RAT, Tau: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 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 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 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, which will be considered as almost vanishing.

  • @param Tau A positive rational number describing the maximal admissible least squares error of an approximately interpolating polynomial. (Bigger values for Tau 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.

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.EXTABM(Points,Val, 0.1, 0.1);

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", "0.999", "0.999"]
-------------------------------
["0.099", "0.099", "0.099", "0.099"]
-------------------------------
["0.199", "0.200", "0.199", "0.200"]
-------------------------------

See also

Introduction to CoCoAServer

Num.SubEXTABM