Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

MATLAB Repetition og Udførelse af programmer Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2005 >>mit_modul minf.m … minf(a) … mit_modul.m.

Lignende præsentationer


Præsentationer af emnet: "MATLAB Repetition og Udførelse af programmer Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2005 >>mit_modul minf.m … minf(a) … mit_modul.m."— Præsentationens transcript:

1 MATLAB Repetition og Udførelse af programmer Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2005 >>mit_modul minf.m … minf(a) … mit_modul.m function r = minf(x) … r= size(x) …

2 MATLAB Hovedvindue

3 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

4 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)

5 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

6 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

7 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

8 MATLAB-maskinen Script » A = [9,7] ans = … » B = 25i ans = … … Matlab.exe Workspace A B Lager (memory) Procesenhed Program

9 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

10 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

11 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

12 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

13 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

14 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.

15 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

16 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”

17 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

18 Programstrukturer Et program definerer rækkefølgen for at udføre ordrer. sekvens ordre ; ordre … valg if ( ) … end; switch … gentagelse (iteration, løkke) for …, while … kald af underprogram (funktion) f( … ) afbrydelse break, return

19 Funktioner function y = sinus(x,k) % Beregn sin(x).^k y = sin(x).^k

20 MATLAB-maskinen Script » A = [9,7] ans = … » B = 25i ans = … » sinus(A,6) … Matlab.exe Workspace A B Lager (memory) Procesenhed Program

21 Funktionskald Script » A = [9,7] ans = … » B = 25i ans = … » sinus(A,6) … Matlab.exe Workspace A B function y = sinus(x,k) Workspace x init A k init 6 y init ?

22 Funktionskald -afslutning Script » A = [9,7] ans = … » B = 25i ans = … » sinus(A,6) … Matlab.exe Workspace A B function y= sinus(x,k) Workspace x init A k init 6 y = … ans = y

23 Funktioner function resultat = kvadratrod(a) % Beregn kvadratrod af a ved bisektion low = 0; high = a; while (high - low) > 2*eps, mid = (high+low)/2; if mid*mid > a, high = mid; else low = mid; end end; resultat = (high+low)/2; kvadratrod(4) 2.0000 kvadratrod(1000) ans = 31.6228 » ans*ans 1000.0000

24 Sammensat returværdi function [fundet,resultat] = findindeks(e,a) % finder index for element e i vektor a, hvis det findes fundet = 0; for i=1:length(a), if a(i) == e, fundet = 1; break; end; if fundet, resultat = i; else resultat = 0; end; [b,c] = findindeks(7,a) b = 0 c = 0

25 Rekursion function resultat = kvadratrod(a) % Beregn kvadratrod af a ved bisektion resultat = trin(0,a+1,a); function r = trin(low,high,b) % kvadratrod b er mellem low og high if (high - low) <= 2*eps, r = (high+low)/2; return; end; mid = (high+low)/2; if mid*mid > b, r = trin(low,mid,b); else r = trin(mid,high,b); end;

26 Funktionskald - rekursion Script »f(8) Matlab.exe Workspace ans = ? function r = f(x) r = f(x-1) Workspace x init 8 r init ? function r = f(x) r = f(x-1) Workspace x init 7 r init ? …

27 Og så … PRØV DET !


Download ppt "MATLAB Repetition og Udførelse af programmer Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2005 >>mit_modul minf.m … minf(a) … mit_modul.m."

Lignende præsentationer


Annoncer fra Google