Keresés


Toplista

Toplista
  • betöltés...

Magántanár kereső

Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!

Mátrix QR felbontással az inverzet hogyan kapom meg?

720
Sziasztok!

Egy olyan feladatot kaptam hogy a QR felbontás segítségével számoljam ki a mátrixnak az inverzé matlabban, nem lehet használni a

\
• /
• inv
• pinv
• linsolve
• ^
• mldivide
• mrdivide
• lsqminnorm
parancsokat.

Ezt hogyan tudom megcsinálni? Vagy mi köze van a kettőnek egymáshoz? A QR felbontással megkapom a felső háromszögmátrixot és az ortogonálisat. Ezekből hogy jön az inverz????
Jelenleg 1 felhasználó nézi ezt a kérdést.
matlabköszi, koszi, matlab, házi, mátrix, QR, inverz
0
Felsőoktatás / Informatika

Válaszok

1
Ha `\mathbf{A}=\mathbf{Q}\mathbf{R}`, akkor `\mathbf{A}^-1=\mathbf{R}^-1\mathbf{Q}^-1`. Most `\mathbf{Q}` invertálásával könnyű dolgunk van, mert ortogonális, tehát csak transzponálni kell: `\mathbf{Q}^-1=\mathbf{Q}^\text{T}`. Az `\mathbf{R}` mátrixot persze még mindig invertálni kell, de ez is gyorsabban megy az általános esetnél, mert felső háromszög alakú (a főátlóban `\mathbf{R}` főátlóbeli elemeinek a reciprokai lesznek, a többi elem kiszámításához sem kell bejárni az egész mátrixot).

Gyorsan összedobtam egy megoldást, `\mathbf{R}` invertálását megírtam manuálisan (valószínűleg nem a leghatékonyabban). Közben használom az egyik tiltott operátort (az osztást), de nem mátrixokra, csak skalárokra, remélem, az megengedett.

https://pastebin.com/wrPFdu0d
Módosítva: 5 éve
0