. ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Αριθµητική επίλυση γραµµικών συστηµάτων Στην παρούσα ενότητα µελετούµε αριθµητικές µεθόδους επίλυσης γραµµικών συστηµάτων, συστηµάτων δηλαδή της µορφής = b = b = b (.) µε άγνωστους ( i, i=,, ),έχονταςωςγνωστούςτουςσυντελεστέςτωναγνώστων ij, i,j=,,, και οµοίως γνωστούς τους σταθερούς όρους b i. Χρησιµοποιώντας το συµβολισµό των πινάκων, ορίζουµε τον πίνακα των συντελεστών των αγνώστων A = (.) τον πίνακα-στήλη των σταθερών όρων b b b = b (.) και, τον πίνακα των αγνώστων µεταβλητών X = (.4)
. ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ οπότε το γραµµικό σύστηµα (.) γράφεται στην µορφή A X = b (.5) Το σύστηµα (.5) καλείται και γραµµικό σύστηµα επί, δηλαδή εξισώσεων µε αγνώστους. Η θεωρία επίλυσης των συστηµάτων αυτών είναι ιδιαίτερα ανεπτυγµένη. Ωστόσο, το πρόβληµα παρουσιάζει σηµαντικό ενδιαφέρον και στην αριθµητική ανάλυση, διότι,αν η διάσταση του συστήµατος είναι µεγάλη (σε τυπικές εφαρµογές µπορεί να έχουµε =, ή, ή ), τότε είναι αναγκαία η ανάπτυξη υπολογιστικών αλγόριθµων ώστε το πρόβληµα ναµπορεί να επιλυθεί από τον Η/Υ. Είναι γνωστό ότι αν ο πίνακας Α είναι αντιστρέψιµος, δηλαδή έχει ορίζουσα διάφορη του µηδενός, τότε το σύστηµα (.5) έχει τη µοναδική λύση X = A b (.6) η οποία υπολογίζεται µε τη βοήθεια οριζουσών. Αν όµως det(a)=, τότε το πλήθος των λύσεων προσδιορίζεται από τον πίνακα b. Αν ο b είναι µηδενικός (έχει µόνο µηδενικά στοιχεία), τότε το σύστηµα έχειτηµηδενική λύση = == =, αλλά και άλλες λύσεις που εξαρτώνται από µία ή περισσότερες ελεύθερες παραµέτρους (π.χ. τη µεταβλητή ).Αν όµως ο b έχει µη µηδενικά στοιχεία, τότε θα πρέπει να ελεγχθούν οι ορίζουσες των πινάκων A i = i i i b b b i i i (.7) που προκύπτουν από αντικατάσταση της i-στήλης του πίνακα Α µε την στήλη των σταθερών όρων. Αν και οι det(ai) είναι µηδέν έχουµε πάλι λύσεις που εξαρτώνται από µία ή περισσότερες ελεύθερες παραµέτρους, αλλιώς το σύστηµα είναι αδύνατο. Γιατί ο µηδενισµός της ορίζουσας είναι σηµαντικός; ιότι σηµαίνει ότι µία ή περισσότερες από τις γραµµές της είναι γραµµικός συνδυασµός ορισµένων εκ των υπολοίπων γραµµών. Αυτό σηµαίνει ότι η αντίστοιχη εξίσωση εκφράζει γεωµετρικά ένα γραµµικό υποχώρο (ευθεία, επίπεδο, κ.λ.π.) που είναι παράλληλος προς την τοµή των υποχώρων που ορίζουν οι άλλες εξισώσεις. Αν ο υποχώρος και η τοµή είναι παράλληλοι αλλά δεν ταυτίζονται, τότε δεν έχουν κοινά σηµεία τοµής, οπότε έχουµε αδύνατο σύστηµα, ενώ αν ταυτίζονται έχουµε απειρία λύσεων (κάθε αρχική συνθήκη πάνω στην τοµή είναιλύση). Παραδείγµατος χάριν, το σύστηµα Χ
. ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 4 4 = = 5 (.8) ικανοποιεί τη συνθήκη det(a)=, όπως εύκολα διαπιστώνεται κάνοντας τις πράξεις. Παρατηρούµε ότι οι δύο ευθείες που ορίζονται από την πρώτη και τη δεύτερη εξίσωση αντίστοιχα = = 5 (.9) είναι παράλληλες (έχουν την ίδια κλίση), πλην όµως δεν ταυτίζονται, διότι διαφέρουν κατά το σταθερό όρο. Αν όµως είχαµε τοσύστηµα 4 = = 4 (.) τότε θα παίρναµε τη µοναδική ευθεία = (.) η οποία θα όριζε απειρία λύσεων, αφού κάθε σηµείο της ευθείας είναι µία λύση. Οι λύσεις αυτές εξαρτώνται από µία ελεύθερη παράµετρο (εδώ την ). Συστήµατα αυτού του είδους δηµιουργούν δυσκολίες από τη σκοπιά της αριθµητικής επίλυσης, διότι ένα µικρό σφάλµα στρογγύλευσης είναι δυνατόν να αλλοιώσει τις τιµές των συντελεστών των αγνώστων έτσι ώστε το σύστηµα ναµετατραπεί τεχνητά σε σύστηµα µε µοναδική λύση, όπως π.χ. στην περίπτωση.999 = = 4. (.) που διαφέρει από το σύστηµα (.) στην τιµή του συντελεστή, στο τρίτο δεκαδικό ψηφίο, και οµοίως στην τιµή του σταθερού όρου. Το σύστηµα (.) έχει µοναδική λύση = 4 =
. ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 5 ενώ το ελάχιστα διαφορετικό σύστηµα 4. = = 4. (.) έχει την πολύ διαφορετική λύση = = Η "αστάθεια" της λύσης οφείλεται στο γεγονός ότι οι δύο ευθείες που ορίζονται από τις δύο εξισώσεις είναι σχεδόν παράλληλες, οπότε µικρές διαφορές στην κλίση επηρεάζουν σηµαντικά το σηµείο τοµής των ευθειών, που ορίζει τη λύση κάθε συστήµατος. Τέτοια συστήµατα ονοµάζοντα "ασταθή" ή "άσχηµα ορισµένα", και η επίλυσή τους µε αριθµητικές µεθόδους πρέπει να γίνει µε ιδιαίτερη προσοχή στον περιορισµό της διάδοσης των σφαλµάτων στρογγύλευσης, τα οποία είναι δυνατό να οδηγήσουν σε λύσεις πλασµατικές.. Αλγόριθµος του Guss Εστω ένα γραµµικό σύστηµα της µορφής (.5) που έχει µοναδική λύση δοσµένη από την εξίσωση (.6). Η εύρεση της λύσης µε τηµέθοδο των οριζουσών είναι χρονοβόρα και ασύµφορη, εκτός αν το σύστηµα έχει πολύ µικρή διάσταση. Ο συνηθέστερος τρόπος επίλυσης του συστήµατος αυτού είναι ο αλγόριθµος του Guss, οοποίος περιγράφεται από τα εξής βήµατα: ) Ορίζουµε τονεπαυξηµένο πίνακα των συντελεστών και των σταθερών όρων b b = b όπου τα στοιχεία των σταθερών όρων b,b,, b, έχουν µετονοµαστεί σε,,,. ) ξεκινώντας µε οδηγό στοιχείο (pivot elemet) το ο στοιχείοτηςδιαγωνίου( ), εκτελούµε µία γραµµοπράξη µεταξύ της πρώτης γραµµής και κάθε µίας από τις επόµενες γραµµές κατά τέτοιο τρόπο ώστε το στοιχείο της κάθε γραµµής ακριβώς κάτωαπότοοδηγόστοιχείοναγίνεταιίσοµε µηδέν. Εστω η γραµµή j µε j>. Για να γίνει µηδέν το στοιχείο j θα πρέπει να εκτελεστεί η γραµµοπράξη
. ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 6 j j c (.4) όπου c = j (.5) Ακριβώς η ίδια πράξη πρέπει να γίνει και µε κάθεάλλοστοιχείοτηςγραµµής j και το αντίστοιχο στοιχείο του στη γραµµή και ίδια στήλη. Εχουµε δηλαδή τις γραµµοπράξεις For j = to c - j / For k= to jk jk c* k Ας σηµειωθείότιοιανωτέρωγραµµοπράξεις αφήνουν ανεπηρέαστη την ορίζουσα του πίνακα (γιατί;), ενώ αν είχε επιλεγεί ως γραµµοπράξη η jk c jk k (.6) µε c = j τότε ο νέος πίνακας θα είχε ορίζουσα που θα διέφερε από την ορίζουσα του παλαιού πίνακα πριν τη γραµµοπράξη κατά έναν παράγοντα c. Μετά την εκτέλεση των πράξεων, οεπαυξηµένος πίνακας έχει τώρα τη µορφή όπου τα στοιχεία ij δεν έχουν τις ίδιες τιµές όπως προηγουµένως, αλλά τις νέες, µετασχηµατισµένες τιµές, τις οποίες αποκτούν µετά την εκτέλεση όλων των γραµµοπράξεων. ) Συνεχίζουµε τηνωςάνωδιαδικασίαµε νέοοδηγόστοιχείοτοδεύτεροστοιχείοτης διαγωνίου. Οι γραµµοπράξεις εδώ θα αφορούν µόνο τις γραµµές κάτω από το
. ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 7 οδηγό στοιχείο (j>) και θα έχουν ως σκοπό να µηδενίσουν τα στοιχεία ακριβώς κάτω από το οδηγό στοιχείο. Γενικά, όταν δουλεύουµε µε οδηγό στοιχείο το i-οστό στοιχείο της διαγωνίου (ii), οι γραµµοπράξεις αφορούν τις γραµµές µε (j>i) και µηδενίζουν τα στοιχεία ακριβώς κάτω από το οδηγό στοιχείο. Αυτό επιτυγχάνεται µε τοεξήςγενικό επαναληπτικό σχήµα: For i= to For j = i to c - ji / ii For k=i to jk jk c* ik /(επιλογή οδηγού στοιχείου πάνω στη διαγώνιο) /(επιλογή γραµµής κάτω από οδηγό στοιχείο) /(υπολογισµός συντελεστή γραµµοπράξης) /(κάθε στοιχείο της συγκεκριµένης γραµµής) Τονίζουµε ξανάτησηµασία των διαφόρων δεικτών στο ανωτέρο επαναληπτικό σχήµα. δείκτης i(από ως ), διατρέχει τη διαγώνιο και επιλέγει το οδηγό στοιχείο ii δείκτης j(από iως ), προσδιορίζει σε ποιά γραµµή τουπίνακα(γραµµή j) θα εκτελεσθεί η γραµµοπράξη, ξεκινώντας από την πρώτη γραµµή αµέσως µετά τη γραµµή του οδηγού στοιχείου, από τη γραµµή i δηλαδή. δείκτης k(από i ως ), προσδιορίζει ποιο στοιχείο της δεδοµένης γραµµής j θα µετασχηµατισθεί. Κανονικά, για να µετασχηµατιστεί όλη η γραµµή j θα έπρεπε ο δείκτης k να παίρνει τιµές από ως. Ωστόσο, τα στοιχεία jk της γραµµής j µε k<i, όσα δηλαδή είναι σε στήλες αριστερά του οδηγού στοιχείου δεν επηρεάζονται από τη γραµµοπράξη, διότι τα αντίστοιχα στοιχεία ik στη γραµµή του οδηγού στοιχείου είναι µηδέν από τις προηγούµενες επαναλήψεις. Εποµένως, αρκεί η γραµµοπράξη να γίνεται σε κάθε στοιχείο jk της γραµµής j µε k>=i. 4) Μετά την εκτέλεση όλων των πράξεων, οεπαυξηµένος πίνακας λαµβάνει τη λεγόµενη τριγωνική µορφή όπου όλα τα στοιχεία κάτω από τη διαγώνιο είναι ίσα µε µηδέν. Η κατάσταση αυτή του πίνακα επιτρέπει να υπολογιστούν απευθείας οι λύσεις µε τη διαδικασία γνωστή ως πίσω αντικατάσταση (bckwrd substitutio). Ξεκινάµε από την τελευταία γραµµή, στην οποία η εµφανιζόµενη µετασχηµατισµένη εξίσωση θα έχει µόνο άγνωστο τον, µε συντελεστή, οπότε βρίσκουµε κατευθείαν
. ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 8 = (.7) Με δεδοµένη την τιµή του, αντικαθιστούµε τώρα στην αµέσως προηγούµενη εξίσωση και βρίσκουµε τον -. Στην συνέχεια αντικαθιστούµε στην αµέσως προηγούµενη κ.ο.κ.. Ετσι βρίσκουµε διαδοχικά = = ( ( ) ) (.8) και γενικά i = ( i ii ik k = i k ) (.9) Εποµένως, κάθε νέος άγνωστος i υπολογίζεται από τη σχέση (.9) ως συνάρτηση των συντελεστών, του σταθερού όρου της αντίστοιχης εξίσωσης και των τιµών των µεταβλητών k, µε k>i, οι οποίες έχουν υπολογισθεί προηγουµένως. Ηδιαδικασίααυτή αποδίδεται αλγοριθµικά από το γενικό επαναληπτικό σχήµα For i= to step - sum ; For k=i to sum=sum ik * k i (/ ii )*( i - sum) Στο σχήµα αυτό η µεταβλητή sum υπολογίζει το άθροισµα της σχέσης (.9) µέσω του εσωτερικού βρόγχου, ενώ ο εξωτερικός βρόγχος διατρέχει όλους τους αγνώστους i, κινούµενος προς τα πίσω, δηλαδή i=, -, -,, Παράδειγµα Θα λύσουµε µε τηµέθοδο Guss το σύστηµα 9 6 5 (.)
. ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 9 οστάδιο: απαλοιφή Guss Σηµειώνουµε δίπλα σε κάθε γραµµή τον συντελεστή c της γραµµοπράξης jk = jk c* k, ενώ θέτουµε σεπαρένθεσηµέσα στον πίνακα το οδηγό στοιχείο. Εχουµε διαδοχικά τις απαλοιφές ().5.5..5.5 5.5.5.5.5 ~ 9 7.4. (.5).5 4.6.5.4 ~ 5.4487.5.5 ( 4.6).5.4.68696 ~ 5.8687 οστάδιο: πίσω αντικατάσταση Στη συνέχεια, µε τη διαδικασία τις πίσω αντικατάστασης βρίσκουµε τιςρίζες 4 =. =. =. =. που αποτελούν και τη µοναδικήλύσητουσυστήµατος.. Μερική οδήγηση Στην προηγούµενη διαδικασία, µπορεί να προκύψει πρόβληµα, αν κατά τύχη το οδηγό στοιχείο της διαγωνίου, σε κάποιο βήµα, προκύψει ίσο µε µηδέν, οπότε ο υπολογισµός του συντελεστή c µέσω του οποίου θα γίνει η απαλοιφή Guss των αποκάτω γραµµών είναι αδύνατος. Αλλά, ακόµη και αν το οδηγό στοιχείο δεν είναι µηδέν, είναι δυνατόν να έχει µία πολύ µικρή τιµή, π.χ... Τότε υπάρχουν δύο περιπτώσεις: είτε υποψιαζόµαστε ότι στην πραγµατικότητα είναι µηδέν µεσφάλµα στρογγύλευσης, είτε,
. ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 4 ακόµη και αν είναι πραγµατικό, τότε ο συντελεστής c= ji / ii θα προκύψει ιδιαίτερα µεγάλος. Αυτό έχει ως αποτέλεσµα ναδιαδίδονταιµεγάλα σφάλµατα στρογγύλευσης στις µετέπειτα πράξεις. Η προσπάθειά µας είναι να κρατήσουµε τηναπόλυτητιµή του οδηγού στοιχείου όσο γίνεται µεγαλύτερη, ώστε να περιορίζονται τα σφάλµατα στους υπολογισµούς. Για να το επιτύχουµε, σε κάθε βήµα επιλέγουµε το επόµενο οδηγό στοιχείο ως εξής: βρισκόµενοι π.χ. στο δεύτερο στοιχείο της διαγωνίου ελέγχουµε καιόλατακάτωαπό αυτό στοιχεία της ίδιας στήλης. Αν ένα από τα στοιχεία επόµενης γραµµής, έστω π.χ. το στοιχείο της 4ης γραµµής, βρεθεί να έχει µεγαλύτερη απόλυτη τιµή από τα άλλα, τότε εναλλάσσουµε τηγραµµή αυτή µε τηγραµµή του οδηγού στοιχείου (π.χ. τις γραµµές και 4 µεταξύ τους) και τις επανονοµάζουµε γραµµές 4 και αντίστοιχα. Η εσωτερική αυτή εναλλαγή των γραµµών, η οποία εξασφαλίζει ότι το οδηγό στοιχείο έχει τη µέγιστη δυνατή απόλυτη τιµή από τα στοιχεία της ίδιας στήλης κάτω απ' αυτό, ονοµάζεται µερική οδήγηση κατά γραµµές. Η µερική οδήγηση προσφέρει σε αρκετές περιπτώσεις επαρκή προστασία έναντι της διάδοσης των σφαλµάτων στρογγύλευσης. Μια επέκταση της µερικής οδήγησης είναι οέλεγχοςτουµέγιστου κατ' απόλυτη τιµή στοιχείου κατά µήκος τόσο της στήλης όσο και της γραµµής του οδηγού στοιχείου. Η στρατηγική αυτή ονοµάζεται πλήρης οδήγηση. ίνουµε τώρατοναλγόριθµο Guss µε µερική οδήγηση σε τυπική γλώσσα. Αλγόριθµος Guss µε µερική οδήγηση begi vribles: double: [],[,],c,sum,m,sw,det it:,i,j,k,im; for i= to m fbs([i,i]) im i for j=i to if(bs([j,i])>m) the m fbs([j,i]); im j; edif for k= to ; sw [i,k]; [i,k] [im,k]; [im,k] sw;
. ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 4 for j=i to c -[j,i]/[i,i] for k=i to [j,k] c*[i,k][j,k] det for i= to det det*[i,i] prit "det =",det if(det=) the prit "udetermied/impossible" else for i= to step - sum for k=i to sum sum[i][k]*[k] [i] (/[i,i])*([i,]-sum) prit [i] edif ed. Επισηµαίνουµε ότι η τιµή της µεταβλητής det, στον ως άνω αλγόριθµο, πιθανόν διαφέρει κατά το πρόσηµο από την πραγµατική τιµή της ορίζουσας του πίνακα των συντελεστών, µια και στη διαδικασία της οδήγησης έχουµε αλλαγή του προσήµου της ορίζουσας σε κάθε εναλλαγή δύο γραµµών µεταξύ των οποίων παρεµβάλλονται γραµµές άρτιου πλήθους..4 Πόσες πράξεις απαιτούνται στον αλγόριθµοτουguss; Οι περισσότερες πράξεις απαιτούνται στην προς τα εµπρος διαδικασία της τριγωνοποίησης του πίνακα, όπως φαίνεται στο ακόλουθο παράδειγµα. Εστω ο επαυξηµένος πίνακας 4 Χ 5 του παραδείγµατος της προηγούµενης παραγράφου. Τότε το οδηγό στοιχείο θα χρησιµοποιηθεί προκειµένου να πραγµατοποιηθούν γραµµοπράξεις µε τα στοιχεία των αποκάτω γραµµών. Κάθε γραµµή έχει5 στοιχεία, εποµένως θα πραγµατοποιηθούν Χ5 συνολικά πράξεις που κάθε µία αναλύεται σε ένα γινόµενο και µία πρόσθεση σύµφωνα µετογενικόσχήµα
. ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 4 c jk ik jk µε i=, j από ως 4, και k από ως 5. Οµοίως, δουλεύοντας µε τοδεύτεροοδηγόστοιχείο έχουµε γραµµές από κάτω και σε κάθε µία γραµµή επιτελείταιµία σύνθετη πράξη µε 4 στοιχεία, σύµφωνα µε το ίδιο σχήµα c jk ik jk όπου τώρα έχουµε i=, j από ως 4, και k από ως 5. Προχωρώντας µε τον ίδιο τρόπο καταρτίζουµε τελικά τον πίνακα του πλήθους των πράξεων που απαιτείται σε κάθε απαλοιφή, διατρέχοντας ένα ένα τα οδηγά στοιχεία: Οδηγό στοιχείο Πολλαπλασιασµοί Προσθέσεις ο 5 5 ο 4 4 ο 4ο Σύνολο 6 6 ιαβάζοντας τον πίνακα από κάτω προς τα πάνω, τα ζεύγη αριθµών, 4, 5, κ.λ.π. µπορούν να αποδοθούν από το γενικό κανόνα: (i-) (i) µε i=,,4 Γενικά, αν έχουµε τον επαυξηµένο πίνακα X, τότε το σύνολο των σύνθετων πράξεων είναι το άθροισµα των όρων (i-) (i) = i - µε i=,,,. Χρησιµοποιώντας τη γνωστή σειρά ( )( ) = i = (.) 6 βρίσκουµε i = i= ( )( ) 6 ( i ) = ( i ) = = 6 6 i = και τελικά έχουµε
. ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 4 5 6 (.) το πλήθος πράξεις. Ο κυρίαρχος όρος της σειράς, /, προσδιορίζει την ταχύτητα (τάξη) της µεθόδου απαλοιφής του Guss. Η κυβική τάξη µας δείχνει ότι η µέθοδος είναι ιδιαίτερα απαιτητική σε χρόνο. Παραδείγµατος χάριν, αν σε κάποια εφαρµογή δεκαπλασιάσουµε το πλήθος των εξισώσεων (και των αγνώστων), τότε ο χρόνος που απαιτείται για να περατωθεί ο αλγόριθµος θα χιλιαπλασιασθεί! Επίσης, όσο µεγαλύτερο το πλήθος, τόσο µεγαλύτερο θα είναι το σωρρευτικό σφάλµα, το οποίο όµως ακολουθεί ηπιότερο νόµο αύξησης από κυβική..5 Εφαρµογές: Υπολογισµός οριζουσών και αντίστροφων πινάκων.5. Εύρεση οριζουσών Παρατηρώντας την "τριγωνική" µορφή που λαµβάνει ο επαυξηµένος πίνακας µετά από την περάτωση της "εµπρός" διαδικασίας απαλοιφής παρατηρούµε ότι ο πίνακας των συντελεστών των αγνώστων µόνο A = έχει τέτοια µορφή ώστε να µπορούµε να υπολογίσουµε απευθείας την τιµή της ορίζουσάς του, ως το γινόµενο των διαγώνιων όρων: det( A) = (.) Παραδείγµατος χάριν, oεπαυξηµένος πίνακας του συστήµατος
. ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 44 5 6 9 µετά την απαλοιφή Guss ήλθε στη µορφή.8687 5.68696.4 4.6.5.5.5 Εποµένως, για την ορίζουσα του πίνακα των συντελεστών = A βρίσκουµε 8..68696 4.6) (.5) ( ) det( = = A β) Εύρεση αντίστροφου πίνακα Ορισµός.: ο τετραγωνικός πίνακας Β (X) ονοµάζεται αντίστροφος του τετραγωνικού πίνακα Α (X), αν και µόνο αν ισχύει = = = I A B B A (.4) Αποδεικνύεται ότι ο αντίστροφος ενός πίνακα, αν υπάρχει, είναι µοναδικός. Ο αντίστροφος πίνακας Β µπορεί να βρεθεί απευθείας από την εξίσωση (.4) µε την εξής απλή παρατήρηση: αν γράψουµε αναλυτικά τα στοιχεία των δύο πινάκων
. ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 45 b b b b b b b b = b (.5) τότε για κάθε στήλη των άγνωστων στοιχείων του πίνακα Β µπορούµε να δηµιουργήσουµε έναγραµµικό σύστηµα εξισώσεων (X), που θα έχει ως σταθερούς όρους τους όρους της αντίστοιχης στήλης του ταυτοτικού πίνακα. Θα έχουµε δηλαδή b b = b (.6) b b = b (.7) και οµοίως για όλες τις στήλες. Επιλύοντας τώρα τα γραµµικά αυτά συστήµατα, υπολογίζονται µία µία οι στήλες των άγνωστων στοιχείων του πίνακα Β, που αποτελεί τον αντίστροφο του πίνακα Α. Παράδειγµα Εστω ο πίνακας Χ A = 4 Ζητείται ο αντίστροφός του. Λύση Γράφουµε απευθείας σε ένα επαυξηµένο πίνακα και τα τρία γραµµικά συστήµατα εξισώσεων που προκύπτουν από τις τρεις στήλες των άγνωστων στοιχείων του πίνακα Β και τις αντίστοιχες στήλες του ταυτοτικού πίνακα.
. ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 46 4 και µε τοναλγόριθµο Guss βρίσκουµε 4 ~ 5/ / / 5 / / 5 / 5 απ' όπου, µετά την πίσω αντικατάσταση βρίσκουµε B = 6 8 9 5.6 Αλγόριθµος Guss - Jord Ο αλγόριθµος των Guss - Jord χρησιµοποιείται επίσης αντί του αλγόριθµου του Guss. Με δεδοµένο τον επαυξηµένο πίνακα των συντελεστών και των σταθερών όρων b b = b ξεκινούµε µε οδηγόστοιχείοξανά(pivot elemet) το ο στοιχείοτηςδιαγωνίου( ), εκτελούµε µία γραµµοπράξη µεταξύ της πρώτης γραµµής και κάθε µίας από τις επόµενες γραµµές κατά τέτοιο τρόπο ώστε το στοιχείο της κάθε γραµµής ακριβώς κάτωαπότοοδηγόστοιχείοναγίνεταιίσοµε µηδέν. Μετά την εκτέλεση των πράξεων, οεπαυξηµένος πίνακας έχει τώρα τη µορφή
. ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 47 όπως ακριβώς και στον αλγόριθµο τουguss, όπου α ij είναιοιτιµές των στοιχείων µετά την εκτέλεση των γραµµοπράξεων. Συνεχίζοντας τώρα µε νέοοδηγόστοιχείοτοδεύτεροστοιχείοτηςδιαγωνίου, εκτελούµε τις γραµµοπράξεις όχι µόνο µε τις γραµµές κάτω από το οδηγό στοιχείο (j>) αλλά και µε τις γραµµές πάνω από το οδηγό στοιχείο (j<), οι οποίες συνακόλουθα µηδενίζουν τα στοιχεία στην ίδια στήλη, ακριβώς δηλαδή κάτω και πάνω από το οδηγό στοιχείο. Γενικά, όταν δουλεύουµε µε οδηγό στοιχείο το i-οστό στοιχείο της διαγωνίου ( ii), οι γραµµοπράξεις αφορούν τις γραµµές µε (j>i) και µηδενίζουν τα στοιχεία ακριβώς κάτω από το οδηγό στοιχείο, και τις γραµµές µε (j<i) οπότε µηδενίζουν τα στοιχεία ακριβώς πάνω από το οδηγό στοιχείο. Αυτό επιτυγχάνεται µε το εξής γενικό επαναληπτικό σχήµα: For i= to For j = to if(j!=i) the c - ji / ii For k=i to jk jk c* ik edif /(επιλογή οδηγού στοιχείου στη διαγώνιο) /(επιλογή όλων των γραµµών) /(εκτός της γραµµής του οδηγού στοιχείου) /(υπολογισµός συντελεστή γραµµοπράξης) /(κάθε στοιχείο της γραµµής) Μετά την εκτέλεση όλων των πράξεων, ο επαυξηµένος πίνακας λαµβάνει τη λεγόµενη διαγώνια µορφή όπου όλα τα στοιχεία εκτός από τα στοιχεία της διαγωνίου και τους σταθερούς όρους είναι ίσα µε µηδέν. Η κατάσταση αυτή του πίνακα επιτρέπει να υπολογιστούν απευθείας οι λύσεις, χωρίς να χρειάζεται πίσω αντικατάσταση. Εχουµε κατευθείαν i = i ii (.8) για κάθε i που αποδίδεται αλγοριθµικά µετογενικόεπαναληπτικόσχήµα For i= to i =(/ ii )
. ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 48.6. Μερική οδήγηση στον αλγόριθµο Guss - Jord Στην προηγούµενη διαδικασία, µπορεί να προκύψει ξανά πρόβληµα, αν κατά τύχη το οδηγόστοιχείοτηςδιαγωνίου, σε κάποιο βήµα, προκύψει ίσο µε µηδέν. Εφαρµόζουµε εποµένως τη διαδικασία της µερικής οδήγησης κατά γραµµές. Ωστόσο, υπάρχει εδώ µία ασυµµετρία: στη µερική οδήγηση ελέγχουµε µόνο τις γραµµές που είναι κάτω από το οδηγό στοιχείο, έστωκαιανοιγραµµοπράξεις εκτελούνται µε τιςγραµµές τόσο πάνω όσο και κάτω από το οδηγό στοιχείο. Αυτό γίνεται διότι αν µία γραµµήπάνωαπό το οδηγό στοιχείο εναλλαγεί µε τη γραµµή του οδηγού στοιχείου, τότε πάυουν όλα τα στοιχείακάτωαπότοπροηγούµενο οδηγό στοιχείο να είναι µηδενικά. Εναλλακτικά, µπορούµε ναεφαρµόσουµε οδήγηση κατά στήλες. Παραθέτουµε τώρα έναν τυπικό αλγόριθµο Guss - Jord µε µερική οδήγηση κατά γραµµές. Αλγόριθµος Guss -Jord µε µερική οδήγηση begi vribles: double: [],[,],c,sum,m,sw,det it:,i,j,k,im; for i= to m fbs([i,i]) im i for j=i to if(fbs([j,i])>m) the m fbs([j,i]); im j; edif for k= to ; sw [i,k]; [i,k] [im,k]; [im,k] sw; for j= to if(j!=i) the c -[j,i]/[i,i] for k=i to [j,k] c*[i,k][j,k] edif
. ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 49 det for i= to det det*[i,i] prit "det =",det if(det=) the prit "udetermied/impossible" else for i= to [i] [i,]/[i,i] prit [i] edif