You are looking at historical revision 32807 of this page. It may differ significantly from its current revision.
Outdated egg!
This is an egg for CHICKEN 3, the unsupported old release. You're almost certainly looking for the CHICKEN 4 version of this egg, if it exists.
If it does not exist, there may be equivalent functionality provided by another egg; have a look at the egg index. Otherwise, please consider porting this egg to the current version of CHICKEN.
grobner-basis
Introductory
This egg is for finding Gröbner Basis for a set of polynomials.
What is a Gröbner Basis? Visit:
http://www.geocities.com/CapeCanaveral/Hall/3131/
Limitation
You need to (define) specify the number of variables for the polynomial set.
Examples
CHICKEN
Version 2.732 - linux-unix-gnu-x86 [ symbolgc manyargs dload ptables applyhook cross ]
(c)2000-2007 Felix L. Winkelmann compiled 2007-11-09 on localhost (Linux)
- 1> (use numbers grobner-basis)
- loading /usr/lib/chicken/3/numbers.scm ...
- loading /usr/lib/chicken/3/numbers-base.so ...
- loading /usr/lib/chicken/3/grobner-basis.so ...
;; define a lexicographic ordered polynomial set with 3 variables
- 2> (define lex-rational-xyz (lex-rational (list "x" "y" "z")))
;; define a polynomial set with two polynomials
- 3> (define S (list '((4 2 0 1) (-7 0 2 0)) '((1 1 1 2) (3 1 0 4)) ) )
;; see the polynomial set in the usual notation
- 4> (polys-string lex-rational-xyz S)
"[(4*x^2*z)+(-7*y^2),(x*y*z^2)+(3*x*z^4)]"
;; solve for Grobner Basis
- 5> (polys-string lex-rational-xyz (gbasis lex-rational-xyz S))
"[(y^3*z)+(3*y^2*z^3),(y^5)+(27*y^2*z^6),(x*y*z^2)+(3*x*z^4),(x^2*z)+(-7/4*y^2)]"
;; see if we can solve the same set of polynomial with graded-reverse-ordering
- 6> (define grevlex-rational-xyz (grevlex-rational (list "x" "y" "z")))
- 7> (polys-string grevlex-rational-xyz (gbasis grevlex-rational-xyz S))
"[(x^2*z)+(-7/4*y^2),(x*z^4)+(1/3*x*y*z^2),(y^2*z^3)+(1/3*y^3*z),(y^4*z^2)+(1/3*y^5),(x^2*y^5)+(21/4*y^6*z)]"
Author
Naruto Canada narutocanada@gmail.com
License
MIT
Contributions
- ;
- ; With code snippets from
- ; comp.lang.scheme
- ; http
- //mitpress.mit.edu/sicp/full-text/book/book.html
- ; http
- //www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html
- ; http
- //www-swiss.ai.mit.edu/~jaffer/SCM.html
- ; bit-scheme
- ;
Requirements
(use numbers)