Jazyk pro matematické výpočty

Patyk

Jazyk pro matematické výpočty
« kdy: 19. 09. 2015, 20:56:22 »
Potřebuju naimplementovat několik matematických výpočtů, vesměs nějaké HMM a nezávisle na tom SAT. Budu to pouštět na počítači s několika jádry a 32-64 GB paměti. Jaký jazyk byste doporučili? Umím obstojně C++ a Javu (a C#, to ale asi na Linux moc není). HMM potřebuje spíš paměť a SAT zase spíše rychlost výpočtu. Kamarád tvrdí, že je to v podstatě jedno, ale existují nějaká kritéria (pro uvedené úlohy), jaký jazyk zvolit?


Kit

Re:Jazyk pro matematické výpočty
« Odpověď #1 kdy: 19. 09. 2015, 21:26:25 »
Pro HMM bych zvolil Octave. Pro daný účel se mi jeví jako nevýkonnější a zároveň nejpohodlnější.

JS

Re:Jazyk pro matematické výpočty
« Odpověď #2 kdy: 19. 09. 2015, 21:47:18 »
Se SAT se nepis, na to existuje kupa solveru. HMM mozna jo, ale i tak zalezi co delas. Jestli delas jen nejakou aplikaci, snaz se vyhnout tomu si to programovat sam.

Jestli je to skolni uloha (tedy podstatou je vlastni implementace), pouzil bych (byt tebou) C++.

A jestli chces jen neco napocitat, delej to v Pythonu nebo te Octave, usetris si nervy.

xxxxx

Re:Jazyk pro matematické výpočty
« Odpověď #3 kdy: 19. 09. 2015, 22:08:29 »
Matlab/octave ačkoli se někdy může zdát, že je to jak s dělem na komáry, bývá ve výsledku nejvhodnější a spolehlivá cesta.

A pokud by tam něco opravdu nevyšlo (výkonem-časově, ...), je možné nejen dělat externí moduly (nevím jak octave), ale i udělat export, spustit c++ (resp. libovolný) program, naimportovat, upravit, vyplivnout a výsledek se zase naimportuje do matlab. Jako nejzazší fallback.

mikrom

Re:Jazyk pro matematické výpočty
« Odpověď #4 kdy: 19. 09. 2015, 23:22:15 »
Na matematicke vypocty je klasicky najlepsi Fortran.


mikrom

Re:Jazyk pro matematické výpočty
« Odpověď #5 kdy: 19. 09. 2015, 23:42:59 »
Kto nie je schopny (alebo sa mu nechce) zvladnut Fortran moze pouzit systemy ala Matlab
Bol tu sice doporucovany len system Octave:
https://www.gnu.org/software/octave/
Ale ja som pouzival v minulosti Scilab, pretoze vtedy bol bilzsie k Matlabu ako Octave (neviem aky je stav teraz)
http://www.scilab.org/
Najlepsie nainstaluj si obidva a porovnaj co ti viac vyhovuje.

alebo SciPy
http://www.scipy.org/

existuju este rozne free CAS systemy ako:
http://maxima.sourceforge.net/
http://www.sagemath.org/
Ma to interaktivny notebook a neviem ako sa v tom da nieco naprogramovat
 

k

Re:Jazyk pro matematické výpočty
« Odpověď #6 kdy: 20. 09. 2015, 00:10:52 »
Umím obstojně C++ a Javu (a C#, to ale asi na Linux moc není).

Neumíš nic z toho, akorát marníš nanicovatě čas na diskuzích. V opačném případě by to již dávno bylo vypočítáno.

technomaniak

Re:Jazyk pro matematické výpočty
« Odpověď #7 kdy: 20. 09. 2015, 06:44:51 »
Umím obstojně C++ a Javu (a C#, to ale asi na Linux moc není).

Neumíš nic z toho, akorát marníš nanicovatě čas na diskuzích. V opačném případě by to již dávno bylo vypočítáno.

Tak to je drastická odpověd, nicméně může být pravdivá.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Jazyk pro matematické výpočty
« Odpověď #8 kdy: 20. 09. 2015, 08:02:17 »
Umím obstojně C++ a Javu (a C#, to ale asi na Linux moc není).

Neumíš nic z toho, akorát marníš nanicovatě čas na diskuzích. V opačném případě by to již dávno bylo vypočítáno.

Tak to je drastická odpověd, nicméně může být pravdivá.

Nereagujme na debilní troly.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Jazyk pro matematické výpočty
« Odpověď #9 kdy: 20. 09. 2015, 08:04:31 »
Se SAT se nepis, na to existuje kupa solveru. HMM mozna jo, ale i tak zalezi co delas. Jestli delas jen nejakou aplikaci, snaz se vyhnout tomu si to programovat sam.

Jestli je to skolni uloha (tedy podstatou je vlastni implementace), pouzil bych (byt tebou) C++.

A jestli chces jen neco napocitat, delej to v Pythonu nebo te Octave, usetris si nervy.

Doporučuju Minisat, je to napsané v C, takže to jde volat z čehokoliv. Python bych asi neriskoval, C++ je pro HMM lepší volba.

Kit

Re:Jazyk pro matematické výpočty
« Odpověď #10 kdy: 20. 09. 2015, 08:18:57 »
Na matematicke vypocty je klasicky najlepsi Fortran.

S tím plně souhlasím.

Nechápu, jak někdo může doporučit C++, které se na matematické výpočty nehodí, protože je příliš univerzální. Vždyť ani neumí vynásobit pole konstantou, neumí pracovat s komplexními čísly, neumí přeskupit řádky/sloupce v maticích...

Re:Jazyk pro matematické výpočty
« Odpověď #11 kdy: 20. 09. 2015, 08:39:52 »
Nemůžu doporučit z vlastní zkušenosti, protože jsem to nikdy nepoužíval, ale každopádně v Rku existují na oboje knihovny:


Pokud by ses rozhodl použít Rko, tak silně doporučuju jako první krok dobře pročíst a dobře vyzkoušet tohle: http://www.johndcook.com/blog/r_language_for_programmers/ Pokud na něj totiž půjdeš s programátorským předporozuměním, tak si vytrháš všechny vlasy, je to (pro programátora) poněkud nezvyklý jazyk :)

Taky je u Rka potřeba myslet na to, že ten samotný jazyk je pomalý, takže se používat jenom pro "high-level" manipulace s daty, vlastní implementace těch operací je už rychlá. Ale to je podobné i s Pythonem.

Radovan.

Re:Jazyk pro matematické výpočty
« Odpověď #12 kdy: 20. 09. 2015, 10:01:06 »
Na matematicke vypocty je klasicky najlepsi Fortran.

Přesně tak, pro tohle Fortran vznikl a dodnes to dělá nejlépe ze všech.

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Jazyk pro matematické výpočty
« Odpověď #13 kdy: 20. 09. 2015, 10:38:24 »
Na matematicke vypocty je klasicky najlepsi Fortran.

Přesně tak, pro tohle Fortran vznikl a dodnes to dělá nejlépe ze všech.

Fortran je ovsem jazyk znacne staricky, nekdy z doby, kdy mel Zizka jeste obe oci. Jestlipak se od dob sveho vzniku aspon trochu zmodernizoval? Jestli se nahodou dodnes nepouziva hlavne proto, ze jsou pro nej knihovny snad uplne na vsechno, co by cloveka mohlo napadnout.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Jazyk pro matematické výpočty
« Odpověď #14 kdy: 20. 09. 2015, 10:45:24 »
Na matematicke vypocty je klasicky najlepsi Fortran.

Přesně tak, pro tohle Fortran vznikl a dodnes to dělá nejlépe ze všech.

To je hlavně o knihovnách, a ty existují ve většině jazyků. Než se učit Fortran, je lepší vzít C++ nebo Javu a naučit se používat nějakou dobrou knihovnu.