### 1.46.7 Χαρακτηριστικό πολυώνυμο με την χρήση του αλγορίθμου Hessenberg : pcar_hessenberg

pcar_hessenberg παίρνει ως όρισμα έναν τετραγωνικό πίνακα A μεγέθους n και προαιρετικά το όνομα μιας συμβολικής μεταβλητής.
pcar_hessenberg επιστρέφει το χρακτηριστικό πολυώνυμο P του A γραμμένο σαν λίστα των συντελεστών του, εάν κανένα όνομα μεταβλητής δεν παρέχεται, ή γραμμένο σαν παράσταση ως προς το όνομα της μεταβλητής που παρέχεται σαν δεύτερο όρισμα, όπου

P(x)=det(xI−A)

Το χαρακτηριστικό πολυώνυμο υπολογίζεται χρησιμοποιώντας τον αλγόριθμο Hessenberg (πληροφορίες στο διαδίκτυο) το οποίο είναι πιο αποτελεσματικό (O(n3) προσδιοριστικός χρόνος) εάν οι συντελεστές του A είναι σε ένα πεπερασμένο σώμα ή χρησιμοποιούν μια πεπερασμένη αναπαράσταση όπως οι προσεγγιστικοί αριθμητικοί συντελεστές. Ωστόσο, αξίζει να σημειωθεί πως αυτός ο αλγόριθμος συμπεριφέρεται κακώς εάν οι συντελεστές είναι για παράδειγμα στο ℚ.
Είσοδος :

pcar_hessenberg([[4,1,-2],[1,2,-1],[2,1,0]] % 37)

Έξοδος :

[1 ,-6% 37,12 % 37,-8 % 37]

Είσοδος :

pcar_hessenberg([[4,1,-2],[1,2,-1],[2,1,0]] % 37,x)

Έξοδος :

x`^`3-6 %37 *x`^`2+12 % 37 *x-8 % 37

Επομένως, το χαρακτηριστικό πολυώνυμο του [[4,1,-2],[1,2,-1],[2,1,0]] στο ℤ/37 ℤ είναι

x3−6x2+12x−8