DedSec Project

MATLAB: γραμμικό σύστημα και matrix/element-wise πράξεις — DedSec Project

MATLAB: γραμμικό σύστημα και matrix/element-wise πράξεις Ερώτημα με γνωστή αριθμητική απάντηση Για A= 3 1;1 2 και b= 9;8 θέλουμε Ax=b. Οι εξισώσεις 3x+y=9 και x+2y=8 δίνουν x=2, y=3. Το b…

Ερώτημα με γνωστή αριθμητική απάντηση

Για A=[3 1;1 2] και b=[9;8] θέλουμε Ax=b. Οι εξισώσεις 3x+y=9 και x+2y=8 δίνουν x=2, y=3. Το b είναι column vector· το [9 8] δημιουργεί row και δεν έχει το ίδιο σχήμα στον πολλαπλασιασμό.

A = [3 1; 1 2];
b = [9; 8];
x = A\b;
residual = norm(A*x - b, inf);
assert(norm(x - [2; 3], inf) < 1e-12);
assert(residual < 1e-12);
C = [1 2; 3 4];
assert(isequal(C*C, [7 10; 15 22]));
assert(isequal(C.*C, [1 4; 9 16]));

Διάβασε τις διαστάσεις πριν αλλάξεις operator

Ο matrix multiplication συνδυάζει rows με columns. Ο element-wise multiplication συνδυάζει αντίστοιχα στοιχεία, με τους κανόνες array expansion της υλοποίησης. Εδώ και τα δύο operands είναι 2x2, άρα η διαφορά οφείλεται στην πράξη και όχι σε ασύμβατες διαστάσεις. Στην πρώτη θέση έχουμε 11+23=7 αντί για 1*1=1.

Τι αποδεικνύει το residual

Μικρό residual σημαίνει ότι η υπολογισμένη λύση ικανοποιεί περίπου τις δοσμένες εξισώσεις. Δεν εγγυάται μόνο του μικρό forward error όταν ο πίνακας είναι ill-conditioned. Εξέτασε conditioning και αβεβαιότητα εισόδων πριν αναφέρεις πολλά αξιόπιστα δεκαδικά. Το backslash εκφράζει απευθείας solve και αποφεύγει τη συνήθεια inv(A)*b.

Οριακή διερεύνηση

Άλλαξε το A σε singular πίνακα [1 2;2 4] με ασυνεπές b. Κατάγραψε warnings και αποτέλεσμα από το πραγματικό περιβάλλον αντί να θεωρείς κάθε returned vector μοναδική σωστή λύση. Έπειτα βάλε b=[3;6] και εξήγησε γιατί υπάρχουν άπειρες ακριβείς λύσεις. Έτσι ξεχωρίζεις τη συμπεριφορά λογισμικού από το μαθηματικό ερώτημα.

Runtime και φορητότητα

Τρέξε το script σε MATLAB καταγράφοντας έκδοση. Μεγάλο μέρος του αναγνωρίζεται και στο GNU Octave, αλλά toolboxes, λεπτομέρειες γλώσσας και αριθμητικές υλοποιήσεις δεν ταυτίζονται καθολικά. Οι συγκεκριμένες πράξεις δεν χρειάζονται γραφικά ή ειδικό toolbox. Χωρίς runtime το εργαστήριο είναι μαθηματικά ελέγξιμο, όχι δοκιμασμένο σε εκτέλεση.

Πηγές: mldivide, array and matrix operations.