Ασκήσεις στην Numpy: Λύση γραμμικών συστημάτων

Γενική οδηγία:

Αποθηκεύστε τα αρχεία που σας δίνονται στον υπολογιστή σας και χρησιμοποιώντας την υλοποίηση της python που προτιμάτε απαντήστε στην ερώτηση.

Numpy

Για να γίνει η συνηθισμένη πράξη εσωτερικό γινόμενο της γραμμικής άλγεβρας, ανάμεσα σε 2 μονοδιάστατα array a και b της Numpy πρέπει να χρησιμοποιήσουμε με τη συνάρτηση dot, π.χ. numpy.dot(a,b) .
  • Φτιάξτε μια συνάρτηση η οποία να δέχεται ως όρισμα 2 διανύσματα a, b, τύπου array και να ελέγχει αν αυτά είναι ορθογώνια και να τυπώνει ένα σχετικό μήνυμα. Στον κώδικά σας δεν θα έχει σημασία ποιό είναι το μέγεθος των διανυσμάτων, αρκεί να είναι το ίδιο. Numpy7-vertical.py
    	
  • Για να γίνει η συνηθισμένη πράξη εσωτερικό γινόμενο της γραμμικής άλγεβρας, ανάμεσα σε δύο 2-διάστατα array a και b της Numpy πρέπει να χρησιμοποιήσουμε τη συνάρτηση της Numpy dot, ανάμεσα στον ανάστροφο του a και το b, \( a^Tb\). To διάνυσμα ανάστροφος το παίρνουμε με το a.T. Θεωρήσετε ότι τα διανύσματα του \(\mathbb{R}^m\) να είναι 2-διάστατα array της μορφής m γραμμών και 1 στήλης. Φτιάξτε μια συνάρτηση η οποία να δέχεται ως όρισμα 2 διανύσματα a, b, τύπου array 2-διάστατα και να ελέγχει αν αυτά είναι ορθογώνια και να τυπώνει ένα σχετικό μήνυμα. Στον κώδικά σας δεν θα έχει σημασία ποιό είναι το μέγεθος των διανυσμάτων, αρκεί να είναι το ίδιο. Numpy7-vertical2.py
    	
  • Θεωρείστε 2 πίνακες \(n\times n\) και φτιάξτε μια συνάρτηση που να ελέγχει αν οι πίνακες είναι αντίστροφοι ή όχι. Αυτό μπορεί να γίνει αν πολλαπλασιάσετε τους δύο πίνακες (χρησιμοποιήστε την dot) και πάρετε το μοναδιαίο πίνακα \(n\times n\). Για να ελέγξουμε αν δύο arrays a,b είναι ίσα χρησιμοποιούμε την εντολή της numpy, array_equal(a,b). Ελέγξτε τη συνάρτηση σας για τους πίνακες $$A=\left( \begin{array}{cc} 2 &0\\0 &2 \end{array}\right),\quad B=\left( \begin{array}{cc} 1/2 &0\\0 &1/2 \end{array}\right), $$ και για τους $$A=\left( \begin{array}{cc} 2 &0\\0 &2 \end{array}\right),\quad B=\left( \begin{array}{cc} 0 &2\\2 &0 \end{array}\right). $$ Numpy7-check-inv.py
    	
  • Φτιάξτε μια συνάρτηση που να ελέγχει αν πολλάπλασιάσουμε τη λύση x ενός γραμμικού συστήματος που παίρνουμε με τη solve της βιβλιοθήκης numpy.linalg, με τον πίνακα A λαμβάνουμε το b. Numpy7-check-solve.py
    	
  • Χρησιμοποιήστε τη βιβλιοθήκη matplotlib για να σχεδιάσετε τη γραφική παράσταση της συνάρτησης \(f(x)=xsin(10/x)\) στο διάστημα (0.1,1). Χρησιμοποιήστε όσα σημεία νομίζετε. Προσθέστε λεζάντες στους άξονες και στο γράφημα. Η βιβλιοθήκες matplotlib και η pylab έχουν όμοιες εντολές. Numpy7-plot.py