Proces Grama-Schmidta - Gram–Schmidt process

Pierwsze dwa etapy procesu Grama-Schmidta

W matematyce , szczególnie w algebrze liniowej i analizie numerycznej , proces Grama-Schmidta jest metodą ortonormalizacji zbioru wektorów w przestrzeni produktu wewnętrznego , najczęściej przestrzeni euklidesowej R n wyposażonej w standardowy iloczyn skalarny . Proces Grama-Schmidta bierze skończony , liniowo niezależny zbiór wektorów S = { v 1 , …, v k } dla kn i generuje ortogonalny zbiór S′ = { u 1 , …, u k }, który obejmuje to samo k- wymiarowa podprzestrzeń R n jako S .

Metoda nosi imię Jørgena Pedersena Grama i Erharda Schmidta , ale Pierre-Simon Laplace znał ją przed Gramem i Schmidtem. W teorii dekompozycji grup Liego jest uogólniony przez dekompozycję Iwasawy .

Zastosowanie procesu Gram-Schmidt wektorów kolumnowych pełnej kolumny rang macierzy daje QR rozkładu (nie rozkłada się w produkt prostopadłe i w trójkątnym matrycy ).

Proces Grama-Schmidta

Zmodyfikowany proces Grama-Schmidta wykonywany na trzech liniowo niezależnych, nieortogonalnych wektorach bazy dla R 3 . Kliknij na zdjęcie, aby uzyskać szczegółowe informacje. Modyfikację omówiono w sekcji Stabilność liczbowa tego artykułu.

Operator projekcji definiujemy przez

gdzie oznacza iloczyn skalarny wektorów u i v . Operator ten rzutuje wektor v prostopadle na linię rozpiętą przez wektor u . Jeśli u = 0 , definiujemy , tzn. mapą projekcji jest mapa zerowa, wysyłająca każdy wektor do wektora zerowego.

Proces Grama-Schmidta działa wtedy w następujący sposób:

Sekwencja u 1 , ..., U k jest wymagany system prostopadłych wektorów oraz wektorów znormalizowane e 1 , ..., e k tworzą orto względem normalnego zestawu. Obliczanie sekwencji U 1 , ..., U k jest znany jako Gram-Schmidt ortogonalizacji , zaś obliczanie sekwencji e 1 , ..., e k jest znany jako Gram-Schmidt orthonormalization jako wektory są znormalizowane.

Aby sprawdzić, czy te wzory dają sekwencję ortogonalną, najpierw oblicz , zastępując powyższy wzór u 2 : otrzymujemy zero. Następnie użyj tego do obliczenia ponownie, zastępując wzór za u 3 : otrzymujemy zero. Ogólny dowód przebiega przez indukcję matematyczną .

Geometrycznie metoda ta przebiega następująco: aby obliczyć u i , rzutuje v i prostopadle na podprzestrzeń U generowaną przez u 1 , …, u i −1 , która jest taka sama jak podprzestrzeń generowana przez v 1 , …, v i -1 . Wektor U i jest definiowana jako różnica pomiędzy v i i ten występ, na pewno być ortogonalne do wszystkich wektorów w podprzestrzeni U .

Proces Grama-Schmidta stosuje się również do liniowo niezależnej przeliczalnie nieskończonej sekwencji { v i } i . Wynikiem jest ortogonalny (lub ortonormalny) ciąg { u i } i taki, że dla liczby naturalnej n : rozpiętość algebraiczna v 1 , …, v n jest taka sama jak rozpiętość u 1 , …, u n .

Jeśli proces Grama-Schmidta zostanie zastosowany do sekwencji zależnej liniowo, wyprowadza wektor 0 na i- tym kroku, zakładając, że v i jest kombinacją liniową v 1 , …, v i -1 . Jeśli ma zostać wytworzona baza ortonormalna, algorytm powinien przetestować na wyjściu wektory zerowe i odrzucić je, ponieważ żadna wielokrotność wektora zerowego nie może mieć długości 1. Liczba wektorów wyprowadzonych przez algorytm będzie wtedy wymiarem przestrzeni zajmowanej przez oryginalne dane wejściowe.

Wariant procesu Grama-Schmidta z wykorzystaniem rekurencji pozaskończonej zastosowanej do (prawdopodobnie nieskończenie) nieskończonej sekwencji wektorów daje zestaw wektorów ortonormalnych z takim, że dla dowolnego , zakończenie rozpiętości jest takie samo jak . W szczególności, po zastosowaniu do (algebraicznej) bazy przestrzeni Hilberta (lub, bardziej ogólnie, bazy dowolnej gęstej podprzestrzeni), daje (funkcjonalno-analityczną) bazę ortonormalną. Zauważ, że w ogólnym przypadku często zachodzi ścisła nierówność , nawet jeśli zbiór początkowy był liniowo niezależny, a rozpiętość nie musi być podprzestrzenią rozpiętości (raczej jest podprzestrzenią jej uzupełnienia).

Przykład

Przestrzeń euklidesowa

Rozważ następujący zestaw wektorów w R 2 (z konwencjonalnym iloczynem skalarnym )

Teraz wykonaj Grama-Schmidta, aby otrzymać ortogonalny zbiór wektorów:

Sprawdzamy, czy wektory u 1 i u 2 są rzeczywiście ortogonalne:

zauważając, że jeśli iloczyn skalarny dwóch wektorów wynosi 0, to są one ortogonalne.

W przypadku wektorów niezerowych możemy następnie znormalizować wektory, dzieląc ich rozmiary, jak pokazano powyżej:

Nieruchomości

Oznacz przez wynik zastosowania procesu Grama-Schmidta do zbioru wektorów . Daje to mapę .

Posiada następujące właściwości:

  • Jest ciągły
  • Jest to zachowanie orientacji w tym sensie, że .
  • Dojeżdża z mapami ortogonalnymi:

Niech będzie ortogonalny (w odniesieniu do danego iloczynu skalarnego). Potem będzie

Dalej sparametryzowana wersja procesu Grama-Schmidta daje (silne) wycofanie odkształcenia ogólnej grupy liniowej na grupę ortogonalną .

Stabilność numeryczna

Gdy proces ten jest realizowany na komputerze, wektory często nie są całkowicie ortogonalne ze względu na błędy zaokrąglania . W przypadku opisanego powyżej procesu Grama-Schmidta (czasami określanego jako „klasyczny Gram-Schmidt”) ta utrata ortogonalności jest szczególnie zła; dlatego mówi się, że (klasyczny) proces Grama-Schmidta jest numerycznie niestabilny .

Proces Grama-Schmidta można ustabilizować przez niewielką modyfikację; ta wersja jest czasami określana jako zmodyfikowana Gram-Schmidt lub MGS. Takie podejście daje taki sam wynik jak oryginalna formuła w arytmetyce dokładnej i wprowadza mniejsze błędy w arytmetyce o skończonej precyzji. Zamiast obliczać wektor u k as

jest obliczany jako

Ta metoda jest używana w poprzedniej animacji, gdy pośredni wektor v ' 3 jest używany podczas ortogonalizacji niebieskiego wektora v 3 .

Oto kolejny opis zmodyfikowanego algorytmu. Biorąc pod uwagę wektory , w pierwszym kroku tworzymy wektory usuwając składowe wzdłuż kierunku . W formułach . Po tym kroku mamy już dwa z naszych pożądanych wektorów ortogonalnych , a mianowicie , ale również stworzyliśmy ortogonalne do . Następnie ortogonalizujemy pozostałe wektory względem . Oznacza to, że obliczamy przez odejmowanie . Teraz zapisaliśmy wektory, w których pierwsze trzy wektory już są, a pozostałe wektory są już prostopadłe do . Jak powinno być teraz jasne, następny krok jest ortogonalizowany przeciwko . Postępując w ten sposób znajdujemy pełny zbiór wektorów ortogonalnych . Jeśli pożądane są wektory ortonormalne, to normalizujemy na bieżąco, tak aby mianowniki we wzorach odejmowania zamieniły się w jedynki.

Algorytm

Poniższy algorytm MATLAB implementuje ortonormalizację Grama-Schmidta dla wektorów euklidesowych. Wektory v 1 , ..., v k (kolumny macierzy Vtak, że V(:,j)jest j p wektor) otrzymują wektorów ortonormalnych (Kolumny U), które obejmują ten sam podprzestrzeni.

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)) 
               /(norm(U(:,j)))^2 * U(:,j);
    end
    U(:,i) = U(:,i)/norm(U(:,i));
end
end

Kosztem tego algorytmu jest asymptotycznie O( nk 2 ) operacji zmiennoprzecinkowych, gdzie n jest wymiarowością wektorów ( Golub i Van Loan 1996 , §5.2.8).

Przez eliminację Gaussa

Jeśli wiersze { v 1 , …, v k } są zapisane jako macierz , to zastosowanie eliminacji Gaussa do rozszerzonej macierzy spowoduje powstanie ortogonalizowanych wektorów w miejsce . Jednak macierz musi zostać doprowadzona do postaci schodkowej rzędów , używając tylko operacji na wierszu polegającej na dodaniu wielokrotności skalarnej jednego wiersza do drugiego. Na przykład biorąc jak wyżej, mamy

A sprowadzenie tego do postaci schodkowej rzędów daje

Znormalizowane wektory to

jak w powyższym przykładzie.

Wzór determinujący

Wynik procesu Grama-Schmidta może być wyrażony w nierekurencyjnej formule z wyznacznikami .

gdzie D 0 =1 oraz, dla j ≥ 1, D j jest wyznacznikiem Grama

Zauważ, że wyrażenie na u k jest wyznacznikiem „formalnym”, tj. macierz zawiera zarówno skalary, jak i wektory; znaczenie tego wyrażenia jest zdefiniowane jako wynik ekspansji kofaktora wzdłuż rzędu wektorów.

Wyznacznik wzór Grama-Schmidta jest obliczeniowo wolniej (wykładniczo wolniej) niż algorytmy rekurencyjne opisane powyżej; ma to głównie znaczenie teoretyczne.

Alternatywy

Inne algorytmy ortogonalizacji używają transformacji Householder lub Givens rotacji . Algorytmy wykorzystujące transformacje Householder są bardziej stabilne niż stabilizowany proces Grama-Schmidta. Z drugiej strony, proces Grama-Schmidta wytwarza th ortogonalizowany wektor po iteracji, podczas gdy ortogonalizacja przy użyciu odbić Householdera wytwarza wszystkie wektory tylko na końcu. To sprawia, że ​​tylko proces Grama-Schmidta ma zastosowanie do metod iteracyjnych, takich jak iteracja Arnoldiego .

Jeszcze inna alternatywa jest motywowana użyciem rozkładu Choleskiego do odwracania macierzy równań normalnych do liniowych najmniejszych kwadratów . Niech będzie pełną macierzą rang kolumn , której kolumny muszą być ortogonalizowane. Macierz jest hermitowska i dodatnio określona , więc można ją zapisać w oparciu o rozkład Choleskiego . Dolna macierz trójkątna ze ściśle dodatnimi wpisami diagonalnymi jest odwracalna . Wtedy kolumny macierzy są ortonormalne i obejmują tę samą podprzestrzeń, co kolumny macierzy pierwotnej . Jawne użycie produktu sprawia, że ​​algorytm jest niestabilny, zwłaszcza jeśli liczba warunków produktu jest duża. Niemniej jednak algorytm ten jest stosowany w praktyce i zaimplementowany w niektórych pakietach oprogramowania ze względu na jego wysoką wydajność i prostotę.

W mechanice kwantowej istnieje kilka schematów ortogonalizacji o cechach lepiej dostosowanych do niektórych zastosowań niż oryginalny Gram-Schmidt. Mimo to pozostaje popularnym i skutecznym algorytmem nawet największych obliczeń struktur elektronicznych.

Bibliografia

  1. ^ Cheney, Ward; Kincaid, Dawid (2009). Algebra Liniowa: Teoria i Zastosowania . Sudbury, Ma: Jones i Bartlett. s. 544, 558. ISBN 978-0-7637-5020-6.
  2. ^ Pursell, Lyle; Trimble, SY (1 stycznia 1991). „Ortogonalizacja Grama-Schmidta metodą eliminacji Gaussa”. Amerykański miesięcznik matematyczny . 98 (6): 544–549. doi : 10.2307/2324877 . JSTOR  2324877 .
  3. ^ Pursell, Yukihiro; i in. (2011). „Pierwsze zasady obliczeń stanów elektronowych nanodrutu krzemowego o 100 000 atomów na komputerze K”. SC '11 Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis : 1:1–1:11. doi : 10.1145/2063384.2063386 . Numer ISBN  9781450307710. S2CID  14316074 .

Źródła

Zewnętrzne linki