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)

Version History