====== Matlab v OPT ====== Domácí úlohy vypracujete v systému [[http://www.mathworks.com/products/matlab|Matlab]] (zkratka pro 'MAtrix LABoratory), 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]]. Matlab není zadarmo. Nicméně ČVUT si platí multilicenci [[https://download.cvut.cz/campus-wide-matlab|Campus-wide Matlab]], dostupnou v neomezeném počtu i pro studenty. Můžete použít buď Individuální instalaci (v tom případě si při instalaci zvolte i Optimization Toolbox) nebo Matlab Online (spolu s Matlab Drive). ===== Jak se Matlab naučit ===== Matlabský jazyk 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 před vypracováním první úlohy nastudujte! (tento pokyn se **opravdu, Opravdu, ale OPRAVDU** nevyplatí ignorovat!!!) To, co bude pro vás nové a na co dejte při studiu důraz, je způsob indexování maticových bloků. Zbytek se naučíte používáním a 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. 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 s 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]]. */