solve: do not call MEVAL.
[maxima.git] / doc / info / de / affine.de.texi
blob94d5462b4dd517fb527a6dcf50918b4e0c4ad307
1 @c -----------------------------------------------------------------------------
2 @c File        : affine.de.texi
3 @c License     : GNU General Public License (GPL)
4 @c Language    : German
5 @c Translation : Dr. Dieter Kaiser
6 @c Original    : Affine.texi revision 04.02.2008
7 @c Date        : 14.11.2010
8 @c Revision    : 10.05.2011
9 @c 
10 @c This file is part of Maxima -- GPL CAS based on DOE-MACSYMA
11 @c -----------------------------------------------------------------------------
13 @menu
14 * Introduction to Affine::
15 * Functions and Variables for Affine::
16 @end menu
18 @c -----------------------------------------------------------------------------
19 @node Introduction to Affine, Functions and Variables for Affine, affine, affine
20 @section Introduction to Affine
21 @c -----------------------------------------------------------------------------
23 @code{affine} is a package to work with groups of polynomials.
25 @c -----------------------------------------------------------------------------
26 @node Functions and Variables for Affine,  , Introduction to Affine, affine
27 @section Functions and Variables for Affine
28 @c -----------------------------------------------------------------------------
30 @c -----------------------------------------------------------------------------
31 @anchor{fast_linsolve}
32 @deffn {Function} fast_linsolve ([@var{expr_1}, @dots{}, @var{expr_m}], [@var{x_1}, @dots{}, @var{x_n}])
34 Solves the simultaneous linear equations @var{expr_1}, @dots{}, @var{expr_m}
35 for the variables @var{x_1}, @dots{}, @var{x_n}.  Each @var{expr_i} may be an 
36 equation or a general expression; if given as a general expression, it is 
37 treated as an equation of the form @code{@var{expr_i} = 0}.
39 The return value is a list of equations of the form @code{[@var{x_1} = 
40 @var{a_1}, ..., @var{x_n} = @var{a_n}]} where @var{a_1}, @dots{}, @var{a_n} are
41 all free of @var{x_1}, @dots{}, @var{x_n}.
43 @code{fast_linsolve} is faster than @mref{linsolve} for system of equations
44 which are sparse.
46 @code{load("affine")} loads this function.
47 @end deffn
49 @c TODO: POLYSIMP IS NOT DOCUMENTED.
51 @c -----------------------------------------------------------------------------
52 @anchor{grobner_basis}
53 @deffn {Function} grobner_basis ([@var{expr_1}, @dots{}, @var{expr_m}])
55 Returns a Groebner basis for the equations @var{expr_1}, @dots{}, @var{expr_m}.
56 The function @code{polysimp} can then be used to simplify other functions 
57 relative to the equations.
59 @code{polysimp(f)} yields 0 if and only if @var{f} is in the ideal generated by
60 @var{expr_1}, @dots{}, @var{expr_m}, that is, if and only if @var{f} is a
61 polynomial combination of the elements of @var{expr_1}, @dots{}, @var{expr_m}.
63 @code{load("affine")} loads this function.
65 Beispiel:
67 @example
68 (%i1) load("affine")$
70 (%i2) grobner_basis ([3*x^2+1, y*x]);
71 eliminated one
72  . 0 . 0                                   2
73 (%o2)/R/                [- y, - 3 x  - 1]
74 (%i3) polysimp(y^2*x+x^3*9+2);
75 (%o3)/R/                    - 3 x + 2
76 @end example
77 @end deffn
79 @c NEEDS CLARIFICATION IN A SERIOUS WAY
80 @c TODO: CURRENT_SIMPLIFICATIONS AND DOT_SIMPLIFICATIONS IS NOT DOCUMENTED.
82 @c -----------------------------------------------------------------------------
83 @anchor{set_up_dot_simplifications}
84 @deffn  {Function} set_up_dot_simplifications (@var{eqns}, @var{check_through_degree})
85 @deffnx {Function} set_up_dot_simplifications (@var{eqns})
87 The @var{eqns} are polynomial equations in non commutative variables.  The 
88 value of @code{current_variables} is the list of variables used for computing 
89 degrees.  The equations must be homogeneous, in order for the procedure to 
90 terminate.
92 If you have checked overlapping simplifications in @code{dot_simplifications}
93 above the degree of @var{f}, then the following is true: 
94 @code{dotsimp(@var{f})} yields 0 if and only if @var{f} is in the ideal 
95 generated by the equations, i.e., if and only if @var{f} is a polynomial 
96 combination of the elements of the equations.
98 The degree is that returned by @mrefdot{nc_degree} This in turn is influenced 
99 by the weights of individual variables.
101 @code{load("affine")} loads this function.
102 @end deffn
104 @c -----------------------------------------------------------------------------
105 @anchor{declare_weights}
106 @deffn {Function} declare_weights (@var{x_1}, @var{w_1}, @dots{}, @var{x_n}, @var{w_n})
108 Assigns weights @var{w_1}, @dots{}, @var{w_n} to @var{x_1}, @dots{}, @var{x_n}, 
109 respectively.  These are the weights used in computing @mrefdot{nc_degree}
111 @code{load("affine")} loads this function.
112 @end deffn
114 @c -----------------------------------------------------------------------------
115 @anchor{nc_degree}
116 @deffn {Function} nc_degree (@var{p})
118 Returns the degree of a noncommutative polynomial @var{p}.
119 See @mrefdot{declare_weights}
121 @code{load("affine")} loads this function.
122 @end deffn
124 @c NEEDS CLARIFICATION -- TO WHICH EQUATIONS DOES THIS DESCRIPTION REFER ??
126 @c -----------------------------------------------------------------------------
127 @anchor{dotsimp}
128 @deffn {Function} dotsimp (@var{f})
130 Returns 0 if and only if @var{f} is in the ideal generated by the equations, 
131 i.e., if and only if @var{f} is a polynomial combination of the elements of 
132 the equations.
134 @code{load("affine")} loads this function.
135 @end deffn
137 @c -----------------------------------------------------------------------------
138 @anchor{fast_central_elements}
139 @deffn {Function} fast_central_elements ([@var{x_1}, @dots{}, @var{x_n}], @var{n})
141 If @mref{set_up_dot_simplifications} has been previously done, finds the 
142 central polynomials in the variables @var{x_1}, @dots{}, @var{x_n} in the given 
143 degree, @var{n}.
145 For example:
147 @c TODO: DIESES BEISPIEL PRUEFEN. SCHEINT NICHT ZU FUNKTIONIEREN?!
149 @example
150 set_up_dot_simplifications ([y.x + x.y], 3);
151 fast_central_elements ([x, y], 2);
152 [y.y, x.x];
153 @end example
155 @code{load("affine")} loads this function.
156 @end deffn
158 @c THIS IS NOT AT ALL CLEAR
160 @c -----------------------------------------------------------------------------
161 @anchor{check_overlaps}
162 @deffn {Function} check_overlaps (@var{n}, @var{add_to_simps})
164 Checks the overlaps thru degree @var{n}, making sure that you have sufficient
165 simplification rules in each degree, for @mref{dotsimp} to work correctly.
166 This process can be speeded up if you know before hand what the dimension of
167 the space of monomials is.  If it is of finite global dimension, then
168 @code{hilbert} should be used.  If you don't know the monomial dimensions, do
169 not specify a @code{rank_function}.  An optional third argument @code{reset},
170 @code{false} says don't bother to query about resetting things.
172 @code{load("affine")} loads this function.
173 @end deffn
175 @c -----------------------------------------------------------------------------
176 @anchor{mono}
177 @deffn {Function} mono ([@var{x_1}, @dots{}, @var{x_n}], @var{n})
179 Returns the list of independent monomials relative to the current dot 
180 simplifications of degree @var{n} in the variables @var{x_1}, @dots{},
181 @var{x_n}.
183 @code{load("affine")} loads this function.
184 @end deffn
186 @c -----------------------------------------------------------------------------
187 @anchor{monomial_dimensions}
188 @deffn {Function} monomial_dimensions (@var{n})
190 Compute the Hilbert series through degree @var{n} for the current algebra.
192 @code{load("affine")} loads this function.
193 @end deffn
195 @c -----------------------------------------------------------------------------
196 @anchor{extract_linear_equations}
197 @deffn {Function} extract_linear_equations ([@var{p_1}, @dots{}, @var{p_n}], [@var{m_1}, @dots{}, @var{m_n}])
199 Makes a list of the coefficients of the noncommutative polynomials @var{p_1},
200 @dots{}, @var{p_n} of the noncommutative monomials @var{m_1}, @dots{},
201 @var{m_n}.  The coefficients should be scalars.  Use @code{list_nc_monomials} 
202 to build the list of monomials.
204 @code{load("affine")} loads this function.
205 @end deffn
207 @c -----------------------------------------------------------------------------
208 @anchor{list_nc_monomials}
209 @deffn  {Function} list_nc_monomials ([@var{p_1}, @dots{}, @var{p_n}])
210 @deffnx {Function} list_nc_monomials (@var{p})
212 Returns a list of the non commutative monomials occurring in a polynomial 
213 @var{p} or a list of polynomials @var{p_1}, @dots{}, @var{p_n}.
215 @code{load("affine")} loads this function.
216 @end deffn
218 @c THIS FUNCTION DOESN'T SEEM TO BE APPROPRIATE IN USER-LEVEL DOCUMENTATION
219 @c PRESERVE THIS DESCRIPTION PENDING FURTHER DECISION
220 @c @defun pcoeff (poly monom [variables-to-exclude-from-cof (list-variables monom)])
221 @c 
222 @c This function is called from Lisp level, and uses internal poly format.
223 @c @example
224 @c 
225 @c CL-MAXIMA>>(setq me (st-rat #$x^2*u+y+1$))
226 @c (#:Y 1 1 0 (#:X 2 (#:U 1 1) 0 1))
227 @c 
228 @c CL-MAXIMA>>(pcoeff me (st-rat #$x^2$))
229 @c (#:U 1 1)
230 @c @end example
231 @c @noindent
232 @c 
233 @c Rule: if a variable appears in monom it must be to the exact power,
234 @c and if it is in variables to exclude it may not appear unless it was
235 @c in monom to the exact power.  (pcoeff pol 1 ..) will exclude variables
236 @c like substituting them to be zero.
237 @c 
238 @c @end defun
240 @c THIS FUNCTION DOESN'T SEEM TO BE APPROPRIATE IN USER-LEVEL DOCUMENTATION
241 @c PRESERVE THIS DESCRIPTION PENDING FURTHER DECISION
242 @c @defun new-disrep (poly)
243 @c 
244 @c From Lisp this returns the general Maxima format for an arg which is
245 @c in st-rat form:
246 @c 
247 @c @example
248 @c (displa(new-disrep (setq me (st-rat #$x^2*u+y+1$))))
249 @c 
250 @c        2
251 @c y + u x  + 1
252 @c @end example
253 @c 
254 @c @end defun
256 @c -----------------------------------------------------------------------------
257 @anchor{all_dotsimp_denoms}
258 @defvr {Option variable} all_dotsimp_denoms
259 Default value: @code{false}
261 When @code{all_dotsimp_denoms} is a list, the denominators encountered by
262 @mref{dotsimp} are appended to the list.  @code{all_dotsimp_denoms} may be
263 initialized to an empty list @code{[]} before calling @code{dotsimp}.
265 By default, denominators are not collected by @code{dotsimp}.
266 @end defvr
268 @c --- End of file affine.de.texi ----------------------------------------------