### 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]``