Μετάβαση στο περιεχόμενο

Πρόσθεση πινάκων

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια

Στην γραμμική άλγεβρα, η πρόσθεση δύο πινάκων ίδιων διαστάσεων είναι η πράξη που δίνει ως αποτέλεσμα ένα πίνακα με στοιχεία το άθροισμα των στοιχείων στις αντίστοιχες θέσεις των δύο πινάκων. Πιο συγκεκριμένα, για πίνακες και διαστάσεων η πρόσθεσή τους δίνει τον πίνακα με στοιχεία[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. 1,0 1,1 Εξαρχακος, Θεοδοωρος Γ. (1989). Γραμμική Άλγεβρα. Αθήνα: Αθανασόπουλος-Παπαδάμης Ο.Ε. 
  2. 2,0 2,1 Καδιανακης, Ν.· Καρανασιος, Σ. (2014). Γραμμική άλγεβρα, αναλυτική γεωμετρία και εφαρμογές. Αθήνα. ISBN 960-91725-0-4. 
  3. 3,0 3,1 Χαραλάμπους, Χ.· Φωτιάδης, Α. (2015). Μία εισαγωγή στη γραμμική άλγεβρα για τις θετικές επιστήμες. Αθήνα: ΣΕΑΒ. ISBN 978-960-603-273-8. 
  4. 4,0 4,1 Δασκαλόπουλος, Δημήτριος Γ. (1975). Εφηρμοσμένη Γραμμική Άλγεβρα: Τεύχος Πρώτον. Αθήνα. 
  5. Simon, Tyler A. «Implement matrix addition on a gpu using cuda». UMBC Computer Science and Electrical Engineering. Ανακτήθηκε στις 2 Σεπτεμβρίου 2022. 
  6. «Code Sample: Vector Add – An Intel® oneAPI DPC++/C++ Compiler Example». Intel. Ανακτήθηκε στις 2 Σεπτεμβρίου 2022.