MATLAB Indledning Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2005
Et værktøj til tekniske beregninger Analyse og modellering af data Simulering af modeller Eksempler: Fiskeskivers størrelse Beregning af Ukrudtstæthed Simulering af dynamisk system Simulering af forbrænding
Fiskeskivers størrelse Skiverne skal pakkes i pakker af ca. samme vægt. Hvad er vægten af de næste skiver?
Målte Data Skivevægt (gram) for Fisk1: Skivevægt (gram) for Fisk2:
Graf
En bedre graf Kan vi tilnærme med et andengrads-polynomium ?
Det ser da ikke så galt ud
Ukrudtstæthed
Styring
Forbrænding Et kulpartikel brænder: - Nogle dele er dækket af en askeflage - Andre dele er glød Hvordan udvikler det sig ?
Og nu til … HVORDAN ?
MATLAB Hovedvindue
Demo
Helpdesk
Matricen Et rektangulært talsæt: A = » A = [1 2 3; 4 5 6; 7 8 9] Dimensioner: Antal rækker x Antal søjler » size(A) ans = 3 3
Talværdier reelle tal komplekse tal » B = [1 2.1 pi; 3E1-2i j-1 6] B = i i » size(B)
Vektor Rækkevektor – 1 x n Søjlevektor – n x 1 » C = [1 2 3]; D = [1;2;3] C = D = 1 2 3
Skalar Hvad er en vektor af længde 1? En 1 x 1 matrice » a = 5 a = 5 » size(a) 1 1 » length(a) 1
Delmatricer A(2:3,1:2) A(2,2) A(1,:) A(1:2:3,1:2:3) A(pi,pi) A = » A(2:3,1:2) » A(2,2)5 » A(1,:)1 2 3 » A(1:2:3,1:2:3) » A(pi,pi) Warning: Subscript indices must be integer values. 9
Transponering Transponering af A A’ Ombytter rækker og søjler » D = [ ; ] D = » D' » A'
Specielle Matricer Nulmatrix Enhedsmatrix Etmatrix Tom matrix Tilfældige tal … Se help elmat » zeros(2,3) » eye(2,3) » ones(2,3) » A = [] » size(A) 0 0 » rand(2,3)
Bygning af Matricer a = » A = [a ; a] » B = [A, [4 ;4]] » C = [A ; a] » D = [A, a] ??? All matrices on a row in the bracketed expression must have the same number of rows. » D = [A, a'] ??? All matrices on a row in the bracketed expression must have the same number of rows. » D = [C, a']
Og nu … + - * / …
Addition og Subtraktion A = B = A+B = ? A-B = ? A+B’ = ? ??? Error using ==> + Matrix dimensions must agree. B’ =
Multiplikation A = B = A.* B = ? A * B = ? A * B’ = ? ??? Error using ==> * Inner matrix dimensions must agree B’ =
Skalarprodukt a = b = a * b = ? 10 + * * * +
Matrix-multiplikation A = A * B’ = A * B = ? A(1,:) * B(:,1) A(1,:) * B(:,2) A(2,:) * B(:,1) A(2,:) * B(:,2) [m x n] * [n x k] = [m x k] B’ = ??? Error using ==> * Inner matrix dimensions must agree.
Lidt gymnastik A = [1 2 3] A* A’ = ? A’* A = ? [A; A ] * A’= ? A * [ A; A; A] = ?
Division A = B = A./ B = ? A / B = ? A \ B = ?
Matrix-Division X = A / B betyder at X * B = A Y = A \ B betyder at A * Y = B » X = A/B X = » X*B » Y = » A*Y \ “op i”
Og så er der skalering A* 5 A/3 A + 5 A
Og nu … ØVELSER!