Μέθοδος ορθοκανονικοποίησης των Gram–Schmidt

Από testwiki
Αναθεώρηση ως προς 10:11, 26 Μαΐου 2024 από τον imported>TheGreekEditor2023 (growthexperiments-addlink-summary-summary:2|1|0)
(διαφορά) ← Παλαιότερη αναθεώρηση | Τελευταία αναθεώρηση (διαφορά) | Νεότερη αναθεώρηση → (διαφορά)
Μετάβαση στην πλοήγηση Πήδηση στην αναζήτηση
Η τροποποιημένη μέθοδος Gram-Schmidt εκτελείται σε τρία γραμμικά ανεξάρτητα, μη ορθογώνια διανύσματα μιας βάσης για το R3. Πατήστε στην εικόνα για λεπτομέρειες. Η τροποποίηση εξηγείται στην ενότητα Αριθμητική σταθερότητα αυτού του άρθρου.

Η διανυσματική προβολή ενός διανύσματος 𝐯 σε ένα μη μηδενικό διάνυσμα 𝐮 ορίζεται ως εξής

proj𝐮(𝐯)=𝐯,𝐮𝐮,𝐮𝐮,

όπου 𝐯,𝐮 δηλώνει το εσωτερικό γινόμενο των διανυσμάτων 𝐮 και 𝐯. Αυτό σημαίνει ότι proj𝐮(𝐯) είναι η ορθογώνια προβολή του 𝐯 στην ευθεία που διατρέχει το 𝐮. Αν 𝐮 είναι το μηδενικό διάνυσμα, τότε proj𝐮(𝐯) ορίζεται ως το μηδενικό διάνυσμα.

Η μέθοδος Gram-Schmidt

Η τροποποιημένη μέθοδος Gram-Schmidt εκτελείται σε τρία γραμμικά ανεξάρτητα, μη ορθογώνια διανύσματα μιας βάσης για το R'3. Κάντε κλικ στην εικόνα για λεπτομέρειες. Η τροποποίηση εξηγείται στην ενότητα Αριθμητική σταθερότητα αυτού του άρθρου.


Η διανυσματική προβολή ενός διανύσματος 𝐯 σε ένα μη μηδενικό διάνυσμα 𝐮 ορίζεται ως εξής proj𝐮(𝐯)=𝐯,𝐮𝐮,𝐮𝐮, όταν 𝐯,𝐮 συμβολίζει το εσωτερικό γινόμενο των διανυσμάτων 𝐮 και 𝐯. Αυτό σημαίνει ότι proj𝐮(𝐯) είναι η ορθογώνια προβολή του 𝐯 στην ευθεία που διατρέχει το 𝐮. Αν 𝐮 είναι το μηδενικό διάνυσμα, τότε proj𝐮(𝐯) ορίζεται ως το μηδενικό διάνυσμα.

Με βάση τα διανύσματα Πρότυπο:Mvar 𝐯1,,𝐯k η μέθοδος Gram-Schmidt ορίζει τα διανύσματα 𝐮1,,𝐮k as follows: 𝐮1=𝐯1,𝐞1=𝐮1𝐮1𝐮2=𝐯2proj𝐮1(𝐯2),𝐞2=𝐮2𝐮2𝐮3=𝐯3proj𝐮1(𝐯3)proj𝐮2(𝐯3),𝐞3=𝐮3𝐮3𝐮4=𝐯4proj𝐮1(𝐯4)proj𝐮2(𝐯4)proj𝐮3(𝐯4),𝐞4=𝐮4𝐮4    𝐮k=𝐯kj=1k1proj𝐮j(𝐯k),𝐞k=𝐮k𝐮k.

Η ακολουθία Πρότυπο:Math είναι το απαιτούμενο σύστημα ορθογώνιων διανυσμάτων και τα κανονικοποιημένα διανύσματα Πρότυπο:Math σχηματίζουν ένα ορθοκανονικό σύνολο. Ο υπολογισμός της ακολουθίας Πρότυπο:Math είναι γνωστός ως ορθογωνιοποίηση Gram-Schmidt, και ο υπολογισμός της ακολουθίας Πρότυπο:Math είναι γνωστός ως ορθοκανονικοποίηση Gram-Schmidt.

Για να ελεγχθεί ότι αυτοί οι τύποι δίνουν μια ορθογώνια ακολουθία, υπολογίζουμε πρώτα 𝐮1,𝐮2 αντικαθιστώντας τον παραπάνω τύπο για το u2:: παίρνουμε μηδέν. Στη συνέχεια χρησιμοποιούμε αυτό για να υπολογίσουμε 𝐮1,𝐮3 πάλι αντικαθιστώντας τον τύπο για το u3: παίρνουμε μηδέν. Η γενική απόδειξη γίνεται με μαθηματική επαγωγή.

Η μέθοδος Gram-Schmidt εφαρμόζεται επίσης σε μια γραμμικά ανεξάρτητη μετρήσιμη άπειρη ακολουθία Πρότυπο:Math. Το αποτέλεσμα είναι μια ορθογώνια (ή ορθοκανονική) ακολουθία Πρότυπο:Math τέτοια ώστε για φυσικό αριθμό n: το αλγεβρικό εύρος των Πρότυπο:Math είναι το ίδιο με αυτό των Πρότυπο:Math.

Εάν η μέθοδος Gram-Schmidt εφαρμόζεται σε μια γραμμικά εξαρτημένη ακολουθία, εξάγει το διάνυσμα Πρότυπο:Math στο i-th βήμα, υποθέτοντας ότι το Πρότυπο:Math είναι ένας γραμμικός συνδυασμός των Πρότυπο:Math. Εάν πρόκειται να δημιουργηθεί μια ορθοκανονική βάση, τότε ο αλγόριθμος θα πρέπει να εξετάσει για μηδενικά διανύσματα στην έξοδο και να τα απορρίψει, διότι κανένα πολλαπλάσιο ενός μηδενικού διανύσματος δεν μπορεί να έχει μήκος 1. Ο αριθμός των διανυσμάτων που εξάγονται από τον αλγόριθμο θα είναι τότε η διάσταση του χώρου που καλύπτεται από τις αρχικές εισόδους.

Μια παραλλαγή της μεθόδου Gram-Schmidt που χρησιμοποιεί τη διαπεραστική αναδρομή και εφαρμόζεται σε μια (ενδεχομένως μη αναρίθμητη) άπειρη ακολουθία διανυσμάτων (vα)α<λ δίνει ένα σύνολο ορθοκανονικών διανυσμάτων (uα)α<κ με κλ έτσι ώστε για κάθε αλ, η ολοκλήρωση της έκτασης της {uβ:β<min(α,κ)} είναι η ίδια με εκείνη του Πρότυπο:Nowrap. Ειδικότερα, όταν εφαρμόζεται σε μια (αλγεβρική) βάση ενός χώρου Hilbert (ή, γενικότερα, σε μια βάση οποιουδήποτε πυκνού υποχώρου), δίνει μια (λειτουργική-αναλυτική) ορθοκανονική βάση. Σημειώστε ότι στη γενική περίπτωση συχνά ισχύει η αυστηρή ανισότητα κ<λ, ακόμη και αν το αρχικό σύνολο ήταν γραμμικά ανεξάρτητο, και η έκταση του (uα)α<κ δεν χρειάζεται να είναι υποχώρος της έκτασης του (vα)α<λ (μάλλον, είναι ένας υποχώρος της ολοκλήρωσής του).

Παράδειγμα

Ευκλείδειος χώρος

Ας θεωρήσουμε το ακόλουθο σύνολο διανυσμάτων στο

Πρότυπο:Math (με το συμβατικό εσωτερικό γινόμενο) S={𝐯1=[31],𝐯2=[22]}.

Εφαρμόστε τώρα τη μέθοδο Gram-Schmidt για να λάβετε ένα σύνολο ορθογώνιων διανυσμάτων:

𝐮1=𝐯1=[31]

𝐮2=𝐯2proj𝐮1(𝐯2)=[22]proj[31][22]=[22]810[31]=[2/56/5].

Ελέγχουμε ότι τα διανύσματα Πρότυπο:Math και Πρότυπο:Math είναι πράγματι ορθογώνια:

𝐮1,𝐮2=[31],[2/56/5]=65+65=0,

σημειώνοντας ότι αν το τετραγωνικό γινόμενο δύο διανυσμάτων είναι 0, τότε είναι ορθογώνια.

𝐞1=110[31]

𝐞2=14025[2/56/5]=110[13].

Ιδιότητες

Σημειώστε με GS(𝐯1,,𝐯k) το αποτέλεσμα της εφαρμογής της διαδικασίας Gram-Schmidt σε μια συλλογή διανυσμάτων 𝐯1,,𝐯k. Έτσι προκύπτει ένας χάρτης GS : GS:(n)k(n)k.

Έχει τις ακόλουθες ιδιότητες:

  • Είναι συνεχής
  • Διατηρεί τον προσανατολισμό με την έννοια ότι or(𝐯1,,𝐯k)=or(GS(𝐯1,,𝐯k)).
  • Συναλλάσσεται με ορθογώνιους χάρτες:

Έστω g:nn να είναι ορθογώνιο (ως προς το δεδομένο εσωτερικό γινόμενο). Τότε έχουμε

GS(g(𝐯1),,g(𝐯k))=(g(GS(𝐯1,,𝐯k)1),,g(GS(𝐯1,,𝐯k)k))

Περαιτέρω, μια παραμετρική εκδοχή της μεθόδου Gram-Schmidt δίνει μια (ισχυρή) παραμορφωτική ανάκληση της γενικής γραμμικής ομάδας GL(n) στην ορθογώνια ομάδα O(n).

Αριθμητική σταθερότητα

Όταν αυτή η διαδικασία εκτελείται σε υπολογιστή, τα διανύσματα 𝐮k συχνά δεν είναι αρκετά ορθογώνια, λόγω σφαλμάτων στρογγυλοποίησης. Για τη μέθοδο Gram-Schmidt που περιγράφηκε παραπάνω (μερικές φορές αναφέρεται ως "κλασική μέθοδος Gram-Schmidt"), αυτή η απώλεια ορθογωνιότητας είναι ιδιαίτερα σοβαρή, γι' αυτό και η (κλασική) μέθοδος Gram-Schmidt χαρακτηρίζεται αριθμητικά ασταθής.

Η μέθοδος Gram-Schmidt μπορεί να σταθεροποιηθεί με μια μικρή τροποποίηση- αυτή η έκδοση ονομάζεται μερικές φορές τροποποιημένη Gram-Schmidt ή MGS. Αυτή η προσέγγιση δίνει το ίδιο αποτέλεσμα με τον αρχικό τύπο στην ακριβή αριθμητική και εισάγει μικρότερα σφάλματα στην αριθμητική ακριβείας. Αντί για τον υπολογισμό του διανύσματος Πρότυπο:Math ως

𝐮k=𝐯kproj𝐮1(𝐯k)proj𝐮2(𝐯k)proj𝐮k1(𝐯k),

υπολογίζεται ως εξής

𝐮k(1)=𝐯kproj𝐮1(𝐯k),𝐮k(2)=𝐮k(1)proj𝐮2(𝐮k(1)),𝐮k(k2)=𝐮k(k3)proj𝐮k2(𝐮k(k3)),𝐮k(k1)=𝐮k(k2)proj𝐮k1(𝐮k(k2)),𝐞k=𝐮k(k1)𝐮k(k1)

Αυτή η μέθοδος χρησιμοποιείται στην προηγούμενη κινούμενη εικόνα, όταν το ενδιάμεσο διάνυσμα Πρότυπο:Math χρησιμοποιείται κατά την ορθογωνοποίηση του μπλε διανύσματος Πρότυπο:Math.

Ακολουθεί μια άλλη περιγραφή του τροποποιημένου αλγορίθμου. Δεδομένων των διανυσμάτων v1,v2,,vn, στο πρώτο βήμα μας παράγουμε τα διανύσματα v1,v2(1),,vn(1) αφαιρώντας συνιστώσες κατά μήκος της διεύθυνσης του v1. Σε τύπους,vk(1):=vkvk,v1v1,v1v1. Μετά από αυτό το βήμα έχουμε ήδη δύο από τα επιθυμητά ορθογώνια διανύσματα u1,,un, δηλαδή u1=v1,u2=v2(1), αλλά κάναμε και v3(1),,vn(1) ήδη ορθογώνια προς u1. Στη συνέχεια, ορθογωνικοποιούμε αυτά τα υπόλοιπα διανύσματα κατά u2=v2(1). Αυτό σημαίνει ότι υπολογίζουμε τα v3(2),v4(2),,vn(2) με αφαίρεση vk(2):=vk(1)vk(1),u2u2,u2u2. Τώρα έχουμε αποθηκεύσει τα διανύσματα v1,v2(1),v3(2),v4(2),,vn(2) όπου τα τρία πρώτα διανύσματα είναι ήδη u1,u2,u3 και τα υπόλοιπα διανύσματα είναι ήδη ορθογώνια προς τα u1,u2. Όπως θα πρέπει να είναι σαφές τώρα, το επόμενο βήμα ορθογωνιοποιεί τα v4(2),,vn(2) έναντι του u3=v3(2).Προχωρώντας με αυτόν τον τρόπο βρίσκουμε το πλήρες σύνολο των ορθογώνιων διανυσμάτων u1,,un. Αν επιθυμούμε ορθοκανονικά διανύσματα, τότε κανονικοποιούμε καθώς προχωράμε, έτσι ώστε οι παρονομαστές στους τύπους αφαίρεσης να μετατραπούν σε μονάδες.

Αλγόριθμος

Ο ακόλουθος αλγόριθμος MATLAB υλοποιεί την κλασική ορθοκανονικοποίηση Gram-Schmidt. Τα διανύσματα Πρότυπο:Math (στήλες του πίνακα V, έτσι ώστε V(:,j) να είναι το jοστό διάνυσμα) αντικαθίστανται από ορθοκανονικά διανύσματα (στήλες του U) που καλύπτουν τον ίδιο υποχώρο.

function U = gramschmidt(V)
    [n, k] = size(V);
    U = zeros(n,k);
    U(:,1) = V(:,1) / norm(V(:,1));
    for i = 2:k
        U(:,i) = V(:,i);
        for j = 1:i-1
            U(:,i) = U(:,i) - (U(:,j)'*U(:,i)) * U(:,j);
        end
        U(:,i) = U(:,i) / norm(U(:,i));
    end
end

Το κόστος αυτού του αλγορίθμου είναι ασυμπτωτικά Πρότυπο:Math πράξεις κινητής υποδιαστολής, όπου Πρότυπο:Mvar είναι η διαστατικότητα των διανυσμάτων.Πρότυπο:Sfn

Μέσω απαλοιφής Γκάους

Εάν οι γραμμές Πρότυπο:Math γράφονται ως πίνακας A, τότε η εφαρμογή της απαλοιφής Γκάους στον επαυξημένο πίνακα [AA𝖳|A] θα παράγει τα ορθογωνιοποιημένα διανύσματα στη θέση του A. Ωστόσο, ο πίνακας AA𝖳 πρέπει να μετατραπεί σε μορφή echelon γραμμής, χρησιμοποιώντας μόνο την πράξη γραμμής της πρόσθεσης ενός κλιμακωτού πολλαπλάσιου μιας γραμμής σε μια άλλη.[1] Για παράδειγμα, λαμβάνοντας𝐯1=[31],𝐯2=[22] όπως παραπάνω, έχουμε

[AA𝖳|A]=[108318822]

Και αν το αναγάγουμε αυτό σε μορφή σειρών επιπέδων παράγει

[1.8.3.101.25.75]

Τα κανονικοποιημένα διανύσματα είναι στη συνέχεια

𝐞1=1.32+.12[.3.1]=110[31]

𝐞2=1.252+.752[.25.75]=110[13],

όπως στο παραπάνω παράδειγμα.

Προσδιοριστικός τύπος

Το αποτέλεσμα της μεθόδου Gram-Schmidt μπορεί να εκφραστεί με έναν μη αναδρομικό τύπο χρησιμοποιώντας προσδιοριστές.

𝐞j=1Dj1Dj|𝐯1,𝐯1𝐯2,𝐯1𝐯j,𝐯1𝐯1,𝐯2𝐯2,𝐯2𝐯j,𝐯2𝐯1,𝐯j1𝐯2,𝐯j1𝐯j,𝐯j1𝐯1𝐯2𝐯j|

𝐮j=1Dj1|𝐯1,𝐯1𝐯2,𝐯1𝐯j,𝐯1𝐯1,𝐯2𝐯2,𝐯2𝐯j,𝐯2𝐯1,𝐯j1𝐯2,𝐯j1𝐯j,𝐯j1𝐯1𝐯2𝐯j|

όπου D0=1 και, για j ≥ 1, Djείναι ο προσδιοριστής Gram

Dj=|𝐯1,𝐯1𝐯2,𝐯1𝐯j,𝐯1𝐯1,𝐯2𝐯2,𝐯2𝐯j,𝐯2𝐯1,𝐯j𝐯2,𝐯j𝐯j,𝐯j|.

Σημειώστε ότι η έκφραση για το u'k είναι ένας "τυπικός" προσδιοριστής, δηλαδή ο πίνακας περιέχει και τα δύο κλιμάκια όσο και διανύσματα- η έννοια αυτής της έκφρασης ορίζεται ως το αποτέλεσμα μιας συνδιαστολής κατά μήκος της γραμμής των διανυσμάτων.

Ο προσδιοριστικός τύπος για τον Gram-Schmidt είναι υπολογιστικά πιο αργός (εκθετικά πιο αργός) από τους αναδρομικούς αλγορίθμους που περιγράφονται παραπάνω- έχει κυρίως θεωρητικό ενδιαφέρον.

Εκφραση με χρήση γεωμετρικής άλγεβρας

Εκφρασμένα με χρήση συμβολισμού που χρησιμοποιείται στη γεωμετρική άλγεβρα, τα μη ομαλοποιημένα αποτελέσματα της μεθόδου Gram-Schmidt εκφράζονται ως εξής 𝐮k=𝐯kj=1k1(𝐯k𝐮j)𝐮j1 , η οποία είναι ισοδύναμη με την έκφραση που χρησιμοποιεί τον τελεστή proj που ορίζεται παραπάνω. Τα αποτελέσματα μπορούν ισοδύναμα να εκφραστούν ως [2] 𝐮k=𝐯k𝐯k1𝐯1(𝐯k1𝐯1)1, η οποία είναι στενά συνδεδεμένη με την έκφραση με χρήση προσδιοριστικών παραγόντων παραπάνω.

ναλλακτικές λύσεις

Άλλοι αλγόριθμοι ορθογωνοποίησης χρησιμοποιούν μετασχηματισμούς Χάουσχολντερ ή περιστροφές Γκίβενς. Οι αλγόριθμοι που χρησιμοποιούν μετασχηματισμούς Χάουσχολντερ είναι πιο σταθεροί από τη σταθεροποιημένη μέθοδο Gram-Schmidt. Από την άλλη πλευρά, η μέθοδος Gram-Schmidt παράγει το j jοστό ορθογωνοποιημένο διάνυσμα μετά την jth επανάληψη, ενώ η ορθογωνοποίηση που χρησιμοποιεί ανακλάσεις Χάουσχολντερ παράγει όλα τα διανύσματα μόνο στο τέλος. Αυτό καθιστά μόνο τη μέθοδο Gram-Schmidt εφαρμόσιμη για επαναληπτικές μεθόδους όπως η επανάληψη Αρνόλντι.

Μια άλλη λύση έχει ως κίνητρο τη χρήση της αποσύνθεσης Τσολέσκι για την αντιστροφή του πίνακα των κανονικών εξισώσεων σε γραμμικά ελάχιστα τετράγωνα. Έστω V ένας πίνακας πλήρους τάξης του οποίου οι στήλες πρέπει να είναι ορθογωνοποιημένες. Ο πίνακας V*V είναι ερμιτιανός και θετικά ορισμένος, οπότε μπορεί να γραφεί στη μορφή V*V=LL*, χρησιμοποιώντας την αποσύνθεση Τσολέσκι. Ο κάτω τριγωνικός πίνακας L με αυστηρά θετικές διαγώνιες καταχωρήσεις είναι αντιστρέψιμος. Οι στήλες του πίνακα U=V(L1)* είναι τότε ορθοκανονικές και καλύπτουν τον ίδιο υποχώρο με τις στήλες του αρχικού πίνακα V. Η ρητή χρήση του γινομένου V*V καθιστά τον αλγόριθμο ασταθή, ιδιαίτερα αν ο αριθμός των όρων του γινομένου είναι μεγάλος. Παρ' όλα αυτά, ο αλγόριθμος αυτός χρησιμοποιείται στην πράξη και υλοποιείται σε ορισμένα λογισμικά λόγω της υψηλής αποδοτικότητας και απλότητας του.

Στην κβαντομηχανική υπάρχουν διάφορα σχήματα ορθογωνοποίησης με χαρακτηριστικά που είναι καλύτερα προσαρμοσμένα για ορισμένες εφαρμογές από τα αρχικά σχήματα Gram-Schmidt. Παρόλα αυτά, παραμένει ένας δημοφιλής και αποτελεσματικός αλγόριθμος ακόμα και για τους μεγαλύτερους υπολογισμούς ηλεκτρονικής δομής[3].

Εξωτερικοί Σύνδεσμοι

Πηγές

Παραπομπές

Πρότυπο:Reflist

Πρότυπο:Authority control Πρότυπο:Γραμμική Άλγεβρα Πρότυπο:Portal bar