Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 06. 03. 2010 15:40

awm1
Příspěvky: 51
Reputace:   
 

Determinant blokové matice

Mějme R matice: A řádu m x n a B řádu n x m. Zjednodušte výpočet determinantu blokové matice:

      ( 0 A )
      (-B I )

Bylo nám napovězeno, že ji máme násobit nějakou vhodnou maticí s determinatem = 1.  Zkoušel jsem různé blokové matice s I submaticemi na diagonále a různě upravenými maticemi A a B mimo ni, ale bohužel většnou narazím na "nekompabilitu" rozměrů vzniklých matic, díky kterým by se výpočet reálné matice moc nezrychlil.

Nemáte někdo nějaký nápad? Stačí bez důkazu, že to půjde vždy.


Ruská ruleta: sudo [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /

Moje stránky - http://www.klimesv.php5.cz

Offline

 

#2 08. 03. 2010 09:18 — Editoval musixx (09. 03. 2010 09:17)

musixx
Místo: Brno
Příspěvky: 1771
Reputace:   45 
 

Re: Determinant blokové matice

Je-li m různé od n, pak budu-li dělat Gaussovu eliminaci na sloupcích či řádcích (podle toho, jestli je m větší než n), tak díky té nulové obdélníkové submatici mi vznikne nějaký nulový řádek či sloupec, tedy determinant bude nula.

Je-li m=n, pak výsledek je až na znaménko |A|*|B|. Stačí si buď uvědomit, jak můžeme použít pravidlo pro násobení matic 2x2, nebo si udělej Laplaceův rozvoj podle prvních m=n sloupců -- všechny součiny až na jeden budou obsahovat determinant matice s nulovým řádkem (sloupcem).

Offline

 

#3 10. 03. 2010 14:20

awm1
Příspěvky: 51
Reputace:   
 

Re: Determinant blokové matice

Pro m = n řešení chápu: stačí si |A|*|-B| vynásobit (-1)^((x*(x-1))/2, kde x = m+n, abych získal správné znaménko determinantu celé blokové matice– abych jej mohl spočítat, musím převrátit matici podle horizontální osy, což odpovídá elementární úpravě prohazování řádků. Každá taková operace invertuje znaménko původní permutace.

Avšak pro m různé od n to stále nechápu: nulová submatice mi snad přece nezaručí, že při převodu na REF se mi nějaký řádek/sloupec vynuluje. Nebo se pletu?


Ruská ruleta: sudo [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /

Moje stránky - http://www.klimesv.php5.cz

Offline

 

#4 10. 03. 2010 15:06

musixx
Místo: Brno
Příspěvky: 1771
Reputace:   45 
 

Re: Determinant blokové matice

To je pravda. Pro různé m a n ten argument o singulárnosti platí jen pro m>n.

Offline

 

#5 10. 03. 2010 15:32

awm1
Příspěvky: 51
Reputace:   
 

Re: Determinant blokové matice

Jenže problém je (kromě mne :-) v tom, že ta nulová matice je čtvercová řádu mxm, vidím-li dobře. Takže sice pokud m>n, tak tam půjde nulový řádek/sloupec vyrobit, ale pokud m<n, tak už mi ho nikdo nezaručí.

Teď mne asi budete kamenovat, ale nešlo by tu celou matici vynásobit něčím tak, aby se měl zaručeno m=n a zůstala mi nulová i jednotková matice?


Ruská ruleta: sudo [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /

Moje stránky - http://www.klimesv.php5.cz

Offline

 

#6 10. 03. 2010 15:52

musixx
Místo: Brno
Příspěvky: 1771
Reputace:   45 
 

Re: Determinant blokové matice

Tuším, že výsledek pro m<n povede na něco jako na |-AB| nebo tak. Nemám teď víc času to promyslet, ale napadá mě matice

   -AB  0
     0   I

která je rozměrové kompatibilní s maticí původní a jejich součin vypadá nadějně. Zkus jít třeba tímto směrem.

Offline

 

#7 14. 03. 2010 16:02

awm1
Příspěvky: 51
Reputace:   
 

Re: Determinant blokové matice

Díky, asi to tak bude. Když si původní matici pro lepší názornost převrátím podél vertikály (což odpovídá změně znaménka determinantu jeho násobením (-1)^(m+n)) a vynásobím ji zprava:

        (I B)
        (0 I)

kde "horní" jedničková matice je řádu nxn a "dolní" mxm, vyjde mi matice:

        (A A*B)
        (I    0  )
kterou převrátím dle horizontály nazpět (zase odpovídá změně znaménka násobením (-1)^(m+n)).

Nyní už vlastně počítám determinant diagonálních prvků, čímž jsem dosáhl zamýšleného zrychlení.

Doufám, že to není moc velký blud.


Ruská ruleta: sudo [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /

Moje stránky - http://www.klimesv.php5.cz

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson