Scilab
Z Wikipedie, otevřené encyklopedie
| Scilab | |
| vývojář | INRIA |
| aktuální verze | 5.0.3 (17. leden, 2009) |
| OS | GNU/Linux, UNIX, Windows |
| typ softwaru | Software pro vědeckotechnické výpočty |
| licence | SCILAB License (blízko k open source, ale nesplňuje podmínky OSI ani FSF) |
| web | www.scilab.org |
Scilab je volně šiřitelný program pro numerické výpočty podobný systému MATLAB. Program byl vytvořen francouzskými vědeckými institucemi INRIA a ENPC. Jeho licence umožňuje bezplatné používání, ale nesplňuje podmínky Open Source Initiative ani Free Software Foundation.
Program umožňuje provádět jak jednoduchou aritmetiku (násobení čísel), tak náročné výpočty. Scilab je například používán pro statistické analýzy, zpracování obrazu, simulace fyzikálních a chemických jevů.
Obsah |
[editovat] Práce v konzoli
Ačkoli Scilab umožňuje psaní skriptů, je pro seznámení se systémem (či letmé výpočty, kdy narychlo potřebujeme něco spočítat) vhodná konzole, která se automaticky spustí při spuštění Scilabu. Do této konzole lze rovnou zadávat jednotlivé příkazy. ty jsou po stisku klávesy Enter vykonány (práci v konzoli ukazuje tento videotutoriál).
Všechny dále uvedené příklady si můžete vyzkoušet v konzoli. Zápisem za symbol nového řádku (tj. -->) a stiskem klávesy Enter dojde k vykonání příkazů.
[editovat] Volání nápovědy
Při psaní programů se jistě mnohokrát stane, že si budeme chtít prostudovat nápovědu. Tu voláme příkazem help za nímž následuje klíčové slovo k němuž hledáme nápovědu. Například nápovědu k funkci sin zabrazíme zapsáním následujícího textu do konzole (příkaz musíme potvrdit stiskem klávesy Enter):
help sin
[editovat] Proměnné
Ačkoli Scilab rozlišuje datové typy, lze proměnnou deklarovat přímo přiřazením hodnoty bez nutnosti specifikace datového typu. Chceme-li například vytvořit proměnnou typu double s počáteční hodnotu 10, jedoduše zapíšeme:
a = 10
Proměnnou typu string vytvoříme takto:
a = "textova promenna"
Datový typ můžeme při vytváření proměnné přímo specifikovat. Budeme-li například chtít vytvořit proměnnou typu uint8 (osmibitový integer), zapíšeme:
a = uint(8)
Pozor na přetečení! Zkuste například do takto vytvořené proměnné uložit číslo 258.
[editovat] Matice
Základní datovou strukturou, kterou Scilab používá jsou matice (prakticky stejně je na tom také MATLAB) a celý systém je optimalizován právě pro práci s maticemi (ty jsou vůbec v numerické a aplikované matematice velice často užívanou strukturou).
Prvky v matici zapisujeme v hranatých závorkách "[ ]" do řádků a do sloupců. K oddělení jednotlivých sloupců slouží symbol mezery nebo symbol čárky ",". K oddělení (započetí) nového řádku slouží symbol středníku ";".
Tedy například matici:
bychom ve scilabu definovali jako:
a = [1 2; 3 4]
V prvním řádku matice typu 2x2 se nacházejí prvky 1 a 2. V druhém řádku, který je v zápisu oddělen středníkem, jsou prvky 3 a 4.
Můžeme vyzkoušet zápis nečtvercových matic. Například matici:
zapíšeme jako:
[1 2 5; 3 4 5; 3 1 10]
[editovat] Matice jako proměnná
Matici můžeme definovat jako proměnnou. Definujeme například matici A
A = [1 2; 3 4]
Takto vytvořenou proměnnou můžeme používat v dalších výrazech. Budeme například chtít spočítat dvojnásobek matice A a tento dvojnásobek uložit do proměnné C:
C = 2*A
[editovat] Indexace prvků
V již definované matici můžeme indexovat (přistupovat) jednotlivé prvky. Indexace se zapisuje stejně jako v mnoha jiných programovacích jazycích:
A(řádek, sloupec)
Tedy budeme-li chtít například z matice:
A = [1 2; 3 4]
získat prvek na druhém řádku a v prvním sloupci (tímto prvkem je v našem případě číslo 3), získáme tento prvek zápisem:
A(2,1)
[editovat] Vektrory
Vektory jsou v podstatě matice s jedním sloupcem v případě sloupcových vektorů nebo s jedním řádkem v případě řádkových vektorů. Zkusíme si zapsat vektory:
a
jako:
[1; 2; 3]
a
[1 2 3]
[editovat] Vektory jako pole
Vektory (a obecněji pak matice) jsou ve Scilabu používány podobně jako v jiných programovacích jazycích tzv. pole. Chceme-li například v jazyce C definovat pole, zapíšeme:
double[3] pole = {1, 2, 3};
Ve Scilabu stejnou proměnnou definujeme jednoduše vytvořením odpovídajícího vektoru (a je vpodstatě jedno, jestli sloupcového nebo řádkového).
pole = [1, 2, 3]
K jednotlivým prvkům pole pak přistupujeme přes indexy. Budeme-li například chtít druhý prvek pole, získáme jej zápisem.
pole(2)
[editovat] Toolboxy
Toolboxy jsou souborem funkcí, které rozšiřují základní sadu funkcí Scilabu. Mohou být buď komerční a nebo, což je mnohem častější případ, open source či volně šiřitelné. Autoři těchto toolboxů jsou buď samotní autoří Scilabu nebo jiní programátoři, často z univerzitního prostředí.
Určité množství toolboxů je dodáváno se Scilabem a lze si při instalaci zvolit, zda budou naistalovány. Jmenujme některé často používané toolboxy:
- Signal Processing
- Statistics
- Simulated Annealing
- Genetics Algorithms
Základní sadu můžeme rozšířit doinstalování nových toolboxů. Největší databází volně šiřitelných toolboxů je na stránkách autoru Scilabu v tzv. toolboxes center. Zde jsou toolboxy řazeny do kategorií a nalezneme toolboxy specializované napřklad na: neuronové sítě, data mining, GPIB komunikaci, metodu konečných prvků apod.
[editovat] Související články
[editovat] Externí odkazy
- www.scilab.org Domovská stránka projektu (v angličtině)
- scilab.ic.cz Stručný manuál a úvod do Scilabu (v češtině)
- Video tutoriál ke Scilabu (úvod) (v češtině)
- Se svolením autora bylo čerpáno z tohoto zdroje (v češtině)





