Matematické Fórum


1. 8. 2026 (L) Fórum bude brzy uzavřeno 😿

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