350 likes | 557 Views
Príklady k úvodu do Matlabu Š. Kozák 2002-2004. % Výpis obsahu pracovného priestoru A=[1 2;4 1]; b=12; c=5; n=[1 3 5 2]; who %-- pre pokračovanie stlačte klávesu --- pause % Výpis matice A, rozmerov matice A a dlžky vektora n disp(A) size(A) length(n)
E N D
Príklady k úvodu do Matlabu Š. Kozák 2002-2004
% Výpis obsahu pracovného priestoru A=[1 2;4 1]; b=12; c=5; n=[1 3 5 2]; who %-- pre pokračovanie stlačte klávesu --- pause % Výpis matice A, rozmerov matice A a dlžky vektora n disp(A) size(A) length(n) %-- pre pokračovanie stlačte klávesu --- pause % Uloženie premenných do súbora data1 save data1 % Vymazanie pracovného priestoru clear % Opatovné prezretie pracovného priestoru who %-- pre pokračovanie stlačte klávesu --- pause
% Načítanie premenných zo súbora data1 load data1 % Výpis pracovného priestoru whos %-- pre pokračovanie stlačte klávesu --- pause % Výpis súborov v aktuálnom adresári what %-- pre pokračovanie stlačte klávesu --- pause % Hľadanie súboru polyfit which polyfit %-- pre pokračovanie stlačte klávesu --- pause % Výpis všetkých toolboxov help %-- pre pokračovanie stlačte klávesu --- pause % Pomoc na slovo magic help magic %-- pre pokračovanie stlačte klávesu --- pause
% Help na toolbox matfun help matfun %-- pre pokračovanie stlačte klávesu --- pause % Pomoc na slovo inverse help inverse %-- pre pokračovanie stlačte klávesu --- pause % Hľadanie všetkých funkcií na kľúčové slovo inverse lookfor inverse %-- pre pokračovanie stlačte klávesu --- pause % Pomoc na slovo sin help sin %-- pre pokračovanie stlačte klávesu --- pause % Nájdenie m-súbora fftdemo which fftdemo %-- koniec ukážky --- echo off
% Ukážka použitia rôznych formátov čísiel x=[4/3 1.2345e-6] format short x format short e x format short g x format long x format long e x format long g x format bank x format rat x %-- pre pokračovanie stlačte klávesu --- pause
echo on % Príklady kapitola č.3 % Zápis aritmetických operátorov A=[4 6]; B=[1 2]; C=A./B.^2 C=(A./B).^2 %-- pre pokračovanie stlačte klávesu --- pause % Použitie relačných operátorov A=[2 7 6;9 0 -1;3 1 6]; B=[8 0.2 0;-3 2 5;4 -1 7]; A < B %-- pre pokračovanie stlačte klávesu --- pause % Použitie logických operátorov a=[1 0 4 2 0 5]; b=[5 3 1 0 0 7]; a & b % Operácia AND a | b % Operácia OR ~ a % Operácia NOT %-- pre pokračovanie stlačte klávesu --- pause
A = [1 2 3;4 5 6;7 8 10] %-- pre pokračovanie stlačte klávesu --- pause % zlý zápis výrazu s druhou odmocninou % rho = (1+sqt(4) ) / 2 %-- pre pokračovanie stlačte klávesu --- % pause % Ukážka zákazu výpisu A = eye(30); %-- pre pokračovanie stlačte klávesu --- pause % Zápis dlhého výrazu s = 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + 1/7 ... - 1/8 + 1/9 - 1/10 + 1/11 - 1/12; %-- pre pokračovanie stlačte klávesu --- % pause
% Nájdenie všetkých čísiel z vektora c v intervale (10, 30) c=[2 12 5 8 15 18 56 35 25 32]; index=find(c>10 & c<30) c(index) %-- pre pokračovanie stlačte klávesu --- pause % Zistenie, či prvkom vektora je reťazec alebo infinitív a=[1 -2000 3 inf 89]; b=[-40 5 inf 9 'ahoj' 2]; isstr(a) isstr(b) isinf(a) isinf(b) %-- pre pokračovanie stlačte klávesu --- Pause % Ukážka funkcie xor, ktorá vracia 1, ak jeden operand je nenulový a súčasne druhý je nulový. Inak vracia 0. a = 1; b = 1; xor(a,b) %-- pre pokračovanie stlačte klávesu --- pause
% Nájdenie všetkých stĺpcov s nenulovými prvkami. A=[0 1 2 5;3 4 0 7]; all(A) %-- pre pokračovanie stlačte klávesu --- pause Zápis komplexných čísel 1+2i , p i 1+2*i pi*i %-- pre pokračovanie stlačte klávesu --- pause % Odpoveď pri delení nulou 12/0 %-- pre pokračovanie stlačte klávesu --- pause % Zistenie najmenšieho a najväčšieho reálneho čísla realmax realmin %-- pre pokračovanie stlačte klávesu --- pause
% Zistenie aktuálneho dátumu date %-- pre pokračovanie stlačte klávesu --- pause % Zistenie aktuálneho času spolu s dátumom v tvare vektora clock %-- pre pokračovanie stlačte klávesu --- pause % Konverzia dátumového reťazca na sériové dátumové číslo d1=datenum('02-Oct-1996') %-- pre pokračovanie stlačte klávesu --- pause % Konverzia sériového dátumového čísla na dátumový reťazec d2=datestr(d1+10) %-- pre pokračovanie stlačte klávesu --- pause % Konverzia na dátumový vektor dv1=datevec(d1) dv2=datevec(d2) %-- koniec ukážky --- echo off
% Určenie veľkosti a fáz. uhla vektora v komp. rovine s koncovým bodom b=6+8i b=6+8i; velkost=abs(b) uhol=angle(b) %-- pre pokračovanie stlačte klávesu --- pause % Určenie reálnej a imaginárnej časti prvkov matice A A=[4i -3+5i;-1-7i 6]; realcast=real(A) imagcast=imag(A) %-- pre pokračovanie stlačte klávesu --- pause % Zistenie komplexne združeného čísla k číslu 2+7i conj(2+7i) %-- pre pokračovanie stlačte klávesu --- Pause % Funkcia signum reálneho a komplexného čísla, vektora sign(-5) sign(6+8i) sign([12 0 -3 4]) %-- pre pokračovanie stlačte klávesu --- pause
% Zvyšok po delení reálneho čísla a vektora rem(27,6) rem([45 12 37],7) %-- koniec ukážky --- echo off
echo on % Príklady kapitola č.5 % Zápis medzera, bodkočiarka A=[1 2 3;4 5 6;7 8 9] %-- pre pokračovanie stlačte klávesu --- pause % Zápis matice (po riadkoch) čiarka, Enter A=[1,2,3 4,5,6 7,8,9] %-- pre pokračovanie stlačte klávesu --- pause % Výber prvku matice A B=A(2,2) B=A(1,3) %-- pre pokračovanie stlačte klávesu --- Pause % Výber 2. riadku matice A, výber 3.stĺpca matice A B=A(2,:) B=A(:,3) %-- pre pokračovanie stlačte klávesu --- pause
% Výber časti matice B=A(2:3,1:2) % výber 2. až 3.riadku a 1. až 2.stĺpca B=A(1,1:2) % výber 1.riadku a prvých dvoch stĺpcov %-- pre pokračovanie stlačte klávesu --- pause
% Výber hlavnej diagonály a subdiagonály b = diag(A) b = diag(A,-1) %-- pre pokračovanie stlačte klávesu --- pause % Zámena stĺpcov, zámena riadkov B = fliplr(A) B = flipud(A) %-- pre pokračovanie stlačte klávesu --- pause % Zistenie rozmeru matice, otočenie matice o 90 stupňov doľava rozmer=size(A) B = rot90(A) %-- pre pokračovanie stlačte klávesu --- pause % Vytvorenie dolnej trojuholníkovej matice B = tril(A) B = tril(A,-1) %-- pre pokračovanie stlačte klávesu --- pause % Vytvorenie hornej trojuholníkovej matice B = triu(A) B = triu(A,1)
% Súčet a rozdiel matíc C, D C= [1 2;7 8]; D= [3 -5;-1 4]; C+D C-D %-- pre pokračovanie stlačte klávesu --- pause % Násobenie matíc b= [2;6]; C*D C*b %-- pre pokračovanie stlačte klávesu --- pause % Transpozícia a umocnenie matice C C' C^2 %-- pre pokračovanie stlačte klávesu --- pause % Násobenie po prvkoch a umocňovanie po prvkoch C= [1 3;4 -2]; D= [2 5;2 4]; C.*D C.^2
% Ľavé delenie matíc A= [1 2;7 8]; b= [3 -5;-1 4]; x=A\b % Pravé delenie matíc y=b/A %-- pre pokračovanie stlačte klávesu --- pause % Riešenie sústavy lineárnych rovníc v tvare A.x = b A=[5 8 9;1 -2 3;2 -5 3]; % Rovnice 5x1+ 8x2+ 9x3 = 48 b=[48;6;1]; % x1 - 2x2+ 3x3 = 6 x=A\b % 2x1 - 5x2+ 3x3 = 1 %-- pre pokračovanie stlačte klávesu --- Pause % Vnútorný súčin vektorov x= [1;3;4]; y= [3;5;2]; x'*y % Vonkajší súčin vektorov x*y' %-- pre pokračovanie stlačte klávesu --- pause % Vytvorenie vektora x s prvkami od 0 po 3 a krokom 0,5 x=0:0.5:3
% Vytvorenie vektora y s prvkami od 10 po 15 delením 1 y=10:15 %-- pre pokračovanie stlačte klávesu --- pause % Vytvorenie diagonálnej matice C = diag([1 2 3]) %-- pre pokračovanie stlačte klávesu --- pause % Vytvorenie matice, prvky ktorej sú náhodne vybrané čísla % z intervalu (0,1) rand(2,3) %-- pre pokračovanie stlačte klávesu --- Pause % Vytvorenie stavovej matice systému Asys, kde % systém je opísaný charakteristickým polynómom s4+8s3+5s2+3s+1. Asys = [zeros(3,1) eye(3); -1 -3 -5 -8] %-- koniec ukážky --- echo off
echo on % Príklady pre kapitolu č.6 % Výpočet determinantu matice A A=[4 -2 1;-1 5 6;2 0 5]; det(A) %-- pre pokračovanie stlačte klávesu --- pause % Súčet diagonálnych prvkov matice B B=[1 0 2;2 3 4;4 6 8]; trace(A) %-- pre pokračovanie stlačte klávesu --- pause % Počet lineárne nezávislých riadkov matice B rank(B) %-- pre pokračovanie stlačte klávesu --- pause % Zistenie čísla podmienenosti matice X=[4 -1 2;2 5 6;-2 0 7]; cond(X)
% Zistenie maximálneho prvku diagonálnej matice X X=[4 -1 2;2 5 6;-2 0 7]; norm(X) % Zistenie maximálneho súčtu prvkov v stĺpci matice X norm(X,1) % Zistenie maximálneho súčtu prvkov v riadku matice X norm(X,inf) %-- pre pokračovanie stlačte klávesu --- pause % Použitie príkazu null % existuje matica Q neexistuje matica Q A=[1 -2;-3 6]; B=[1 2;3 5]; Q=null(A) Q=null(B) %-- pre pokračovanie stlačte klávesu --- pause
% Ortogonalizácia matice: % riadky matice A sú nezávislé riadky matice B sú závislé A=[1 2 -3;3 5 2;4 6 1]; B=[4 2 -3;1 -2 2;2 -4 4]; Q=orth(A) Q=orth(B) %-- pre pokračovanie stlačte klávesu --- pause % Určenie inverznej matice k matici A A=[1 5 2;4 -2 1;-3 3 2]; Ainv = inv(A) %-- pre pokračovanie stlačte klávesu --- pause % Pseudoinverzia matice C C=[1 0 -0.04;0 1 0.2]; Y =pinv(C) %-- pre pokračovanie stlačte klávesu --- pause
% Ortogonálno-triangulárny rozklad matice A % bez matice permutácií E s maticou permutácií E A=[1 5 2;4 -2 1;-3 3 2]; [Q,R]=qr(A) [Q,R,E]=qr(A) %-- pre pokračovanie stlačte klávesu --- pause % Choleského faktorizácia matice B B=pascal(4) R=chol(B) %-- pre pokračovanie stlačte klávesu --- pause % LU faktorizácia matice B [L,U]=lu(A) %-- pre pokračovanie stlačte klávesu --- pause %Príklady na singulárny rozklad matice: % celý rozklad, výpis iba prvkov diagonály matice A=[1 5 2;4 -2 1;-3 3 2]; [U,S,V]=svd(A) svd(A)
% Výpočet vlastných vektorov a kor. Poly.n (eig a poly ) pre stav. modely % Úlohou je určiť modálnu maticu M, maticu vlastných vektorov systému, zo zadanej % matice A1 opisujúcej stavový model systému pomocou príkazu A1=[0 1 0;0 0 1;-0.5 -5.6 -6.1];[ M,D]=eig(A1) [M,D]=eig(A1) %-- pre pokračovanie stlačte klávesu --- pause % Zistenie charakteristického polynómu systému príkazom poly(A1) polynom=poly(A1) %-- pre pokračovanie stlačte klávesu --- pause % Výpočet exponenciálnej funkcie matice A2 maticovou funkciou A2=[0 1 0;0 0 1;-2.5 -3.2 -8.1]; expm(A2) %-- pre pokračovanie stlačte klávesu --- pause % Výpočet exponenciálnej matice A2 cez vlastné hodnoty vektora [V,D]=eig(A2); V*diag(exp(diag(D)))/V %-- pre pokračovanie stlačte klávesu --- pause
% Výpočet sínusu matice A2 maticovou funkciou funm(A2,'sin') %-- pre pokračovanie stlačte klávesu --- pause % Vytvorenie sprievodnej matice pre polynóm P P=[1 -2 5 3]; compan(P) %-- pre pokračovanie stlačte klávesu --- pause % Vytvorenie magickej štvorcovej matice o rozmere 4x4 magic(4) %-- pre pokračovanie stlačte klávesu --- pause % Vytvorenie Hankelovej matice hankel([1 2 3]) %-- koniec ukážky --- echo off
echo on % Príklady pre kapitolu č.7 % Výpočet konvolutórneho súčinu polynómov a,b b=[1 4 5 2]; a=[2 5 3]; conv(a,b) %-- pre pokračovanie stlačte klávesu --- pause % Delenie polynómu b polynómom a [q,r]=deconv(b,a) %-- pre pokračovanie stlačte klávesu --- pause % Spätná kontrola delenia conv(q,a)+r %-- pre pokračovanie stlačte klávesu --- pause % Príklady pre výpočet hodnôt polynómu p dosadením: % Skaláru Vektora p=[2 3 4 1]; polyval(p,1) polyval(p,[0 2 3])
% Výp.hod.polyn. pre maticu C po zložkách C=[1 4;2 3]; polyval(p,C) %-- pre pokračovanie stlačte klávesu --- pause % Matice C nie po zložkách polyvalm(p,C) %-- pre pokračovanie stlačte klávesu --- pause % Reálne korene polynómu roots([1 2 -9 -18]) %-- pre pokračovanie stlačte klávesu --- pause % Komplexné korene polynómu roots([1 -2 3 5]) %-- pre pokračovanie stlačte klávesu --- pause % Charakteristický polynóm matice A=[1.2 3 -0.9;5 1.75 6;9 0 1]; poly(A) %-- pre pokračovanie stlačte klávesu --- pause
% Výpočet derivácie polynómov a, b a=[2 1 3]; b=[3 1 5 4]; polyder(a) polyder(b) %-- pre pokračovanie stlačte klávesu --- pause % Výpočet derivácie súčinu polynómov a*b polyder(a,b) %-- pre pokračovanie stlačte klávesu --- pause % Výpočet derivácie podielu polynómov b/a ako podiel q/d [q,d]=polyder(b,a) %-- pre pokračovanie stlačte klávesu --- pause % Príklady na rozklad polynómov na parciálne zlomky: a=[1 5.5 -1.5 -27]; b=[2 5 1]; c=[1 3 7 5 2]; [R,P,K]=residue(b,a) %-- pre pokračovanie stlačte klávesu --- pause [R,P,K]=residue(c,a)
figure echo on % Zistenie koeficientov a rovnice priamky x=[1 2 3 4 5 6 7 8 9]; % Súradnice bodov y=[1 3.5 9.4 15.3 25.4 35.3 49.8 63.2 81]; bp=polyfit(x,y,1) % Zistenie rovnice priamky % y=9.9983x-18.4472 %-- pre pokračovanie stlačte klávesu --- pause % Zistenie koeficientov a rovnice paraboly bpar=polyfit(x,y,2) % Zistenie rovnice paraboly % y=0.9969x2+0.0297x-0.1714 %-- pre pokračovanie stlačte klávesu --- pause % Zobrazenie bodov, priamky a paraboly yp=polyval(bp,x); % Výpočet bodov priamky ypar=polyval(bpar,x); % Výpočet bodov paraboly axis([0 10 0 90]); % Nastavenie osí plot(x,y,'r+',x,yp,'b',x,ypar,'m');% Zobrazenie priamky, paraboly xlabel('x'), ylabel('y'); % Popis osí
% Príklad pre interpoláciu dát funkcie sínus: x= 0:10; y = sin(x); % Interpolované data xi = 0:.25:10; % Body interpolácie yi = interp1(x,y,xi,'cubic'); % Kubická interpolácia plot(x,y,'o',xi,yi) % Zobrazenie interpolácie %-- pre pokračovanie stlačte klávesu --- pause % Výpočet hodnôt interpolovaných dát z funkcie peaks : [x,y]=meshgrid(-3:1:3); z=peaks(x,y); surf(x,y,z) %-- pre pokračovanie stlačte klávesu --- pause % Vytvorenie siete pre interpoláciu: [xi,yi]=meshgrid(-3:0.25:3); % Interpolácia metódou najbližšieho suseda zi1=interp2(x,y,z,xi,yi,'nearest'); surf(xi,yi,zi1) %-- pre pokračovanie stlačte klávesu --- pause
% Interpolácia metódou lineárnej interpolácie zi2=interp2(x,y,z,xi,yi,'bilinear'); surf(xi,yi,zi2) %-- pre pokračovanie stlačte klávesu --- pause % Interpolácia metódou kubickej interpolácie zi3=interp2(x,y,z,xi,yi,'bicubic'); surf(xi,yi,zi3) %-- koniec ukážky --- echo off