240 likes | 483 Views
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
E N D
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 zklá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 M = [3 –4 1; –2 0 5; –3 2 4] • 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í mezh … horní mezk … 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í • loadjmeno.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] 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 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:3)=[1 -1 3] M(2,1:2:3)=[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 = 1:n x=[x,i^2] end for i=A příkazy end Vznikne vektor x=[1 4 9 16 25 …] • příkazy se vykonávají • pro každý prvek matice A 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.
if podmínka1 příkazy1; elseif podmínka2 příkazy2; … else příkazyX; end lze vypustit lze vypustit MATLAB: podmíněný příkaz if Rozhodování je (skoro) stejné jako ve VB: Relační operátory: <, >, <=, >=, ==, ~= Logické operátory: & (a současně), | (nebo), ~ (negace)
skript … posloupnost příkazů v externím souboru funkce … obsahuje hlavičku vstupní a výstupní proměnné MATLAB: programy Program = M-soubor:soubor s příponou m 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); % generujestejné 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í)