Page 1 of 1

Ortogonal projeksjon av vektor inn i kolonnerom

Posted: 12/05-2011 10:06
by Naut
Når jeg skal finne den ortogonale projeksjonen av en vektor [tex]\vec{b}[/tex] inn i [tex]Col(A)[/tex] for en gitt matrise [tex]A[/tex]. Hvorfor fører det ikke fram å ortogonalisere basisen for [tex]Col(A)[/tex] (ved Gram-Schmidt), for så å bruke algoritmen for å finne den ortogonale projeksjonen av en vektor?

Følgende er forøvrig oppgitt:
[tex]A = \begin{bmatrix} 1 & 2 & 1 & 0 & 2 \\ 2 & 4 & 2 & 1 & 3 \\ 5 & 10 & 5 & 1 & 9 \end{Bmatrix}, \vec{b} = \begin{bmatrix} 2 \\ -1 \\ 3 \end{Bmatrix}[/tex]
Fasit:
[tex]\vec{p} = \frac{1}{11}\begin{bmatrix} 16 \\ -13 \\ 35 \end{Bmatrix} [/tex]

Posted: 12/05-2011 11:03
by espen180
Først må vi finne alle lineært uavhengige vektorer i col(A). Disse er (1,2,5) og (0,1,1). (Merk av den fjerde vektoren er (2,3,9)=2*(1,2,5)-(0,1,1)). Vi kaller disse (basis)vektorene u og v for enkelhets skyld.

Vi trenger ikke ortogonalisere disse to vektorene før vi begynner.

Det vi vil gjøre når vi skal finne projeksjonen av b på col(A) er å finne projeksjonen på hver av basisvektorene til col(A) og legge disse sammen. Altså:

[tex]\text{proj}_{\text{col}(A)}b=\frac{\< b, u\>}{||u||^2}u + \frac{\< b,v \>}{||v||^2}v[/tex]

Der jeg bruker [tex]\< b, u\>[/tex] til å notere et indreprodukt, eller skalarprodukt. Se om du får det til nå. Hvis du fikk feil svar med denne metoden tidligere kan det være fordi du la til projeksjonen på samme basisvektor flere ganger ute å innse det.

Posted: 12/05-2011 11:23
by Naut
Hei, og takk for svar! :)
Jeg har prøvd denne metoden tidligere, med følgende resultat:
[tex]\vec{p}=\frac{15}{30}\begin{bmatrix}1 \\ 2 \\ 5\end{bmatrix}+\frac{2}{2}\begin{bmatrix}0 \\ 1 \\ 1\end{bmatrix}=\begin{bmatrix}\frac{1}{2} \\ 2 \\ \frac{7}{2}\end{bmatrix}=\begin{bmatrix}0.5 \\ 2 \\ 3.5\end{bmatrix}[/tex]

Hva er det egentlig jeg gjør galt?

Posted: 12/05-2011 11:46
by espen180
Sannsynligvis er det fordi projeksjonen du utfører ikke er ortogonal.

Oppgaven din er ekvivalent til optimeringsproblemet

[tex]\left[\begin{matrix} 1 & 0 \\ 2 & 1 \\ 5 & 1 \end{matrix}\right]\left[\begin{matrix}x \\ y\end{matrix}\right] = \left[\begin{matrix}2 \\ -1 \\ 3\end{matrix}\right][/tex]

altså å finne x og y som gjør at venstresiden kommer så nær høyresiden som mulig. Dette er ekvivalent med å finne den ortogonale projeksjonen på kolonnerommet til matrisen din.

Når jeg løser systemet med minste kvadraters metode får jeg fasitsvaret ditt.

Posted: 12/05-2011 12:42
by Naut
Det var også min konklusjon, og grunnen til at jeg prøvde å ortogonalisere basisen med Gram-Schmidt. Det førte heller ikke fram, og om du kan forklare meg hvorfor, hadde det vært supert.
Skal prøve å løse oppgaven med minste kvadraters metode en gang jeg også da, og se om jeg får fasitsvar.

Til slutt: Hva er den enkleste måten å sjekke om projeksjonen er ortogonal? Altså om jeg bare kan finne projeksjonen direkte, slik som jeg prøvde i forrige post, eller om jeg må bruke minste kvadraters metode? Jeg trodde det var å sjekke om basisen er ortogonal jeg. Men hvis det er det eneste kriteriet burde det jo føre fram å ortogonalisere basisen, for så å finne projeksjonen på den ortogonale basisen?

Posted: 12/05-2011 14:09
by espen180
Jo, det rimer. En annen måte å gjøre dette på er som følger.

Jeg gir konklusjonen først, ettersom dette ble litt langt:
Hvis du ortogonaliserer basisvektorene, så projoserer på hver enkelt og legger sammen, skal svaret stemme. Hvis de ikke er ortogonale stemmer det ikke.

Det følgende er sannsynligvis ikke relevant til pensumet ditt, men du kan lese det hvis du har lyst.

Først gir jeg litt bakgrunn. Gitt ethvert vektorrom med dimensjon større enn eller lik 2, kan vi "faktorisere" vektorrommet i to ikke-trivielle underrom W og U slik at [tex]W\cap U = \{ 0 \}[/tex]. Da skriver vi [tex]V=W\oplus U[/tex] (les: V er den direkte summen av W og U). Når dette er tilfelle, kan enhver vektor i V skrives unikt som en sum av en vektor fra W og en vektor fra U. Vi har altså [tex]v=w+u[/tex] der [tex]v\in V\,,\, w\in W\,,\, u\in U[/tex]. Da kan vi definere den lineære avbildningen [tex]\sigma_{W,U}:V\rightarrow W[/tex] slik at [tex]\sigma_{W,U} (v)=\sigma_{W,U}(w+u)=w[/tex]. Vi kaller denne avbildningen for projeksjonen på W langs U. Dersom [tex]U=W^{\perp}[/tex], har vi en ortogonal projeksjon.

Nå kan vi besvare spørsmålet ditt, om hvorfor fremgangsmåten sin ikke fungerte.

Anta at vi har et underrom av V utspent av vektorene [tex]b_1[/tex] og [tex]b_2[/tex], som vi kaller W. Vi har også to underrom av W, nemmelig rommene utspent av kun [tex]b_1[/tex] eller kun [tex]b_2[/tex]. Spørsmålet er da om [tex]\sigma_{W,W^{\perp}}(v)=\sigma_{b_1,b_1^{\perp}}(v)+\sigma_{b_2,b_2^{\perp}}(v)[/tex] (*)
For å besvare dette, forsøker vi å projisere hver side på en av vektorene, si [tex]b_1[/tex]. Da får vi for venstresiden [tex]\sigma_{b_1,b_1^{\perp}}\left(\sigma_{W,W^{\perp}}(v)\right)=\sigma_{b_1,b_1^{\perp}}(v)[/tex] (prøv å vise dette), og for høyresiden får vi [tex]\sigma_{b_1,b_1^{\perp}}\left(\sigma_{b_1,b_1^{\perp}}(v)+\sigma_{b_2,b_2^{\perp}}(v)\right)=\sigma_{b_1,b_1^{\perp}}(v)+\sigma_{b_1,b_1^{\perp}}\left(\sigma_{b_2,b_2^{\perp}}(v)\right)[/tex] fordi å projisere to ganger på samme rom er det samme som å projisere kun én gang. Fra dette kan vi konkludere at [tex]b_1[/tex] og [tex]b_2[/tex] må være ortogonale vektorer hvis (*) skal være sann.

Posted: 12/05-2011 14:56
by Naut
Takk for grundig svar! :)
Jeg fikk det til på den første måten (den jeg spurte om hvorfor ikke fungerte i første post :P). Jeg hadde bare gjort noe rart når jeg trakk sammen vektorene heelt til slutt, måten var faktisk riktig.

Jeg må få takke en gang til for all hjelp! Det har vært utrolig lærerrikt! :)