Στα μαθηματικά, ιδίως στη γραμμική άλγεβρα και τη θεωρία πινάκων, η διανυσματοποίηση ενός πίνακα είναι ένας γραμμικός μετασχηματισμός που μετατρέπει τον πίνακα σε διάνυσμα. Συγκεκριμένα, η διανυσματοποίηση ενός m × n πίνακα A, που συμβολίζεται με vec(A), είναι το mn × 1 διάνυσμα στήλης που προκύπτει από τη στοίβαξη των στηλών του πίνακα A η μία πάνω στην άλλη:
Εδώ, αντιπροσωπεύει το στοιχείο στην i-th γραμμή και j-th στήλη του A, και ο δείκτης υποδηλώνει την αναστροφή. Η διανυσματοποίηση εκφράζει, μέσω των συντεταγμένων, τον ισομορφισμό μεταξύ αυτών (δηλαδή των πινάκων και των διανυσμάτων) ως διανυσματικούς χώρους.
Παραδείγματος χάριν, για τον πίνακα 2×2 , η διανυσματοποίηση είναι .
Η σύνδεση μεταξύ της διανυσματοποίησης του A και της διανυσματοποίησης της αντιμετάθεσής του δίνεται από τον πίνακα αντιμετάθεσης.
Συμβατότητα με γινόμενα Κρόνεκερ
Η διανυσματοποίηση χρησιμοποιείται συχνά μαζί με το γινόμενο Κρόνεκερ για να εκφράσει τον πολλαπλασιασμό πινάκων ως γραμμικό μετασχηματισμό σε πίνακες. Συγκεκριμένα,
για τους πίνακες A, B, και C των διαστάσεων k×l, l×m, και m×n.[note 1] Παραδείγματος χάριν, αν (ο προσκείμενος ενδομορφισμός της άλγεβρας Λι gl(n, C) όλων των n×n πινάκων με μιγαδικές καταχωρήσεις), τότε , όπου είναι ο n×n πίνακας ταυτότητας.
Υπάρχουν δύο άλλες χρήσιμες διατυπώσεις:
Γενικότερα, έχει αποδειχθεί ότι η διανυσματοποίηση είναι μια αυτοπροσάρτηση στη μονοειδή κλειστή δομή οποιασδήποτε κατηγορίας πινάκων[1].
Συμβατότητα με γινόμενο Χανταμάρντ
Η διανυσματοποίηση είναι ένας ομομορφισμός άλγεβρας από το χώρο των πινάκων n × n με το γινόμενο Χανταμάρντ (entrywise) στο Cn2 με το γινόμενο Χανταμάρντ:
Συμβατότητα με εσωτερικά γινόμενα
Η διανυσματοποίηση είναι ένας μοναδιαίος μετασχηματισμός από τον χώρο των πινάκων n×n με το εσωτερικό γινόμενο Φρομπένιους (ή Χίλμπερτ - Σμιντ) στον Cn2:
Συμβατότητα με εσωτερικά γινόμενα όπου ο δείκτης † δηλώνει τη συζυγή αναστροφή.
Διανυσματοποίηση ως γραμμικό άθροισμα
Η διανυσματοποίηση του πίνακα μπορεί να γραφτεί ως γραμμικό άθροισμα. Έστω X ένας m × n πίνακας που θέλουμε να διανυσματοποιήσουμε, και έστω ei το i-th κανονικό διάνυσμα βάσης για τον n-διάστατο χώρο, δηλαδή . Έστω Bi ένας σύνθετος πίνακας (mn) × m που ορίζεται ως εξής:
Ο Bi αποτελείται από n σύνθετους πίνακες μεγέθους m × m, στοιβαγμένους κατά στήλες, και όλοι αυτοί οι πίνακες είναι όλοι μηδενικοί εκτός από τον i-th, ο οποίος είναι ένας m × m πίνακας ταυτότητας Im.
Τότε η διανυσματική έκδοση του X μπορεί να εκφραστεί ως εξής:
Ο πολλαπλασιασμός του X με ei εξάγει την i-th στήλη, ενώ ο πολλαπλασιασμός με Bi την τοποθετεί στην επιθυμητή θέση στο τελικό διάνυσμα.
Εναλλακτικά, το γραμμικό άθροισμα μπορεί να εκφραστεί χρησιμοποιώντας το γινόμενο Κρόνεκερ:
Ημι-διανυσματοποίηση
Για έναν συμμετρικό πίνακα A, το διάνυσμα vec(A) περιέχει περισσότερες πληροφορίες από όσες είναι απολύτως απαραίτητες, αφού ο πίνακας καθορίζεται πλήρως από τη συμμετρία μαζί με το κάτω τριγωνικό τμήμα, δηλαδή τις n(n + 1)/2 καταχωρήσεις πάνω και κάτω από την κύρια διαγώνιο. Για τέτοιους πίνακες, η ημι-διανυσματοποίηση είναι μερικές φορές πιο χρήσιμη από τη διανυσματοποίηση. Η ημι-διανυσματοποίηση, vech(A'), ενός συμμετρικού n × n πίνακα A είναι το n(n + 1)/2 × 1 διάνυσμα στήλης που προκύπτει από τη διανυσματοποίηση μόνο του κάτω τριγωνικού τμήματος του A:
Παραδείγματος χάριν, για τον πίνακα 2×2 matrix , η ημι-διανυσματοποίηση είναι .
Υπάρχουν μοναδικοί πίνακες που μετατρέπουν τη ημι-διανυσματοποίηση ενός πίνακα στη διανυσματοποίησή του και αντίστροφα και ονομάζονται, αντίστοιχα, πίνακας διπλασιασμού και πίνακας απαλοιφής.
Γλώσσα προγραμματισμού
Οι γλώσσες προγραμματισμού που υλοποιούν πίνακες μπορεί να έχουν εύκολα μέσα για διανυσματοποίηση.
Στο Matlab/GNU Octave ένας πίνακας A μπορεί να διανυσματοποιηθεί με τη μέθοδο A(:).
Το GNU Octave επιτρέπει επίσης τη διανυσματοποίηση και την ημι-διανυσματοποίηση με vec(A) και vech(A) αντίστοιχα. Η Julia διαθέτει επίσης τη συνάρτηση vec(A).
Στην Python οι πίνακες NumPy υλοποιούν τη μέθοδο flatten,[note 1] ενώ στην R το επιθυμητό αποτέλεσμα μπορεί να επιτευχθεί μέσω των συναρτήσεων c() ή as.vector(). Στην R, η συνάρτηση vec() του πακέτου 'ks' επιτρέπει τη διανυσματοποίηση και η συνάρτηση vech() που υλοποιείται και στα δύο πακέτα 'ks' και 'sn' επιτρέπει τη ημι-διανυσματοποίηση[2][3][4].
Εφαρμογές
Η διανυσματοποίηση χρησιμοποιείται στον υπολογισμό πινάκων και στις εφαρμογές του για τον καθορισμό π.χ. των ροπών τυχαίων διανυσμάτων και πινάκων, της ασυμπτωτικής, καθώς και των Ιακωβιανών και Εσσιανών πινάκων[5]. Χρησιμοποιείται επίσης στην τοπική ευαισθησία και τη στατιστική διάγνωση[6].
↑Macedo, H. D.; Oliveira, J. N. (2013). «Typing Linear Algebra: A Biproduct-oriented Approach». Science of Computer Programming78 (11): 2160–2191. doi:10.1016/j.scico.2012.07.012.
↑Magnus, Jan· Neudecker, Heinz (2019). Matrix differential calculus with applications in statistics and econometrics. New York: John Wiley. ISBN9781119541202.
↑Liu, Shuangzhe; Leiva, Victor; Zhuang, Dan; Ma, Tiefeng; Figueroa-Zúñiga, Jorge I. (March 2022). «Matrix differential calculus with applications in the multivariate linear model and its diagnostics» (στα αγγλικά). Journal of Multivariate Analysis188: 104849. doi:10.1016/j.jmva.2021.104849.
↑ 1,01,1The identity for row-major vectorization is .
Janko Bračič, Kolobar aritmetičnih funkcij (Ring of arithmetical functions), (Obzornik mat, fiz. 49 (2002) 4, pp. 97–108) (MSC (2000) 11A25)
Iwaniec and Kowalski, Analytic number theory, AMS (2004).