Třída pro matice v C# (Strassenův algoritmus, LU rozklad)

Toto je jednoduchá třída, která obsahuje opravdu rychlé násobení matic (Strassenův algoritmus, který je cache oblivious), LU rozklad a další funkce.

Obsahuje mocnění celým číslem (-1 : inverze, ...), LU rozklad, který se dál používá pro výpočet determinantu inverze a řešení systému lineárních rovnic. Samozřejmostí jsou standardní funkce jako sčítání matic, násobení, transpozice ... Třída má vlastní systém vyjímek a přetížené operátory, takže lze psát

C = A * B;
D = -C;
...

Test

Při pokusu násobení matice 500x500 čísel je výpočet 3 krát rychlejší, než klasickým algoritmem ($O(n^3)$).

Stažení kódu

CS file
EXE example (.NET - Windows)

0 komentářů:

Okomentovat