Proces Grama-Schmidta - Gram–Schmidt process
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 k ≤ n 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
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 V
tak, ż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
- ^ Cheney, Ward; Kincaid, Dawid (2009). Algebra Liniowa: Teoria i Zastosowania . Sudbury, Ma: Jones i Bartlett. s. 544, 558. ISBN 978-0-7637-5020-6.
- ^ 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 .
- ^ 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
- Bau III, Dawid; Trefethen, Lloyd N. (1997), Numeryczna algebra liniowa , Filadelfia: Towarzystwo Matematyki Przemysłowej i Stosowanej, ISBN 978-0-89871-361-9.
- Golub, Gene H .; Van Loan, Charles F. (1996), Obliczenia macierzy (3rd ed.), Johns Hopkins, ISBN 978-0-8018-5414-9.
- Greub, Werner (1975), Algebra Liniowa (wyd. 4), Springer.
- Soliverez, CE; Gagliano, E. (1985), "Ortonormalizacja na płaszczyźnie: podejście geometryczne" (PDF) , Mex. J. Fiz. , 31 (4): 743–758.
Zewnętrzne linki
- „Ortogonalizacja” , Encyklopedia Matematyki , EMS Press , 2001 [1994]
- Harvey Mudd College Math Tutorial na temat algorytmu Grama-Schmidta
- Najwcześniejsze znane zastosowania niektórych słów matematyki: G Wpis „Ortogonalizacja Grama-Schmidta” zawiera pewne informacje i odniesienia do pochodzenia metody.
- Prezentacje: Proces Grama Schmidta w płaszczyźnie i proces Grama Schmidta w przestrzeni
- Aplet ortogonalizacji Grama-Schmidta
- Ortogonalizacja metodą NAG Grama-Schmidta n wektorów rzędu m rutyna
- Dowód: Raymond Puzio, Keenan Kidwell. „dowód algorytmu ortogonalizacji Grama-Schmidta” (wersja 8). PlanetMath.org.