Πρόσθεση πινάκων
Στην γραμμική άλγεβρα, η πρόσθεση δύο πινάκων ίδιων διαστάσεων είναι η πράξη που δίνει ως αποτέλεσμα ένα πίνακα με στοιχεία το άθροισμα των στοιχείων στις αντίστοιχες θέσεις των δύο πινάκων. Πιο συγκεκριμένα, για πίνακες και διαστάσεων η πρόσθεσή τους δίνει τον πίνακα με στοιχεία[1]:106-107[2]:142-143[3]:32[4]:44-46
- ,
για κάθε και . Δηλαδή,
Παραδείγματα
[Επεξεργασία | επεξεργασία κώδικα]Δίνονται τα παρακάτω παραδείγματα πρόσθεσης πινάκων διαστάσεων , και :
Ιδιότητες
[Επεξεργασία | επεξεργασία κώδικα]Η πρόσθεση σε πίνακες με στοιχεία σε ένα σώμα συνιστούν μία αβελιανή ομάδα, δηλαδή ισχύουν οι εξής ιδιότητες:[1]: 107-108 [2]: 142-143 [3]: 32 [4]: 44-46
- Το ουδέτερο στοιχείο της πρόσθεσης πινάκων είναι ο μηδενικός πίνακας.
Απόδειξη |
Αρκεί να δείξουμε ότι για κάθε πίνακα , έχουμε ότι , για τον μηδενικό πίνακα. Για κάθε και , έχουμε ότι χρησιμοποιώντας ότι το είναι το ουδέτερο στοιχείο της πρόσθεσης στοιχείων. Αντίστοιχα, |
- Η πρόσθεση είναι αντιμεταθετική, δηλαδή για κάθε πίνακες διαστάσεων .
Απόδειξη |
Για κάθε και , έχουμε ότι χρησιμοποιώντας την αντιμεταθετική ιδιότητα της πρόσθεσης των στοιχείων. |
- Η πρόσθεση είναι προσεταιριστική, δηλαδή για κάθε πίνακες , , διαστάσεων .
Απόδειξη |
Για κάθε και , έχουμε ότι χρησιμοποιώντας την προσεταιριστική ιδιότητα των στοιχείων. |
- Κάθε πίνακας έχει έναν αντίθετο πίνακα ως προς την πρόσθεση, που συμβολίζεται ως . Πιο συγκεκριμένα, ο πίνακας , έχει στοιχεία , τα αντίθετα του ως προς την πρόσθεση στοιχείων.
Απόδειξη |
Αρκεί να δείξουμε ότι για τον μηδενικό πίνακα διαστάσεων . Για κάθε και , έχουμε ότι |
Υπολογισμός
[Επεξεργασία | επεξεργασία κώδικα]Στην πληροφορική ο βασικός αλγόριθμος που υλοποιείται με δύο εμφολευμένους βρόγχους είναι βέλτιστος (για έναν επεξεργαστή), καθώς χρειάζεται χρόνο , όσα και τα στοιχεία του αποτελέσματος. Για παράδειγμα, στην γλώσσα προγραμματισμού Java, η παρακάτω συνάρτηση υλοποιεί την πρόσθεση δύο πινάκων:
public class MatrixAddition {
public static double[][] add(double[][] a, double b[][]) {
int n = a.length, m = a[0].length;
double c[][] = new double[n][m];
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
c[i][j] = a[i][j] + b[i][j];
}
}
return c;
}
}
Ο αλγόριθμος αυτός μπορεί να γίνει παράλληλος, μοιράζοντας τις προσθέσεις στους διαθέσιμους επεξεργαστές. Στην πράξη έχει αναπτυχθεί υλικό υπολογιστή ειδικό για την γρήγορη πρόσθεση (και γενικότερα πράξεις) πινάκων. Το πιο κοινό τέτοιο υλικό είναι οι κάρτες γραφικών, που υπάρχουν στους περισσότερους μοντέρνους υπολογιστές και αναλαμβάνουν πράξεις σχετικές με τα γραφικά, τα νευρωνικά δίκτυα και άλλα.[5] Άλλα υλικά υπολογιστών περιλαμβάνουν τις SIMD εντολές στις κάρτες επεξεργαστών, που επιτρέπουν την πρόσθεση διανυσμάτων επομένως και την πρόσθεση πινάκων.[6]
Δείτε επίσης
[Επεξεργασία | επεξεργασία κώδικα]Παραπομπές
[Επεξεργασία | επεξεργασία κώδικα]- ↑ 1,0 1,1 Εξαρχακος, Θεοδοωρος Γ. (1989). Γραμμική Άλγεβρα. Αθήνα: Αθανασόπουλος-Παπαδάμης Ο.Ε.
- ↑ 2,0 2,1 Καδιανακης, Ν.· Καρανασιος, Σ. (2014). Γραμμική άλγεβρα, αναλυτική γεωμετρία και εφαρμογές. Αθήνα. ISBN 960-91725-0-4.
- ↑ 3,0 3,1 Χαραλάμπους, Χ.· Φωτιάδης, Α. (2015). Μία εισαγωγή στη γραμμική άλγεβρα για τις θετικές επιστήμες. Αθήνα: ΣΕΑΒ. ISBN 978-960-603-273-8.
- ↑ 4,0 4,1 Δασκαλόπουλος, Δημήτριος Γ. (1975). Εφηρμοσμένη Γραμμική Άλγεβρα: Τεύχος Πρώτον. Αθήνα.
- ↑ Simon, Tyler A. «Implement matrix addition on a gpu using cuda». UMBC Computer Science and Electrical Engineering. Ανακτήθηκε στις 2 Σεπτεμβρίου 2022.
- ↑ «Code Sample: Vector Add – An Intel® oneAPI DPC++/C++ Compiler Example». Intel. Ανακτήθηκε στις 2 Σεπτεμβρίου 2022.