Transcript prezentace
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é nebo M = [3 –4 1 –2 0 5 –3 2 4] M = [3 –4 1; –2 0 5; –3 2 4] jedno číslo: řádkový vektor: sloupcový vektor: matice o jednom řádku a sloupci matice o jednom řádku matice o jednom sloupci A=5 A = 5; V = [3 –2 1] W = [–4; 1; 5] % nevypíše se % řádkový vektor % 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 clear all smaže matici M smaže všechno MATLAB : proměnné Vytvoření pomocí funkce (příklady): M = rand(m,n) H = hilb(m) C = magic(n) % náhodná matice % Hilbertova matice % magický čtverec Vektory s konstantním krokem: vek = d:k:h d … dolní mez Příklady: h … horní mez V1 = 1:2:7 V1 = 1357 V2 = 1:7 V2 = 1234567 k … krok 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 Uložení do souboru: jmeno.prp -ascii save uloží všechno do matlab.mat příkaz load všechno načte po restartu Matlabu MATLAB : operace Maticové operace: + – * ^ ’ \ / Operace s polem: sčítání odčítání násobení umocňování transponování levé dělení pravé dělení .* .^ 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 x=b/A je řešení je řešení Ax=b xA=b MATLAB : operace Několik příkladů: A = [3 –4 1; –2 0 5; –3 2 4] B = [2 0 1; –1 1 –4; 3 –2 1] C = A+B C = 5 –4 2 –3 1 1 0 0 5 C = A*B C = 13 –6 11 –10 4 –6 20 3 –7 MATLAB : operace Dělení: 2 1 1 1 1 1 2 x1 x2 3 x3 0 x1 x2 3 x3 2 x1 x2 2 x3 5 3 x1 0 3 x 2 2 2 x 3 5 Ax=b A-1Ax=A-1b Ix=A-1b x=A-1b x=A\b x1 , x2 , 2 x3 1 3 1 1 3 1 1 0, 2 yM=c yMM-1=cM-1 yI=cM-1 y=cM-1 y=c/M 2, 5 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: 2 M 1 1 1 1 1 3 3 2 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 zeros ones diag triu tril rand magic hilb toeplitz … jednotková matice … nulová matice … matice jedniček … vybere nebo vytvoří diagonálu … vybere horní trojúhelníkovou část … vybere dolní trojúhelníkovou část … náhodná matice … magický čtverec … Hilbertova matice 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 rem abs sqrt sign round floor ceil Nápověda: … přirozený logaritmus … zbytek po celočíselném dělení … absolutní hodnota … odmocnina … znaménko … zaokrouhlování … zaokrouhlování … zaokrouhlování help, help plot MATLAB : max min sum prod sort any all vektorové funkce … maximální složka vektoru … minimální složka vektoru … součet složek vektoru … součin složek vektoru … uspořádání složek vektoru … existenční kvantifikátor … obecný kvantifikátor vykonávají se po sloupcích MATLAB : cyklus for Cyklus s daným počtem opakování: for i=A příkazy end příkazy se vykonávají pro každý prvek matice A x=[]; for i = 1:n x=[x,i^2] end 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 Relační operátory: Logické operátory: lze vypustit lze vypustit <, >, <=, >=, ==, ~= & (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; y=x; n=length(x); X=diag(x)*ones(n); Y=ones(n)*diag(y); Z=exp(-X.^2-Y.^2); mesh(x,y,Z) % x-ové souřadnice % y-ové souřadnice % počet souřadnic % x-ové v matici X % y-ové v matici Y % funkční hodnoty % 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í … MAXIMA … Toolbox, Maple, Derive, Mathematica 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í)