Linux E X P R E S

Facebook

Scilab: Numerické výpočty, grafy - zkrátka matematika

scilab.jpg

Scilab je vědecký software vyvíjený francouzskými institucemi INRIA a ENCP. Jde o software pro numerické výpočty, vykreslování 2D a 3D grafů, zpracování signálu a simulace. Obsahuje spoustu matematických funkcí a je částečně kompatibilní s Matlabem.


ScilabScilab

Scilab můžete najít v repozitářích některých distribucí (Ubuntu nebo Mandriva Linux) a nebo stáhnout ze stránek projektu. K dispozici je také nápověda a několik demoukázek, které jsou použity pro první tři obrázky. (Maskot v perexu také pochází ze stránek Scilabu.) Existuje několik návodů.

Výpočty metodou konečných prvkůVýpočty metodou konečných prvků

Ukázka animace ve ScilabuUkázka animace ve Scilabu

Po spuštění Scilabu se otevře konzole, do které můžete začít psát příkazy. Dále je k dispozici několik ikon, které slouží k otevření a uložení souboru, operace se schránkou, změna písma a tisk. V menu pak můžete najít několik dalších voleb. Doporučuji jít do menu Applications, kde najdete editor SciPad, dále Scicos, což je něco jako Matlab Simulink, a nakonec ještě překladač Matlab to Scilab. SciPad můžete používat pro psaní skriptů, přičemž SciPad bude barevně odlišovat příkazy. Můžete si zvolit barevné schéma Scilab nebo XML. Dále SciPad můžete použít pro debugging a nebo spuštění vámi napsaných příkazů ve Scilabu.

SciPadSciPad

Scicos je nástroj pro tvorbu simulací. Princip je v podstatě stejný jako u Matlab Simulink. Pokud se Simulinkem zkušenosti nemáte, nevadí, pokusím se Scicos v krátkosti představit. Po spuštění Scisos z menu Applications se otevře rozhraní pro návrh vaší simulace. Návrh se provádí pomocí bloků. Blok může být například zdroj signálu nebo graf. Bloky pak spolu propojujete v jeden funkční celek, který pak můžete simulovat. Tímto způsobem se dá například simulovat hydraulický nebo elektrický obvod, ale také můžete Scicos klidně použít k řešení rovnic a bloky tak využít k lepší vizualizaci. Příklad využití Scicosu.

Další ukázkaDalší ukázka

Překladač z Matlabu do Scilabu jsem vyzkoušel na několika příkladech, ale moc uspěšný jsem nebyl. Ze tří různých skriptů mi přeložil jenom jeden. Zde úspěšnost určitě bude u každého uživatele jiná, a to podle složitosti jeho matlabovských skriptů. Scilab dále umožňuje propojení s Labview, kdo tedy Labview používá, tak tuto možnost možná ocení.

Zápis ve Scilabu je podobný tomu z Matlabu, budete-li počítat matice, vektory nebo skaláry, tak se Scilabem vám to půjde dobře. Zápis je jednoduchý, ale i tak uvedu pár příkladů.

x = -10:2:10;
y = x^2;
plot(x,y);

Pokud použijete ; tak se nezobrazí výpis výsledků. Schválně si zkuste napsat:

x = 1:50;
x = 1:50

Matice můžete zapisovat takto:

A = [ 1 2 3;4 5 6]
B = A'
zeros (A)
eye (B)

Komplexní čísla jsou také možná.

a = 1+2*%i
b = sqrt(-4)

A chcete-li integrovat, pak napište:

function y=myfunc(x), y = sin(x^2+4*x)^2, endfunction
w = integrate('myfunc(x)','x',0,50)

Pokud použijete tic, tak vám Scilab navíc vypíše čas, který potřeboval ke spočítaní úlohy.

function y=myfunc(x), y = sin(x^2+4*x)^2, endfunction
tic(); w = integrate('myfunc(x)','x',0,50), elapsed_time = toc()

Můžete to tedy použít jako jednoduchý benchmark na hrubý výkon procesoru, například:

tic(); function h = hilbert(n), h = zeros(n, n), for i = 1:n, for j = 1:n, h(i,j) = 1/(i + j - 1), end, end, endfunction, hilbert(1000); elapsed_time = toc ()

Na mém notebooku s Core2Duo T7300 2GHz je výsledek 2,697 sekundy.

Pokud vás zajímá výkon jednotlivých programů, včetně Matlabu, tak si můžete prohlédnout benchmark. Velmi dobrých výsledků dosahuje R (viz článek Matematický software R: S ním je každá statistika hezčí).

Pokud vás Scilab zaujal, tak jej doporučuji vyzkoušet, hlavně hledáte-li náhradu za Matlab Simulink. Scicos sice nedosahuje kvalit Simulinku, ale zase je zdarma. Pokud vám jde spíše o počty, tak Scilab může taky dobře posloužit, já osobně dávám přednost R, ale například velmi populární je i Octave nebo Freemat.

Diskuze (2) Nahoru