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 21. 10. 2009 18:06

Merlí
Příspěvky: 28
Reputace:   
 

Optimalizace řešení maticových rovnic

Dobré odpoledne
Mám dotaz, zda by někoho napadlo, jak řešit následující úlohu:
"Nalezněte řešení maticové rovnice AX=B řádově rychleji, než by obnášelo spočítání inverzní matice A."
-----------------
Měl jsem takovou ideu, ale nedokázal jsem jí dotáhnout do konce. Bez újmy na obecnosti jí budu ilustrovat na matici 2x2. Když vyjdeme z toho, že řádky matice jsou LN, tak nám sloupce matice reprezentují vektory v rovině, jejichž složením dostaneme vektor řešení. Vzhledem k tomu, že vektory dokážeme složit v konstantním čase, nabízí se řešení takové, že si představíme matici v její geometrické interpretaci, a poté provedeme "inverzi" vektoru řešení, což by mělo suplovat klasickou inverzi matice A pomocí Gauss-Jordanovy eliminace. Problém je v tom, co si představit pod oním pojmem "inverze" vektoru řešení. Je jasné, že vektor řešení matice A^(-1) bude vektor řešení původní matice A, akorát pootočený. Otázka tedy zní - o kolik a kterým směrem pootočit vektor řešení matice A, aby se dosáhlo efektu inverze?
Díky za nápady

Offline

 

#2 23. 10. 2009 02:15

Kondr
Veterán
Místo: Linz, Österreich
Příspěvky: 4247
Škola: FI MU 2013
Pozice: Vývojář, JKU
Reputace:   38 
 

Re: Optimalizace řešení maticových rovnic

Hledání inverzní matice k A je vlastně řešení maticové rovnice AX=1. Kdyby tvůj algoritmus fungoval pro libovolná A,B, tedy i pro B=1, byl by algoritmem pro hledání inverzní matice a nemohl by být rychlejší. Pokud to myslíš tak, že tvůj algoritmus hledá inverzi výrazně rychleji než Gauss-Jordan, pak  ho zkus popsat bez mlhavých pojmů jako "skládání vektorů"  nebo "inverze vektoru", takto to nedává žádný smysl.

Navíc hledání rychlých maticových algoritmů je poměrně účelná, a proto i probádaná oblast složitosti. Pro násobení matic existuje algoritmus se složitostí $O(n^{2.37})$ http://en.wikipedia.org/wiki/Coppersmit … _algorithm a zřejmě neexistuje algoritmus se složitostí menší než O(n^2). Pro inverze to bude nejspíš podobné, ale tam se mi zatím nepodařilo horní odhad zjistit. Celkem pochybuju, že by se ti podařilo překonat některý z těch rychlých algoritmů.


BRKOS - matematický korespondenční seminář pro střední školy

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson