### 1.31.17 Αναγωγή γραμμών σε κλιμακωτή μορφή στο ℤ/pℤ : `rref`

`rref` (`row reduction to echelon form`) αναγάγει τις γραμμές του πίνακα, με συντελεστές στο ℤ/pℤ, σε κλιμακωτή μορφή.

Αυτό μπορεί να χρησιμοποιηθεί για να λύσουμε ένα γραμμικό σύστημα εξισώσεων με συντελεστές στο ℤ/pℤ, αναγράφοντάς το σε μορφή πίνακα :

`A*X=B`

`rref` παίρνει σαν όρισμα τον επαυξημένο πίνακα του συστήματος (ο πίνακας που παίρνουμε αν επαυξήσουμε τον πίνακα `A` στα δεξιά με το διάνυσμα στήλης `B`).
`rref` επιστρέφει έναν πίνακα `[A1,B1]` : ο `A1` έχει 1 στην κύρια διαγώνιό του, και μηδενικά έξω από αυτήν, και η λύση στο ℤ/pℤ, του συστήματος :

`A1*X=B1`

είναι ίδια, με την λύση του :

`A*X=B`

Παράδειγμα: Να λυθεί στο ℤ/13ℤ

⎧
⎨
⎩

x + 2 · y | = | 9
3 · x +10 · y | = | 0

Είσοδος:

`rref([[1, 2, 9]%13,[3,10,0]%13])`

ή :

`rref([[1, 2, 9],[3,10,0]])%13`

Έξοδος :

`[[1%13,0%13,3%13],[0%13,1%13,3%13]]`

και επομένως η λύση είναι `x=3%13` και `y=3%13`.