Pro výuku budeme používat program GNU/Octave, který lze stáhnout z webových stránek projektu. Jedná se o svobodný software, který je alternativou k programu MATLAB, se kterou je z větší míry zpětně kompatibilní (alespoň pro naše potřeby).
Odkazy na literaturu¶
Na internetu lze nalézt spoustu materiálů, ze kterých lze čerpat zdroje. Uvádím jen malý výběr:
GNU Octave - Free your numbers - oficiální odkumentace
Introduction to GNU Octave - A brief tutorial for linear algebra and calculus students - velmi čtivá kniha, která ukazuje praktické použití Octave jak pro potřeby algebry tak matematické analýzy
Diskuzní fórum GNU/Octave - diskuzní fórum, kde je možné řešit případné problémy
Krátký seriál o GNU/Octave v češtině - seriál je z roku 2006 - většina věcí platí, ale například tvorba grafů se dost změnila
Jak vypadá GNU/Octave po spuštění¶
Jakmile program spustíme, vidíme že se skládá z několika částí. Pro nás bude momentálně nejdůležitější okno na pravé strane, které se jmenuje Command window. Do tohoto okna budeme zadávat jednotlivé příkazy.

Základní použití¶
Octave lze použít jako obyčejnou kalkulačku, která zvládá všechny základní operace:
sčítání,
odčítání,
násobení,
dělení,
umocňování,
odmocňování.
1+1ans = 2
2-1ans = 1
2*3ans = 6
6/2ans = 3
2^3ans = 8
sqrt(16)ans = 4
Pokud chceme vypočítat odmocninu vyššího řádu, můžeme buď využít zlomků, nebo příkaz nthroot():
32^(1/5)
nthroot(32,5)ans = 2
ans = 2
Přirozeně je možné zapisovat i složitější výrazy a to i s využitím kulatých závorek:
4+3*2ans = 10
(4+3)*2ans = 14
Jak je vidět, GNU/Octave zachovává pořadí operací tak, jak jsme zvyklí, tj. operace jsou prováděny v následujícím pořadí:
závorky
mocnina odmocnina
násobení a dělení
sčítání a odčítání
S rostoucí komplexností výrazů roste i počet potřebných závorek. Je důležité si pamatovat, že používat lze pouze kulaté závorky, ostatní druhy závorek mají v programovacím jazyku jinou funkci. Stejně tak je třeba dýt pozor na to, že GNU/Octave používá desetinnou tečku másto desetinné čárky - jedná se o častý zdroj chyb!
Vyzkoušejte si zápis složitějších výrazů:
(3-7)/(3+1)ans = -1
(3+((3+4)/(4*2)+2))/(2+5)ans = 0.8393
Mezi další často používáné funkce patří exp() pro , log pro přirozený logaritmus, abs() pro absolutní hodnotu, sin() pro sinus, cos pro cosinus, tan pro tangens. Hodnotu konstanty zjistíme příkazem pi.
Proměnné¶
Stejně jako v jiných programovacích jazycích lze používat proměnné, do kterých budeme ukládat hodnoty. Na rozdíl od jiných programovacích jazyku není třeba provádět deklaraci proměnných. Stačí jen napsat název proměnné a pomocí ji přiřadit hodnotu a GNU/Octave už se o vše postará:
jablko=2jablko = 2
Vytvořili jsme proměnnou jablko do které jsme uložili hodnotu 2. Pokud bychom chtěli zjistit, jaká hodnota je v proměnné jablko uložena, stačí zadat název proměnné a její hodnota bude vypsána na obrazovku:
jablkojablko = 2
Proměnných si můžeme vytvořit, kolik bude třeba. Jen je při vymýšlení jejich názvu třeba myslet na základní pravidla:
Název proměné je tvořen písmeny a čísly, ovšem musí začínat písmenem.
Proměnné jsou case sentive - rozlišujeme u nich velká a malá písmena (jablko, Jablko, JABLKO a JaBlKo jsou 4 rozdílné proměnné)
V názvu proměnné je možné použít symbol
Není doporučeno používat jako názvy proměnných klíčová slova (názvy základních funckí apod.). Seznam klíčových slov lze vypsat za použití příkazu iskeyword
S jednotlivými proměnnými můžeme dále pracovat:
jablka = 2
hrusky = 5
jablka+hruskyjablka = 2
hrusky = 5
ans = 7
Výsledky můžeme ukládat do jiných proměnných:
stavebnice = 5
puzzle = 11
hracky = stavebnice+puzzlestavebnice = 5
puzzle = 11
hracky = 16
Pokud bychom chtěli hodnotu proměnné navýšit o jedna, lze použít následující postup:
hodnota = 5
hodnota = hodnota +1hodnota = 5
hodnota = 6
Tímto číslo uložené v proměnné hodnota zvýší o jedna. Pokud příkaz zadáme znovu, číslo se opět zvýší o jedna:
hodnota = hodnota+1hodnota = 7
Tvorba skriptů¶
Abychom nemusely příkazy psát pořád dokola, je možné tvořit skripty. Jedná se o posloupnost příkazů, které se postupně v daném pořadí vykonávají. Abychom toto mohli používat, je třeba si nejprve vybrat složku, do které budeme skripty ukládat (a ze které je budeme spouštět).
Postup:
Klikneme na ikonku složky uprostřed nahoře

Vybereme složku, ve které budeme dále pracovat
Vpravo dole se přepneme na
Editor, ve kterém budeme skripty tvořit.

V novém okně můžeme náš skript jako v textovém editoru. Před spuštěním je třeba skript uložit a pojmenovat. V názvu souboru napoužívejte diakritiku a mezery. Soubor se uloží s příponou
.m, ale jedná se o obyřejný textový soubor, který lze editovat třeba v poznámkovém bloku, pokud jej přejmenujete na txt.
Na obrázku vidíme jednoduchý skript, který jsme pojmenovali ovoce.m

Nás skript teď stačí spustit. K tomu slouží klávesa F5, ikonka ozubeného kola nebo se lze přepnout do
Command windowa napsat název souboru (bez přípony). Následně se všechny příkazy našeho skriptu povedou v uvedeném pořadí a vypíší se na obrazovku:

Tip: pokud nechcete vypisovat všechny příkazy na výstup, je možné jednotlivé příkazy potlačit pomocí středníku. Zkuste si spustit následující skript:
jablka = 1+1;
hrusky = (8+2)/4;
ovoce = jablka+hruskyovoce = 4.5000
Tvorba prvních skriptů¶
Výpočet objemu a povrchu kvádru¶
Naším ukolem bude vytvořit skript, který na základě zvolených délek stran kvádru vypočítá jeho objem a povrch.
%Vypocet objemu kvadru
%jednotlive strany
stranaA=5;
stranaB=7;
stranaC=10;
%vypocet objemu a povrchu
objem_kvadru=stranaA*stranaB*stranaC
povrch_kvadru=2*(stranaA*stranaB+stranaB*stranaC+stranaA*stranaC)objem_kvadru = 350
povrch_kvadru = 310
Komentář ke skriptu
Jednotlivé délky stran jsme uložili do proměnných s názvem
stranaA,stranaBastranaCvýsledný objem jsme uložili do proměnné
objem_kvadruvýsledný povrch jsme uložili do proměnné
objem_kvadruve skriptu jsme použili komentáře - jedná se o text, který je uvozen symbolem procenta. Komentáře se při spuštění skriptu ignorují (GNU/Octave je přeskakuje). Je vhodné používat komentáře, obzvlášť u složitějších skriptů, abychom se v nich později vyznali.
Výpočet kořenů kvadratické rovnice (s nezáporným diskriminantem)¶
Naším úkolem bude napsat skript, který na základě zadaných členů a kvadratické rovnice vypočítá jeho kořeny a , které uloží do porměnných x1 a x2
%Vypocet korenu kvadraticke rovnice (s nezapornym diskriminantem)
%Jedotlive cleny ulozime do promennych
a=2
b=9
c=4
%Vypocitame diskriminant
Diskriminant=b^2-4*a*c
%Vypocitame koreny rovnice
x1=(-b+sqrt(Diskriminant))/(2*a)
x2=(-b-sqrt(Diskriminant))/(2*a)a = 2
b = 9
c = 4
Diskriminant = 49
x1 = -0.5000
x2 = -4
Komentář ke skriptu
Skript jsme rozdělili do tří částí: uložení hodnot do proměnných a ; výpočtu diskriminantu do proměnné
Diskriminanta následného výpočtu kořenů.Pokud bychom chtěli výpočet zjednodušit, mohli bychom prostřední krok vynechat a počítat rovnou kořeny kvadratické rovnice
Tím bychom ale ztratili informaci o diskriminantu a navíc bychom ho vlastně počítali dvakrát - u obou kořenů
Tento skript už se nám může hodit - například pokud chystáme písemku a chce rychle spočítat kořeny pro námi vybrané členy a .
Jak tento kód vylepšit si ukážeme v prvním domácím úkolu.