1) V článku chybí max. podporované velikosti matic. Např. zvládne to 50 000/50 000, 500 000x500 000, 5 000 000 x 5 000 000 a více? Přeci jenom matice 5x5 jsou možná tak pro študáky 1 semestru.
2) Když už řešíš operace s maticemi, bylo by vhodné předvést i iterace maticových řešení. (to je základ numerické matematiky u různých lineárních i nelineárních řešení např. v mechanice kontinua)
3) Docela často se potřebují i výpočet vlastních čísel (tvz. eigenvalue). Je podporováno?
4) Sorry ale naprosto zcestně vysvětluješ Choleskyho dekompozicí. Choleskyho dekompozice slouží k řešení soustav rovnic a nekončí rozložením vstupní matice na dvě trojůhelníkové(nad diagonálou, pod diagonálou). To je jenom první krok a další následují. Navíc ji zapomněl na splnění podmínky o minorech matice.
Ahoj, zkusím odpovědět:
1) čistě teoretické limity jsou dané současnou implementací vectorz/matrix, což znamená: počet dimenzí - int (32bit), offset mezi dimenzemi také int (2^31-1), počet prvků long (2^64-1). Takže v případě 2D matic by to bylo 2^32-1x2^32-1 prvků. Prakticky je to horší, protože interně se nakonec po "zploštění" celé struktury NDArray zavolá new double[n]
, takže na současných VM Javy to bude Integer.MAX_VALUE - 5
prvků.
2) Jj pravda. Zkusím dát dohromady rozumné příklady. Popravdě se mi ten článek natáhl tak o 1/3, takže by se to tam nevlezlo, ale něco vymyslím (vezmi asi z toho, co máme v R-ku :-)
3) Ano, existuje pro to funkce decomp-eigenvalue
. Chtěl jsem se jí věnovat příště (ještě jsou podporovány další rozklady matic).
4) díky za upozornění. Snažil jsem se popsat jen ten první krok realizovaný funkcí decomp-cholesky
, tj. získání matic L a L*. Na co se to dál použije, už je jiná věc ne? Zmínit jsem to pravda měl.
Jen na okraj, existuje tedy nějaká možnost aby solve vrátil rozumnější výsledek? Jako je mi jasný, že si to můžu vypočítat sám přes inverzní matici atd. atd., ale rozlišit mezi žádným řešením a nekonečně mnoha řešeními by bylo fajn. Ostatní tooly to imho řešit umí (Matlab například).
Incanter je super, ale co se vizualizace tyce, uprednostnuji
https://github.com/metasoarous/oz
Naopak!
Každopádně jsem měl za to, že můj příspěvek o OZ zmizel, a tak jsem pro jistotu okomentoval i první díl vašeho seriálu :-). Už se těším, až si na chvíli ulevím od Pythonu a vrátím se zase k CLJ...
(z trochu jiných vod) Musím doporučit ještě Metabase. Skvělý open-source self-service BI produkt napsaný v Clojure, který, zdá se mi, zdatně šlape na paty i komerčním produktům.