Ortogonálna (ortonormálna) báza

Moderators: Martin Sleziak, Ludovit_Balko, Martin Niepel, Tibor Macko

Post Reply
Martin Sleziak
Posts: 5686
Joined: Mon Jan 02, 2012 5:25 pm

Ortogonálna (ortonormálna) báza

Post by Martin Sleziak »

Asi najpodstatnejšia časť je nájdenie ortogonálnej resp. ortonormálnej bázy. Máme na fóre viacero vyriešených príkladov na takýto typ úlohy.
Napríklad viewtopic.php?t=604 a viewtopic.php?t=852 - obe linky som zobral z: viewtopic.php?t=993

Aj tak sem pridám riešenie jednej skupiny, nech môžem zopakovať nejaké veci. A možno aj napísať viacero možných postupov a porovnať ich.
Nájdite bázu a dimenziu priestoru $S^\bot$, kde $S$ je zadaný podpriestor v $\mathbb R^4$ (so štandardným skalárnym súčinom).
Nájdite aj nejakú ortogonálnu bázu priestoru $S$.
$$S=[(1,1,-1,3),(0,1,1,1),(1,-2,2,0)]$$
Najprv skúsme nájsť dimenziu a jednoduchšiu bázu pre $S$.
Prečo sa takéto niečo oplatí urobiť pri hľadaní ONB:
  • Ukazovali sme si dva postupy, ktoré sa dajú využiť na nájdenie ortogonálnej bázy: Gram-Schmidtov proces, riešenie sústav.
  • Aj pri jednom aj pri druhom postupe sa nám bude ľahšie počítať, ak máme $S$ vyjadrené čo najjednoduchšie.
  • Pri GS sa nám hodí začať s bázou - ak sú zadané vektory lineárne závislé, tak na to pri výpočtoch prídeme. (V niektorom kroku GS procesu nám vyjde nulový vektor.) Ale takto si ušetríme počítanie.
  • Pri GS sa nám hodí pracovať s "jednoduchými" vektormi. Pri výpočtoch sa vyskytujú v menovateli veľkosti vektorov z bázy, s ktorou začíname. Čiže ak máme kratšie vektory, tak máme menšie čísla v menovateli. (A úprava na redukovaný tvar znamená veľa núl, takže tam máme šancu na kratšie vektory.)
  • Okrem toho sa v GS vyskytujú skalárne súčiny - čiže je fajn mať veľa núl, lebo potom je šanca, že sú skalárne súčiny menšie. A aj ak si všimnem, že niekde pri úpravách som dostal nejaké vektory, ktoré sú na seba kolmé, tak sa môže oplatiť použiť bázu obsahujúce tieto vektory. (Opäť si ušetríme výpočty.)
Podľa toho na aký účet chceme ortonormálnu bázu použiť si vieme rozmyslieť, či môžeme GS pustiť na ľubovoľnú bázu alebo je dôležité začať s nejakou konkrétnou bázou. Už som viackrát spomenul, že sú aj prípady, kedy je dôležité použiť na jednu konkrétnu bázu. (Ako príklad som vždy spomenul QR-rozklad.)
Ale vo všetkých (alebo skoro vo všetkých) prípadoch, kde budeme ortonormálne bázy potrebovať v tomto semestri, je úplne jedno, ktorú z ortonormálnych báz chceme použiť. (Napríklad sa ONB môže vyskytnúť ako pomocný výpočet pri hľadaní matice projekcie. Alebo aj ďalších vecí, kde sa nejako dá využiť kolmá projekcia: vzdialenosť dvoch afinných podpriestorov, priemet bodu do afinného podpriestoru.)

Ak som teda v situácii, že si môžem vybrať ktorúkoľvek ortonormálnu bázu, tak je rozumné skúsiť hľadať ortonormálnu bázu takým spôsobom, aby som mal čo najjednoduchšie výpočty.

Ak teda naozaj už začneme niečo počítať, tak dostaneme
$
\begin{pmatrix}
1 & 1 &-1 & 3 \\
0 & 1 & 1 & 1 \\
1 &-2 & 2 & 0 \\
\end{pmatrix}\sim\dots\sim
\begin{pmatrix}
1 & 0 & 0 & 2 \\
0 & 1 & 0 & 1 \\
0 & 0 & 1 & 0 \\
\end{pmatrix}
$
Zistili sme, že $\dim(S)=3$ a napríklad môžeme $S$ zapísať ako lineárny obal takýchto troch lineárne nezávislých vektorov $S=[(1,0,0,2),(0,1,0,1),(0,0,1,0)]$
Spoiler:
$
\begin{pmatrix}
1 & 1 &-1 & 3 \\
0 & 1 & 1 & 1 \\
1 &-2 & 2 & 0 \\
\end{pmatrix}\sim$ $
\begin{pmatrix}
1 & 1 &-1 & 3 \\
0 & 1 & 1 & 1 \\
0 &-3 & 3 &-3 \\
\end{pmatrix}\sim$ $
\begin{pmatrix}
1 & 1 &-1 & 3 \\
0 & 1 & 1 & 1 \\
0 &-1 & 1 &-1 \\
\end{pmatrix}\sim$ $
\begin{pmatrix}
1 & 1 &-1 & 3 \\
0 & 1 & 1 & 1 \\
0 & 0 & 1 & 0 \\
\end{pmatrix}\sim$ $
\begin{pmatrix}
1 & 1 & 0 & 3 \\
0 & 1 & 0 & 1 \\
0 & 0 & 1 & 0 \\
\end{pmatrix}\sim$ $
\begin{pmatrix}
1 & 0 & 0 & 2 \\
0 & 1 & 0 & 1 \\
0 & 0 & 1 & 0 \\
\end{pmatrix}
$
Súčasne z toho vieme vyčítať aj to, že $S^\bot=[(2,1,0,-1)]$.
Spoiler:
Vyjadrenie $S^\bot$ je vlastne to isté ako vyjadrenie bázy priestoru riešení pre túto homogénnu sústavu:
$$\left(\begin{array}{cccc|c}
1 & 0 & 0 & 2 & 0\\
0 & 1 & 0 & 1 & 0\\
0 & 0 & 1 & 0 & 0\\
\end{array}\right)$$
Môžeme si všimnúť, že $\dim(S)+\dim(S^\bot)=4$; vieme, že vo všeobecnosti súčet týchto dimenzií má dať dimenziu celého priestoru.
Martin Sleziak
Posts: 5686
Joined: Mon Jan 02, 2012 5:25 pm

Gram-Schmidtov proces

Post by Martin Sleziak »

Gram-Schmidtov proces$\newcommand{\skl}[2]{\langle{#1},{#2}\rangle}
\newcommand{\skal}[2]{\skl{\vec{#1}}{\vec{#2}}}
\newcommand{\abs}[1]{|{#1}|}$

Ak pracujeme s bázou, ktorú sme dostali po úprave na redukovaný tvar, tak výpočty budú veľmi jednoduché. Vidíme, že máme tri vektory
\begin{align*}
\vec a_1&=(1,0,0,2)\\
\vec a_2&=(0,1,0,1)\\
\vec a_3&=(0,0,1,0)
\end{align*}
Vektor $\vec a_3$ už je kolmý na vektory $\vec a_1$, $\vec a_2$. Teda s týmto vektorom nebudeme musieť robiť vôbec nič.
Potrebujeme len vektory $\vec a_1$, $\vec a_2$ upraviť tak, aby boli na seba kolmé.

Tieto vektory sú dosť jednoduché na to, že možno by sa po chvíli špekulovania dala aj uhádnuť dvojica vektorov, ktoré vygenerujú $[\vec a_1,\vec a_2]$ a sú na seba kolmé.
Ale vyskúšajme to bez hádania - štandardným postupom cez GS.

Položíme $\vec b_1=\vec a_1$. Potom chceme zvoliť $c_{21}$ tak, aby vektor
$$\vec b_2=\vec a_2+c_{21}\vec b_1$$
bol kolmý na $\vec b_1$. T.j. potrebujeme
$$c_{21}=-\frac{\skal{a_2}{b_1}}{\abs{\vec b_1}^2}=-\frac{2}{5}$$
a dostaneme
$$\vec b_2=\vec a_2-\frac25\vec a_1=(-\frac25,1,0,\frac15)=\frac15(-2,5,0,1).$$
Ľahko skontrolujeme, že skutočne platí $\skl{b_2}{b_1}=0$, a teda sme takýmto výpočtom dostali naozaj vektor kolmý na $\vec b_1$.

V tomto okamihu zatiaľ počítame ortogonálnu bázu - ak sa nám bude ľahšie počítať, môžeme pokojne tento vektor vhodne prenásobiť. Napríklad ak by sme pre ďalšie výpočty použili $(-2,5,0,1)$m tak by sme nemuseli pracovať so zlomkami. (Ale asi veľký rozdiel to neplatí.)

Ďalej by sme mohli postupovať tak, že by sme hľadali vektor
$$\vec b_3=\vec a_3+c_{31}\vec b_1+c_{32}\vec b_2.$$
Ako sme si však už všimli, vektor $\vec a_3$ je kolmý na $[\vec a_1,\vec a_2]=[\vec b_1,\vec b_2]$.
Čiže tento vektor nemusíme modifikovať.

Dostali sme ortogonálnu bázu
\begin{align*}
\vec b_1&=(1,0,0,2)\\
\vec b_2&=(-2,5,0,1)\\
\vec b_3&=(0,0,1,0)
\end{align*}

Ak ešte každý z týchto vektorov predelíme jeho veľkosťou, máme ortonormálnu bázu.
\begin{align*}
\vec c_1&=\frac1{\sqrt5}(1,0,0,2)\\
\vec c_2&=\frac1{\sqrt{30}}(-2,5,0,1)\\
\vec c_3&=(0,0,1,0)
\end{align*}

*****

Iné poradie

Môžeme si všimnúť, že keby sme vektory $\vec a_2$ a $\vec a_1$ zobrali v opačnom poradí, dostaneme o čosi jednoduchšie výpočty. (Menšie čísla v menovateli - čo nie je prekvapivé, lebo teraz delíme $\abs{\vec a_2}^2=2$.)

Ak to skúsite naozaj takto vypočítať, tak vyjde iná ortonormálna báza pre ten istý podpriestor:
\begin{align*}
\vec c_1&=\frac1{\sqrt2}(0,1,0,1)\\
\vec c_2&=\frac1{\sqrt3}(1,-1,0,1)\\
\vec c_3&=(0,0,1,0)
\end{align*}
Spoiler:
Vektory preznačím v takom poradí, ako ich použijem teraz.
\begin{align*}
\vec a_1&=(0,1,0,1)\\
\vec a_2&=(1,0,0,2)\\
\vec a_3&=(0,0,1,0)
\end{align*}
Dostanem
$$c_{21}=-\frac{\skal{a_2}{b_1}}{\abs{\vec b_1}^2}=-\frac22=-1$$
a teda
$$\vec b_2=\vec a_2-\vec a_1=(1,-1,0,1).$$

Dostal som takto
\begin{align*}
\vec b_1&=(0,1,0,1)
\vec b_2&=(1,-1,0,1)
\vec b_3&=(0,0,1,0)
\end{align*}

*****

Vektory zo zadania

Pre porovnanie vyskúšajme, čo nám vyjde v GS procese, ak zadané vektory nijako neupravíme a počítame priamo s pôvodnými vektormi.

Skúsme si ale aspoň trochu uľahčiť život tým, že si všimneme, že dva zo zadaných vektorov sú už na seba kolmé.
Teda ak začneme s týmito vektormi, bude stačiť upravovať tretí z nich.

\begin{align*}
\vec a_1&=(0,1,1,1)\\
\vec a_2&=(1,-2,2,0)\\
\vec a_3&=(1,1,-1,3)
\end{align*}

Teda vlastne hneď máme $\vec b_1=\vec a_1$ aj $\vec b_2=\vec a_2$.
A stačí nám štandardným spôsobom dopočítať $\vec b_3$.
$$\vec b_3=\vec a_3+c_{31}\vec b_1+c_{32}\vec b_2.$$
Príslušné koeficienty vypočítame ako
\begin{align*}
c_{31}&=-\frac{\skal{a_3}{b_1}}{\abs{\vec b_1}^2}=-\frac33=-1\\
c_{32}&=-\frac{\skal{a_3}{b_2}}{\abs{\vec b_2}^2}=-\frac{-3}{9}=\frac13
\end{align*}
Teda máme
$$\vec b_3=\vec a_3-\vec b_1+\frac13\vec a_2=
\left(\frac43,-\frac23,-\frac43,2\right)=
\frac23(2,-1,-2,3)$$

Opäť po vhodnom preškálovaní dostaneme ortonormálnu bázu:
\begin{align*}
\vec c_1&=\frac1{\sqrt3}(0,1,1,1)\\
\vec c_2&=\frac13(1,-2,2,0)\\
\vec c_3&=\frac1{2\sqrt3}(1,1,-1,3)
\end{align*}

Až tak dramaticky sa to nezhoršilo - ale aj tak vidno, že pri predošlom postupe sa počítalo o čosi ľahšie.
A ak by sme nezmenili poradie, tak by sme museli rátať o čosi viac a mali v menovateli väčšie čísla.

Dostali by sme v takom prípade
\begin{align*}
\vec c_1&=\frac1{2\sqrt3}(1,1,-1,3)\\
\vec c_2&=\frac16(-1,3,5,1)\\
\vec c_3&=\frac1{3\sqrt2}(2,-3,2,1)
\end{align*}

Tu už nebudem písať postup. Ale pridám ako kontrolu odkaz na WolframAlpha a Symbolab.
Martin Sleziak
Posts: 5686
Joined: Mon Jan 02, 2012 5:25 pm

Riešenie sústav resp. použitie $S^\bot$

Post by Martin Sleziak »

Riešenie sústav resp. použitie $S^\bot$

Z toho, čo sme vypočítali vyššie, vidíme, že podpriestor $S$ je presne množina riešení takejto homogénnej sústavy
$$\left(\begin{array}{cccc|c}
2 & 1 & 0 &-1 & 0
\end{array}\right)$$
Iný pohľad na tú istú vec: $S=[(2,1,0,-1)]^\bot$.

Ako prvý vektor si zoberme ktorýkoľvek nenulový vektor z $S$, t.j. ktorékoľvek nenulové riešenie tejto sústavy. Napríklad:
$$\vec v_1=(0,1,0,1).$$
Teraz chceme ďalší vektor, ktorý patrí do $S$ a súčasne je kolmý na $\vec v_1$.
To vieme vyjadriť takouto sústavou:
$$\left(\begin{array}{cccc|c}
2 & 1 & 0 &-1 & 0\\
0 & 1 & 0 & 1 & 0
\end{array}\right)$$
Na to isté sa dá pozrieť tak, že chceme vektor, ktorý patrí do $[(2,1,0,-1),(0,1,0,1)]^\bot$.
Takúto sústavu vieme vyriešiť - na tomto mieste nám stačí zobrať jedno nenulové riešenie, napríklad
$$\vec v_2=(1,-1,0,1).$$

A teraz budeme chcieť tretí vektor, ktorý patrí do $S$ a je kolmý na $\vec v_1$ aj na $\vec v_2$, čo znamená, že má vyhovovať sústave:
$$\left(\begin{array}{cccc|c}
2 & 1 & 0 &-1 & 0\\
0 & 1 & 0 & 1 & 0\\
1 &-1 & 0 & 1 & 0\\
\end{array}\right)$$
Tu už bude priestor riešení jednorozmerný - čiže až na voľbu (nenulového) skalárneho násobku máme vlastne jedinú možnosť. Napríklad:
$$\vec v_3=(0,0,1,0)$$

Po preškálovaní dostaneme ONB:
\begin{align*}
\vec c_1&=\frac1{\sqrt6}(1,-1,0,1)\\
\vec c_2&=\frac1{\sqrt2}(0,1,0,1)\\
\vec c_3&=(0,0,1,0)
\end{align*}
Martin Sleziak
Posts: 5686
Joined: Mon Jan 02, 2012 5:25 pm

Skúška správnosti

Post by Martin Sleziak »

Skúška správnosti$\newcommand{\skl}[2]{\langle{#1},{#2}\rangle}
\newcommand{\skal}[2]{\skl{\vec{#1}}{\vec{#2}}}$

Čo všetko vieme urobiť, aby sme skontrolovali, či náš výsledok je správny? (Veci, o ktorých tu budeme hovoriť, vieme urobiť aj po jednotlivých krokoch.)

Zoberme si napríklad
\begin{align*}
\vec b_1&=(1,1,-1,3)\\
\vec b_2&=(-1,3,5,1)\\
\vec b_3&=(2,-3,2,1)
\end{align*}
Ak nám nejakým postupom vyšiel takýto výsledok, vieme sa presvedčiť, že to je naozaj ortogonálna báza pre podpriestor $S$?

Sú kolmé?
Vieme skontrolovať, či vektory $\vec b_1$, $\vec b_2$, $\vec b_3$ sú na seba kolmé. (A ak zistíme, že sú kolmé, tak súčasne vieme, že sú lineárne nezávislé.)
V tomto prípade dostaneme
\begin{align*}
\skal{b_1}{b_2}&=1\cdot(-1)+1\cdot3-1\cdot5+3\cdot1=-1+3-5+3=0\\
\skal{b_1}{b_3}&=1\cdot2+1\cdot(-3)-1\cdot2+3\cdot1=2-3-2-3=0\\
\skal{b_2}{b_3}&=-1\cdot2+3\cdot(-3)+5\cdot2+1\cdot1=-2-9+10-1=0
\end{align*}

Patria do podpriestoru $S$?
Viem ľahko skontrolovať, či dané vektory patria do $S$.
Napríklad na základe toho, že sme našli redukovaný stupňovitý tvar.
Ale v tomto prípade - keď je $S^\bot$ jednorozmerný, je veľmi rýchlym spôsobom overenie, či je daný vektor kolmý na $(2,1,0,-1)$, t.j. či spĺňa $2x_1+x_2-x_4=0$. (Alebo ekvivalentne, či $x_4=2x_1+x_2$.)

Skontrolovali sme, že $\vec b_1,\vec b_2,\vec b_3$ sú tri vektory, ktoré ležia v $S$ a súčasne sú lineárne nezávislé. (Keďže sú kolmé a nenulové.)
Keďže $\dim(S)=3$, znamená to, že tieto vektory naozaj tvoria bázu podpriestoru $S$.
A keďže sú po dvoch na seba kolmé, tak je to ortogonálna báza.
Post Reply