Tarkoituksena olisi määrittää matriisin nolla-avaruuden kanta, eli myös etsiä homogeenisen, lineaarisen yhtälöryhmän epätriviaalit ratkaisut.
Menetelmässä pitäisi alkeisrivitoimituksin saada matriisista A matriisi B, jossa on nollarivejä. Onko olemassa jotain yleistä menetelmää nollarivien "tuottamiseksi" tai edes tuottamisen mahdollisuuden/mahdottomuuden toteamiseksi?
Menetelmässä pitäisi alkeisrivitoimituksin saada matriisista A matriisi B, jossa on nollarivejä. Onko olemassa jotain yleistä menetelmää nollarivien "tuottamiseksi" tai edes tuottamisen mahdollisuuden/mahdottomuuden toteamiseksi?
Vastaukset 5
Vanhimmat
'nolla-avaruutta' kutsutaan kerneliksi. Kun puhut 'nolla-riveistä', ne voi helposti ymmärtää vahingossa riveiksi, joissa on pelkkiä nollia. Tarkoitat kernelin kantavektoreita.
Kernelin voi löytää rivioperaatioilla, ja prosessia kutsutaan nimellä Gaussian elimination. Tuota termiä voit hakea vaikka googlella.
rank-nullity-theorem antaa sinulle kernelin ulottuvuuden, ja haluttu matriisin muoto on I|A, eli identiteettimatriisi jatkettuna oikealla puolella olevilla pystyriveillä ( joitakin nollaa täynnä olevia rivejä alla). Tuosta muodosta on helppo päätellä kernelin kanta. Katso esim. http://mathforum.org/library/drmath/view/51983.html .
Jos sinulla on ongelmia itse rivioperaatioiden kanssa, harjoittele niitä paljon.
Hyvä harjoitustehtävä on ohjelmoida (vaikka C:llä) ohjelma, joka laskee kernelin kannan (poistettuaan ensin mahdollisesti muodostuvat nollarivit matriisin lopusta!).
Koska ohjelma voi äärellisessä, (ja jopa polynomiajassa!) laskea kernelin kannan, se voidaan laskea yleiseksi menetelmäksi. Eli vastaus kysymykseesi on kyllä.
"'nolla-avaruutta' kutsutaan kerneliksi."
Ei, vaan ytimeksi.
... sillä en lue matikkaa suomeksi. Toki käännös on varsin looginen.
En minäkään lue matikkaa suomeksi, mutta opettelen suomenkieliset termit. Yliopistolla on paljon kätevämpää puhua kavereiden kanssa matikasta suomeksi, kun kaverit ovat suomalaisia.
Tuolla mainitulla tavalla löytää kyllä matriisin ytimen, mutta "oikeissa" sovelluksissa käytetään yleensä ns. SVD-hajotelmaa (engl. singular value decomposition), jossa mxn-matriisi M on hajotettu kolmen matriisin tuloksi:
M = U*Z*V^t (V^t tarkoittaa V:n transpoosia). Tällöin matriiseista U ja V nähdään välittömästi M:n ytimen kanta ja lisäksi myös M:n kuvajoukon (joka tietenkin on vektoriavaruus) kanta. Lisää
SVD:stä löytyy esimerkiksi täältä:
http://www.cs.brown.edu/research/ai/dynamics/tutorial/Postscript/SingularValueDecomposition.ps
Dokumentti on Postscript-muodossa, joten voit tarvita (ilmaista) Ghostscript-ohjelmaa, jonka voi ladata netistä: http://pages.cs.wisc.edu/~ghost/ ).
Jos