### 1.27.1 Βάση Gröbner: gbasis

gbasis παίρνει τουλάχιστον δύο ορίσματα

- ένα διάνυσμα πολυωνύμων με πολλές μεταβλητές
- ένα διάνυσμα με τα ονόματα μεταβλητών,

Προαιρετικά ορίσματα μπορεί να χρησιμοποιηθούν για να ορίσουμε τη διάταξη και τους αλγορίθμους. Από προεπιλογή, η διάταξη είναι λεξικογραφική (αναφορικά με την λίστα των διατεταγμένων ονομάτων των μεταβλητών) και τα πολυώνυμα γράφονται σε φθίνουσα σειρά βαθμών αναφορικά με την διάταξη Για παράδειγμα, η έξοδος θα είναι ...+x2 y4 z3+x2 y3 z4+... εάν το δεύτερο όρισμα είναι [x,y,z] επειδή (2,4,3)>(2,3,4) αλλά η έξοδος θα είναι ...+x2 y3z4+x2 y4 z3+... εάν το δεύτερο όρισμα είναι [x,z,y].
gbasis επιστρέφει μια βάση Gröbner του πολυωνυμικού ιδεώδους που παράγεται από αυτά τα πολυώνυμα.

Ιδιότητα
Εάν I είναι ένα ιδανικό και εάν (Gk)k ∈ K είναι μια βάση Gröbner του ιδανικού I τότε, εάν F είναι ένα μη μηδενικό πολυώνυμο στο I, το μεγαλύτερο μονώνυμο του F διαιρείται από το μεγαλύτερο μονώνυμο ενός εκ των πολυωνύμων Gk της βάσης. Μ’ άλλα λόγια, εάν κάνετε μια Ευκλέιδεια διαίρεση του F≠ 0 με το αντίστοιχο Gk, πάρτε το υπόλοιπο αυτής της διαίρεσης, επαναλάβετε το ίδιο και ούτω καθεξής, σε κάποιο σημείο θα πάρετε υπόλοιπο μηδέν.

Είσοδος :

gbasis([2*x*y-y`^`2,x`^`2-2*x*y],[x,y])

Έξοδος :

[4*x`^`2+-4*y`^`2,2*x*y-y`^`2,-(3*y`^`3)]

Όπως αναφέραμε πριν, η gbasis μπορεί να έχει περισσότερα από δύο ορίσματα :

- plex (λεξικογραφική μόνο) είναι η διάταξη από προεπιλογή. Άλλες επιλογές για να ορίσουμε την διάταξη των μονωνύμων είναι: tdeg (ολικού βαθμού — total degree — και μετά λεξικογραφική διάταξη), revlex (ολικού βαθμού — total degree — και μετά αντίστροφη λεξικογραφική διάταξη),
- with_cocoa=true ή with_cocoa=false, εάν θέλετε να χρησιμοποιήσετε την βιλιοθήκη CoCoA για να υπολογίσετε την βάση Gröbner (συνιστάται, αλλά απαιτείται η εγκατάσταση της CoCoA).
- with_f5=true ή with_f5=false εάν θέλετε να χρησιμοποιήσετε τον αλγόριθμο F5 της βιβλιοθήκης CoCoA. Σε αυτή την περίπτωση η καθορισθείσα διάταξη δεν χρησιμοποιείται (τα πολυώνυμα είναι ομογενοποιημένα).

Είσοδος :

gbasis([x1+x2+x3,x1*x2+x1*x3+x2*x3,x1*x2*x3-1], [x1,x2,x3],tdeg,with_cocoa=false)

Έξοδος

`[x3^3-1,-x2^2-x2*x3-x3^2,x1+x2+x3]`