====== Matlab v předmětu Optimalizace ====== Na cvičeních budete používat systém [[http://www.mathworks.com/products/matlab|Matlab]], který sdružuje prostředky pro výpočty, vizualizaci, ladění a programování numerických úloh. Jedná se o široce rozšířeným systémem pro vědecko-technicé výpočty. Je používán na více než 3500 universitách a ve stovkách velkých firem, koukněte např. [[http://www.iflscience.com/technology/40-tech-skills-that-will-land-you-an-82000plus-salary/all/|sem]] nebo na [[https://en.wikipedia.org/wiki/MATLAB|wikipedii]]. ===== Jak ho získat ===== /* [[http://www.feld.cvut.cz/user-info/matlab.html|multilicenci FEL]]. */ Matlab není zadarmo. Nicméně student si může doma zadarmo nainstalovat [[http://download.cvut.cz|multilicenci ČVUT]] Matlabu s pomocí Hlavního přístupového hesla. Pozor: [[http://www.feld.cvut.cz/user-info/matlab.html|Multilicenci FEL]] nepoužívejte, protože není určena pro výuku. Multilicence vyžaduje ČVUT IP (147.32.x.x), tedy při práci musíte být připojení na vnitřní síť ČVUT. Doma toho lze dosáhnout tak, že si nainstalujete klienta [[http://svti.fel.cvut.cz/cz/services/vpn.html|VPN]] (Virtual Private Network). /* V nouzi lze použít volně dostupnou okleštěnou variantu Matlabu zvanou [[http://www.gnu.org/software/octave|Octave]]. */ ===== Jak se ho naučit ===== Matlab není obtížný. Nebudeme vás jej učit na cvičení, ale naučte se jej prosím sami doma: * Projděte si [[http://cmp.felk.cvut.cz/cmp/courses/OPT/cviceni/01/Matlab-Tutorial.html|rychlokurs základních příkazů]]. To dělejte přímo v Matlabu. * Vytiskněte si a přečtěte tento {{primer40.pdf|tutorial}}. Je sice starý, ale zcela vyhovující. Tyto tutorialy si na začátku semestru opravdu nastudujte, **neignorujte to**! Zbytek se naučíte používáním a častým vypisováním dokumentace příkazem 'help'. Existuje nepřeberné množství dalších materiálů o Matlabu na webu. Nadšenci ocení [[http://www.mathworks.com/moler/chapters.html|knihu]] o numerickém počítání v Matlabu. Užitečné je vědět, [[http://www.csc.kth.se/utbildning/kth/kurser/DN2255/ndiff13/matopt.pdf|jak psát rychlý matlabský kód]]. Není nutné mít nejposlednější verzi Matlabu, spíše je to na škodu. Pro naše účely by stačila i prastará (rok 1992) verze 4.0. Matlab má integrované prostředí: příkazové okno, grafiku, editor a debugger. I když to svádí k velmi časté práci myší, tak ten správný způsob práce je z //příkazové řádky//. Z té zadáváme příkazy, vypisujeme proměnné, spouštíme kód. Jednou z mála výjimek je debugger, který je pohodlnější obsluhovat myší. Kód vám typicky nebude chodit "na první zapojení". I když programovací jazyk je //syntakticky// jednoduchý, //význam// příkazů může být složitý, díky použití maticového zápisu. Matlab umožňuje velice hutný zápis a tedy už jediný řádek programu může dělat velmi mnoho. Proto je třeba kód ladit //kousek po kousku//. Každý kousek (pokud možno každý řádek) je nutno pečlivě otestovat: vypsat si vektory a matice před a po jeho vykonání a zkotrolovat, zda splňují všechny matematické vztahy, které mají splňovat. Mnozí studenti //neumějí programovat//, ať už v Matlabu nebo jiném jazyku. Těm mohou být užitečné rady o [[https://cw.felk.cvut.cz/doku.php/help/common/ladeni_programu|psaní a ladění programu]] (i když jsou určené pro jiný předmět). /* ===== Jiné optimalizační toolboxy ===== Kromě optimalizačního toolboxu prodávaného firmou Mathworks existuje mnoho jiných optimalizačních toolboxů do Matlabu. Příkladem je [[http://mosek.com/products/mosek/|Mosek Optimization Software]]. Mosek není freeware, ale lze ho [[http://mosek.com/resources/downloads|stahnout zde]] a získat [[http://license.mosek.com/academic/|Free Academic License]]. Pro instalaci na váš operační systém (Linux/MacOS/Windows) můžete použít [[http://docs.mosek.com/7.0/toolsinstall.pdf|návod]]. */