Difference between revisions of "ApCoCoA-1:NC.FindPolys"

From ApCoCoAWiki
(New page: <command> <title>NC.FindPolys</title> <short_description> Find polynomials with specified indeterminates from a LIST of polynomials. </short_description> <syntax> NC.FindPolys(Alphabet:ST...)
 
Line 5: Line 5:
 
</short_description>
 
</short_description>
 
<syntax>
 
<syntax>
NC.FindPolys(Alphabet:STRING, Polynomials:LIST):LIST
+
NC.FindPolys(Polys:LIST, Inds:LIST):LIST
 
</syntax>
 
</syntax>
 
<description>
 
<description>
 +
Please set non-commutative polynomial ring (via the command <ref>Use</ref>) before calling this function. For more information, please check the relevant commands and functions.
 
<itemize>
 
<itemize>
<item>@param <em>Alphabet</em>: a STRING, which is the specified alphabet.</item>
+
<item>@param <em>Polys</em>: a LIST of non-commutative polynomials. Each polynomial is represented as a LIST of LISTs, and each element in every inner LIST involves only one indeterminate or none (a constant). For example, the polynomial <tt>f=2x[2]y[1]x[2]^2-9y[2]x[1]^2x[2]^3+5</tt> is represented as F:=[[2x[1],y[1],x[2]^2], [-9y[2],x[1]^2,x[2]^3], [5]]. The zero polynomial <tt>0</tt> is represented as the empty LIST [].
<item>@param <em>Polynomials</em>: a LIST of polynomials. Note that each polynomial is represented as a LIST of monomials, which are pairs of the form [C, W] where W is a word in <tt>&lt;X&gt;</tt> and C is the coefficient of W. Each word in <tt>&lt;X&gt;</tt> is represented as a STRING. For example, the word <tt>xy^2x</tt> is represented as <quotes>xyyx</quotes>, and the identity is represented as the empty string <quotes></quotes>. Thus, the polynomial <tt>F=xy-y+1</tt> in <tt>K&lt;x,y&gt;</tt> is represented as F:=[[1,<quotes>xy</quotes>], [-1, <quotes>y</quotes>], [1,<quotes></quotes>]]. The zero polynomial <tt>0</tt> is represented as the empty LIST [].</item>
+
</item>
<item>@return: a LIST of polynomials which is the intersection of Polynomials and <tt>K&lt;Alphabet&gt;</tt>.</item>
+
<item>@param <em>Inds</em>: a LIST of specified indeterminates.</item>
 +
<item>@return: a LIST of non-commutative polynomials, which are in Inds.</item>
 
</itemize>
 
</itemize>
 
<example>
 
<example>
Line 50: Line 52:
 
</description>
 
</description>
 
<seealso>
 
<seealso>
<see>Introduction to CoCoAServer</see>
+
<see>Use</see>
 
</seealso>
 
</seealso>
 
<types>
 
<types>
 
<type>apcocoaserver</type>
 
<type>apcocoaserver</type>
 +
<type>polynomial</type>
 
<type>non_commutative</type>
 
<type>non_commutative</type>
<type>polynomial</type>
 
 
</types>
 
</types>
 
<key>ncpoly.FindPolys</key>
 
<key>ncpoly.FindPolys</key>

Revision as of 12:30, 29 April 2013

NC.FindPolys

Find polynomials with specified indeterminates from a LIST of polynomials.

Syntax

NC.FindPolys(Polys:LIST, Inds:LIST):LIST

Description

Please set non-commutative polynomial ring (via the command Use) before calling this function. For more information, please check the relevant commands and functions.

  • @param Polys: a LIST of non-commutative polynomials. Each polynomial is represented as a LIST of LISTs, and each element in every inner LIST involves only one indeterminate or none (a constant). For example, the polynomial f=2x[2]y[1]x[2]^2-9y[2]x[1]^2x[2]^3+5 is represented as F:=[[2x[1],y[1],x[2]^2], [-9y[2],x[1]^2,x[2]^3], [5]]. The zero polynomial 0 is represented as the empty LIST [].

  • @param Inds: a LIST of specified indeterminates.

  • @return: a LIST of non-commutative polynomials, which are in Inds.

Example

Polynomials:=[[[1,<quotes>a</quotes>], [1,<quotes>b</quotes>], [1,<quotes>c</quotes>]], [[1,<quotes>b</quotes>]]];
NC.FindPolynomials(<quotes>abc</quotes>, Polynomials);

[[[1, <quotes>a</quotes>], [1, <quotes>b</quotes>], [1, <quotes>c</quotes>]], [[1, <quotes>b</quotes>]]]
-------------------------------
NC.FindPolynomials(<quotes>a</quotes>, Polynomials);

[ ]
-------------------------------
NC.FindPolynomials(<quotes>b</quotes>, Polynomials);

[[[1, <quotes>b</quotes>]]]
-------------------------------
NC.FindPolynomials(<quotes>ab</quotes>, Polynomials);

[[[1, <quotes>b</quotes>]]]
-------------------------------
NC.SetX(<quotes>txyz</quotes>); 
NC.SetOrdering(<quotes>ELIM</quotes>); -- ELIM will eliminate t, x, y, z one after another
F1 := [[1,<quotes>xx</quotes>], [-1,<quotes>yx</quotes>]];
F2 := [[1,<quotes>xy</quotes>], [-1,<quotes>ty</quotes>]];
F3 := [[1,<quotes>xt</quotes>], [-1, <quotes>tx</quotes>]];
F4 := [[1,<quotes>yt</quotes>], [-1, <quotes>ty</quotes>]];
G := [F1, F2,F3,F4]; 
Gb := NC.GB(G); -- compute Groebner basis of &lt;G&gt; w.r.t. ELIM
Gb;
NC.FindPolynomials(<quotes>xyz</quotes>,Gb); -- compute Groebner basis of the intersection of &lt;G&gt; and K&lt;x,y,z&gt; w.r.t. ELIM

[[[1, <quotes>xx</quotes>], [2, <quotes>yx</quotes>]], [[1, <quotes>ty</quotes>], [2, <quotes>xy</quotes>]], [[1, <quotes>yt</quotes>], [2, <quotes>xy</quotes>]], [[1, <quotes>tx</quotes>], [2, <quotes>xt</quotes>]], 
[[1, <quotes>xyx</quotes>], [2, <quotes>yyx</quotes>]], [[1, <quotes>xyy</quotes>], [2, <quotes>yxy</quotes>]], [[1, <quotes>yxt</quotes>], [2, <quotes>yyx</quotes>]]]
-------------------------------
[[[1, <quotes>xx</quotes>], [2, <quotes>yx</quotes>]], [[1, <quotes>xyx</quotes>], [2, <quotes>yyx</quotes>]], [[1, <quotes>xyy</quotes>], [2, <quotes>yxy</quotes>]]]
-------------------------------

See also

Use