Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

MATLAB Indledning Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2002.

Lignende præsentationer


Præsentationer af emnet: "MATLAB Indledning Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2002."— Præsentationens transcript:

1 MATLAB Indledning Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2002

2 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

3 Fiskeskivers størrelse Skiverne skal pakkes i pakker af ca. samme vægt. Hvad er vægten af de næste skiver?

4 Målte Data Skivevægt (gram) for Fisk1: 6 9 13 16 22 24 26 27 27 28 28 28 27 29 31 29 29 32 26 27 30 28 30 28 27 27 25 25 23 23 22 20 25 18 16 15 13 11 Skivevægt (gram) for Fisk2: 3 5 7 6 12 13 11 11 14 14 16 19 23 27 28 29 27 28 31 29 35 32 33 26 26 32 30 28 29 26 35 21 28 21 21 26 7 21 31 31 26 21 16 11 8 11 4 5 3 7 10

5 Graf

6 En bedre graf Kan vi tilnærme med et andengradspolynomium ?

7 Det ser da ikke så galt ud

8 Ukrudtstæthed

9 Styring

10 Forbrænding Et kulpartikel brænder: - Nogle dele er dækket af en askeflage - Andre dele er glød Hvordan udvikler det sig ?

11 Og nu til … HVORDAN ?

12 MATLAB Hovedvindue

13 Demo

14 Helpdesk

15 Matricen Et rektangulært talsæt: A = 1 2 3 4 5 6 7 8 9 » A = [1 2 3; 4 5 6; 7 8 9] Dimensioner: Antal rækker x Antal søjler » size(A) ans = 3 3

16 Talværdier reelle tal komplekse tal » B = [1 2.1 pi; 3E1-2i j-1 6] B = 1.0000 2.1000 3.1416 30.0000 - 2.0000i -1.0000 + 1.0000i 6.0000 » size(B)

17 Vektor Rækkevektor – 1 x n Søjlevektor – n x 1 » C = [1 2 3]; D = [1;2;3] C = 1 2 3 D = 1 2 3

18 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

19 Hvor er matricen ? Skiverne skal pakkes i pakker af ca. samme vægt. Hvad er vægten af de næste skiver?

20 Hvor er matricen ? Skivevægt (gram) for Fisk1: 6 9 13 16 22 24 26 27 27 28 28 28 27 29 31 29 29 32 26 27 30 28 30 28 27 27 25 25 23 23 22 20 25 18 16 15 13 11 Skivevægt (gram) for Fisk2: 3 5 7 6 12 13 11 11 14 14 16 19 23 27 28 29 27 28 31 29 35 32 33 26 26 32 30 28 29 26 35 21 28 21 21 26 7 21 31 31 26 21 16 11 8 11 4 5 3 7 10

21 Hvor er Matricen ? Et kulpartikel brænder: - Nogle dele er dækket af en askeflage - Andre dele er glød Hvordan udvikler det sig ?

22 En model function Pnext = step(P,f) % Simulering af forbrænding: emne % er matrix P % med glød = 1 % aske = 0

23 Delmatricer A(2:3,1:2) A(2,2) A(1,:) A(1:2:3,1:2:3) A(pi,pi) A = 1 2 3 4 5 6 7 8 9 » A(2:3,1:2) 4 5 7 8 » A(2,2)5 » A(1,:)1 2 3 » A(1:2:3,1:2:3)1 3 7 9 » A(pi,pi) Warning: Subscript indices must be integer values. 9

24 Hvor er matricen ?

25 Billedbehandling » Udsnit = B(101:104, 301:304, :) Rød 188 183 176 182 198 182 172 172 188 195 173 159 185 188 169 156 Grøn 183 168 162 172 190 172 169 167 179 185 172 158 179 179 166 151 Blå 179 163 159 171 187 163 162 163 174 176 167 153 167 170 157 147

26 Transponering Transponering af A A’ Ombytter rækker og søjler » D = [1 2 3 4; 5 6 7 8] D = 1 2 3 4 5 6 7 8 » D' 1 5 2 6 3 7 4 8 » A' 1 4 7 2 5 8 3 6 9

27 Specielle Matricer Nulmatrix Enhedsmatrix Etmatrix Tom matrix Tilfældige tal … Se help elmat » zeros(2,3) 0 0 0 0 0 0 » eye(2,3) 1 0 0 0 1 0 » ones(2,3) 1 1 1 1 1 1 » A = [] » size(A) 0 0 » rand(2,3)0.9501 0.6068 0.8913 0.2311 0.4860 0.7621

28 Bygning af Matricer a = 1 2 3 » A = [a ; a] 1 2 3 1 2 3 » B = [A, [4 ;4]] 1 2 3 4 1 2 3 4 » C = [A ; a] 1 2 3 1 2 3 » 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'] 1 2 3 1 1 2 3 2 1 2 3 3

29 Hvor er Matricen ?

30 Kinematik p = [x, y]’ w 1 = [a,b] ‘ A = [ cos(theta) sin(theta) ; -sin(theta) cos(theta) ] w l GLOBAL = (p + A * w 1 )’

31 Og nu … + - * / …

32 Addition og Subtraktion A = 1 2 3 3 2 1 B = 3 2 1 1 2 3 A+B = ? A-B = ? A+B’ = ? -2 0 2 2 0 -2 44 4 ??? Error using ==> + Matrix dimensions must agree. B’ = 3 1 2 2 1 3

33 Multiplikation A = 1 2 3 3 2 1 B = 3 2 1 1 2 3 A.* B = ? A * B = ? A * B’ = ? 3 4 3 ??? Error using ==> * Inner matrix dimensions must agree. 10 14 14 10 B’ = 3 1 2 2 1 3

34 Skalarprodukt a = 1 2 3 b = 3 2 1 a * b = ? 10 + * * * +

35 Matrix-multiplikation A = 1 2 3 3 2 1 A * B’ = 10 14 14 10 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’ = 3 1 2 2 1 3 ??? Error using ==> * Inner matrix dimensions must agree.

36 Lidt gymnastik A = [1 2 3] A* A’ = ? A’* A = ? [A; A ] * A’= ? A * [ A; A; A] = ? 14 1 2 3 2 4 6 3 6 9 14 6 12 18

37 Hvordan bruges det ? p = [x, y] w 1 = [a,b] -- lokalt A = [ cos(theta) sin(theta) -sin(theta) cos(theta) ] w l GLOBAL = (p’ + A * w 1 ’)’

38 Division A = 1 2 2 1 B = 1 3 3 1 A./ B = ? A / B = ? A \ B = ? 1.0000 0.6667 0.6667 1.0000 0.6250 0.1250 0.1250 0.6250 1.6667 -0.3333 -0.3333 1.6667

39 Matrix-Division X = A / B betyder at X * B = A Y = A \ B betyder at A * Y = B » X = A/B X = 0.6250 0.1250 0.1250 0.6250 » X*B 1.0000 2.0000 2.0000 1.0000 » Y = 1.6667 -0.3333 -0.3333 1.6667 » A*Y 1 3 3 1 \ “op i”

40 Hvordan bruges det ? p = [x, y] w 1 = [a,b] -- lokalt A = [ cos(theta) sin(theta) -sin(theta) cos(theta) ] w l GLOBAL = (p’ + A * w 1 ’)’ w 1 ‘ = A \ (w l GLOBAL ‘ – p’)

41 Et eksempel p =[p1,p2] q =[q1,q2] Hvad er ligningen for linjen ? y = ax + b – find a og b [p2 ; q2] = [p1 1 ; q1 1] * [a ; b] [p1 1; q1 1] \ [p2 ; q2] = [a ; b]

42 En løsning [p1 1; q1 1] \ [p2 q 2]’ = [a b]’ » p = [0 0]; q = [1 1]; » A = [p(1) 1; q(1) 1]; a = [p(2) q(2)]; » x = A\a' x = 1 0 findlinje.m » p = [1 1]; q = [3,4]; » findlinje x = 1.5000 -0.5000 » p = [1 1]; q = p; findlinje Warning: Matrix is singular to working precision. x = Inf

43 Overbestemthed p =[p1,p2] q =[q1,q2] Find den bedste løsning ! y = ax + b [p2; q2; r2] = [p1 1 ; q1 1; r1 1] * [a ; b] r =[r1,r2]

44 Bedste løsning [p1 1; q1 1; r1 1] \ [p2; q2; r2] = [a ;b] » p = [0 0]; q = [1 1]; r = [2 1] » A = [p(1) 1; q(1) 1; r(1) 1]; a = [p(2) q(2) r(2)]; » x = A\a' x = 0.5000 0.1667

45 Polynomier [a n a n-1 a n-2 … a 1 a 0 ] * [x n x n-1 x n-2 … x 1 ]’ » roots([1 -2 1]) ans = 1 » roots([1 -3 3 -1]) ans = 1.0000 1.0000 + 0.0000i 1.0000 - 0.0000i » roots([1 -4 6 -4 1]) ans = 1.0001 1.0000 + 0.0001i 1.0000 - 0.0001i 0.9999

46 » p2 = [1 -2 1]; » p3 = [1 -3 3 -1]; » p4 = [1 -4 6 -4 1]; » x = 0.6:0.05:1.4; » plot(x,polyval(p2,x), x, polyval(p3,x), x,polyval(p4,x), x,polyval([0],x) ) Undersøgelse

47 Og så er der skalering A* 5 A/3 A + 5 A -1 5 15 15 5 0.3333 1.0000 1.0000 0.3333 6 8 8 6 0 2 2 0

48 Andre Operationer » A^2» A*A 5 4 5 4 4 5 4 5 » hilb(2) 1.0000 0.5000 0.5000 0.3333 » A * hilb(2) == hilb(2) *A 1 0 0 1 » A * hilb(2) 2.0000 1.1667 2.5000 1.3333 » hilb(2) * A 2.0000 2.5000 1.1667 1.3333

49 Næste gang … Programmer: FOR …, IF …


Download ppt "MATLAB Indledning Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2002."

Lignende præsentationer


Annoncer fra Google