MATLAB
MATLAB Systém pro provádění numerických výpočtů a vizualizaci Umožňuje řešit úlohy mnohem pohodlněji než klasické programovací jazyky (C++, VB, Delphi, Fortran) Obsahuje mnoho funkcí Toolbox – přídavný modul obsahující další funkce FEMLAB nadstavba Matlabu pro řešení diferenciálních rovnic MATLAB = MATicová + LABoratoř Základní proměnná je matice (dvoudimenzionální pole)
MATLAB : proměnné Vytvoření matice: napsáním z klávesnice vytvořením pomocí funkce načtení ze souboru vytvořeného mimo Matlab Vytvoření napsáním z klávesnice: prvky jsou v hranatých závorkách oddělovač prvků je mezera nebo čárka oddělovač řádků je středník nebo Enter ans … proměnná při vynechání jména (answer)
MATLAB : proměnné M = [3 –4 1 –2 0 5 –3 2 4] nebo jedno číslo: matice o jednom řádku a sloupci řádkový vektor: matice o jednom řádku sloupcový vektor: matice o jednom sloupci A = 5 A = 5; % nevypíše se V = [3 –2 1] % řádkový vektor W = [–4; 1; 5] % sloupcový vektor
MATLAB : proměnné Zobrazení vytvořených matic: napsáním jména se zobrazí obsah matice who vypíše seznam proměnných whos vypíše navíc podrobné informace Mazání matic: clear M smaže matici M clear all smaže všechno
MATLAB : proměnné Vytvoření pomocí funkce (příklady): M = rand(m,n) % náhodná matice H = hilb(m) % Hilbertova matice C = magic(n) % magický čtverec Vektory s konstantním krokem: vek = d:k:h d … dolní mez h … horní mez k … krok Příklady: V1 = 1:2:7 V1 = 1 3 5 7 V2 = 1:7 V2 = 1 2 3 4 5 6 7
MATLAB : proměnné Načtení ze souboru: soubor musí být ve formátu ASCII (např. Poznámký blok) jeho obsahem musí být matice použije se příkaz čtení load jmeno.prp -ascii Uložení do souboru: save uloží všechno do matlab.mat příkaz load všechno načte po restartu Matlabu
MATLAB : operace Maticové operace: + sčítání – odčítání * násobení ^ umocňování ’ transponování \ levé dělení / pravé dělení Operace s polem: .* násobení .^ umocňování .\ levé dělení ./ pravé dělení Operace musí být proveditelná Maticové násobení není komutativní, proto dvě dělení x=A\b je řešení Ax=b x=b/A je řešení xA=b
MATLAB : operace Několik příkladů: A = [3 –4 1; –2 0 5; –3 2 4] C = A+B C = 5 –4 2 –3 1 1 0 0 5 C = A*B C = 13 –6 20 11 –10 3 4 –6 –7
MATLAB : operace Dělení: Ax=b A-1Ax=A-1b Ix=A-1b x=A-1b yM=c yMM-1=cM-1 yI=cM-1 y=cM-1 y=c/M x=A\b
MATLAB : operace Využití operace s polem: vykonávají se po prvcích tabulky a grafy funkcí Příklad: S=[1 2 3 4].* [1 2 3 4] S= 1 4 9 16 D=[1 2 3 4].^2 … totéž …
MATLAB : operace Tabulka a graf: x=0:0.01:1; % x-ové souřadnice y=x.*sin(1./x); % y-ové souřadnice tabulka = [x’ y’] % tabulka plot(x,y)
MATLAB : indexy Prvek v i-tém řádku a j-tém sloupci: M(i,j) M(2,3)=3 Vektorizování operací: méně cyklů = rychlejší výpočty M(2,[1,3])=[1 3] M(2,[1,2,3])=[1 -1 3] M(2,1:2:3)=[1 3] M(2,1:3)=[1 -1 3] M(2,:)=[1 -1 3]
MATLAB : speciální matice eye … jednotková matice zeros … nulová matice ones … matice jedniček diag … vybere nebo vytvoří diagonálu triu … vybere horní trojúhelníkovou část tril … vybere dolní trojúhelníkovou část rand … náhodná matice magic … magický čtverec hilb … Hilbertova matice toeplitz Skládání matic: A=ones(3) B=[A, zeros(3,2); zeros(2,3), eye(2)]
MATLAB : matem.funkce sin cos tan asin acos atan exp log … přirozený logaritmus rem … zbytek po celočíselném dělení abs … absolutní hodnota sqrt … odmocnina sign … znaménko round … zaokrouhlování floor … zaokrouhlování ceil … zaokrouhlování Nápověda: help, help plot
MATLAB : vektorové funkce max … maximální složka vektoru min … minimální složka vektoru sum … součet složek vektoru prod … součin složek vektoru sort … uspořádání složek vektoru any … existenční kvantifikátor all … obecný kvantifikátor vykonávají se po sloupcích
MATLAB : cyklus for Cyklus s daným počtem opakování: x=[]; for i=A for i = 1:n x=[x,i^2] end for i=A příkazy end příkazy se vykonávají pro každý prvek matice A Vznikne vektor x=[1 4 9 16 25 …] Stejný vektor v opačném pořadí: x=[]; for i = n:-1:1, x=[x,i^2], end
MATLAB : cyklus while Cyklus řízený podmínkou: while podmínka příkazy end Příklad: n=0; while 2^n < a n=n+1 end n Zobrazí nejmenší přirozené číslo n takové, že 2na.
MATLAB : podmíněný příkaz if Rozhodování je (skoro) stejné jako ve VB: if podmínka1 příkazy1; elseif podmínka2 příkazy2; … else příkazyX; end lze vypustit Relační operátory: <, >, <=, >=, ==, ~= Logické operátory: & (a současně), | (nebo), ~ (negace)
MATLAB : programy Program = M-soubor: soubor s příponou m skript … posloupnost příkazů v externím souboru funkce … obsahuje hlavičku vstupní a výstupní proměnné function [vystup]=jmeno(vstup) příkazy
MATLAB : programy Příklad: funkce počítající funkční hodnoty f(x) = (x2-2x+2)sinx function y=fce(x) y=(x.^2-2*x+2).*sin(x); Uloží se do souboru: fce.m Spuštění: y=fce(-1:0.1:2)
MATLAB : programy Příklad: skript, který nakreslí graf funkce dvou proměnných (vektorizovaný postup bez cyklů) x=-2:0.1:2; % x-ové souřadnice y=x; % y-ové souřadnice n=length(x); % počet souřadnic X=diag(x)*ones(n); % x-ové v matici X Y=ones(n)*diag(y); % y-ové v matici Y Z=exp(-X.^2-Y.^2); % funkční hodnoty mesh(x,y,Z) % graf [X,Y]=meshgrid(-2:0.1:2); % generuje stejné X a Y
MATLAB : alternativy Volně šiřitelné alternativy Matlabu: OCTAVE … http://www.octave.org SCILAB … http://www.scilab.org Programy pro symbolické počítání: komerční … Toolbox, Maple, Derive, Mathematica MAXIMA … http://maxima.sourceforge.net
MATLAB : alternativy Další studijní zdroje: Zaplatílek, Doňar: Matlab pro začátečníky. Zaplatílek, Doňar: Matlab tvorba uživatelských aplikací. Kermit Sigmon: Matlab Primer (1993 volné vydání)