Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Εισαγωγή γή στον επιστημονικό προγραμματισμό 2 ο Μάθημα Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ E mail: leo@mail.ntua.gr URL: http://users.ntua.gr/leo Μελάς Ιωάννης Υποψήφιος Διδάκτορας ΕΜΠ E mail: melas@central.ntua.gr 1
Πίνακες vector >> x = [1 2 3 4.5] Matrix >> x = [1 2 3 4; 5 6 7 8; 9 10 11 12] >> x(1) =? >> x(2) =? >> x = [1:4 ; 5:8; 9:12] Σε τι διαφέρει από x = [1:4,5:8, 9:12] 2]? >> x = [1:0.1:2] >> x = [2: 0.1:1] 011] 2
Indexing >> x = [1:4 ; 5:8; 9:12] >> x(1,2) =? >> x(1,5) =? >> x(1,1:2) =? >> x(1,:) =? 3
Η αριθμητική στο Matlab Βασικοί τελεστές Μαθηματικές συναρτήσεις + Πρόσθεση Αφαίρεση * Πολ/σμός / Διαίρεση ^ Υψωση σε δύναμη sin(x) cos(x) tan(x) log(x) exp(x) Ημίτονο Συνημίτονο Εφαπτομένη Φυσικός λογάριθμος = e^(x)
Η αριθμητική στο Matlab Μαθηματικές συναρτήσεις
Η αριθμητική στο Matlab Αριθμητική σε πίνακες Τα πάντα στο Matlab Είναι πίνακες
Η αριθμητική στο Matlab Βασικοί τελεστές Μαθηματικές συναρτήσεις + Πρόσθεση Αφαίρεση * Πολ/σμός / Διαίρεση ^ Υψωση σε δύναμη sin(x) cos(x) tan(x) log(x) exp(x) Ημίτονο Συνημίτονο Εφαπτομένη Φυσικός λογάριθμος = e^(x)
Η αριθμητική στο Matlab a=[ 1 3 5] a+b b=[ 0 2 4] a+b= [1+0 3+2 5+4] a b a+b= [1 0 3 2 5 4] a*b
Η αριθμητική στο Matlab a=[ 1 3 5] a+b b=[ 0 2 4] a+b= [1+0 3+2 5+4] a b a+b= [1 0 3 2 5 4] a*b
Η αριθμητική στο Matlab b=[ 0 a=[ a[ 1 3 5] 2 4] a*b a*b= [1*0 + 3*2 + 5*4] Δείτε : index >mtimes
Η αριθμητική στο Matlab a=[ 1 3 5 4 2 1 1 0 3] b=[ 0 2 4 2 1 3 1 0 5] a*b a*b= [a(1,1)*b(1,1)+a(1,2)*b(2,1)+a(1,3)*b(3,1) ] Δείτε : index >mtimes
Η αριθμητική στο Matlab a=[ 1 3 5 4 2 1 1 0 3] b=[ 0 2 4 2 1 3 1 0 5] a/b a/b= a*inv(b), inv(b)=inverse του b Inverse (αντιστροφος) ενος πίνακα b, ορίζεται πίνακας τέτοιος ώστε b*inv(b)=i => inv(i)=i Δείτε : Function Browser >Mathematics >Linear algebra >Linear equations >inv
Η αριθμητική στο Matlab
Η αριθμητική στο Matlab Βασικοί τελεστές + Πρόσθεση Αφαίρεση * Πολ/σμός.* element-by-element multiplication./ element-by-element division.^ element-by-element power / Διαίρεση ^ Υψωση σε δύναμη
Η αριθμητική στο Matlab a=[ 1 3 5 4 2 1 1 0 3] b=[ 0 2 4 2 1 3 1 0 5] a.*b a*b= [1*0 3*2 5*4 3*5]
Η αριθμητική στο Matlab Λοιπές χρήσιμες συναρτήσεις Στρογγυλοποίηση η round(x) floor(x)=int32(x) ceil(x)=int32(x)+1int32(x)+1 Γεννήτρια τυχαίων αριθμών rand(n) Άθροιση στοιχείων πίνακα sum(x) Αρχικοποίηση πίνακα x=zeros(n,m) x=ones(n,m) x=eye(n) y() x=[]; Μέτρηση πλήθους στοιχείων πίνακα numel(x) size(x,n) length(x)
Λογικοί τελεστές Αριθμητικοί τελεστές VS λογικοί τελεστές == Equal to + addition ~= Not equal to < Strictly smaller - subtraction > Strictly greater * multiplication <= Smaller than or equal to / division >= Greater than equal to ^ power & And operator Or operator
m files
m files Τα m files είναι text files που περιέχουν λίστες εντολών οι οποίες εκτελούνται διαδοχικά Τα m files είναι text files που περιέχουν λίστες εντολών οι οποίες εκτελούνται διαδοχικά, σαν να εισάγονταν στο command window.
Ελεγχος ροής προγράμματος Η εντολή if if (Condition_1) Matlab Commands elseif (Condition_2) Matlab Commands elseif (Condition_3) Matlab Commands else Matlab Commands
Ελεγχος ροής προγράμματος Η εντολή for for i=a:b Matlab Commands
Ελεγχος ροής προγράμματος Η εντολή while while (condition) Matlab Commands
Ελεγχος ροής προγράμματος Η εντολή break while (condition) Matlab Commands break
Παραδείγματα Υπολογισμός αθροίσματος Στοιχείων πίνακα a=rand(5); suma=0; for i=1:5 for j=1:5 suma=suma+a(i,j);
Παραδείγματα Υπολογισμός αθροίσματος Στοιχείων πίνακα a=rand(5); suma=0; for i=1:5 for j=1:5 suma=suma+a(i,j); Ο εύκολος τρόπος: sum(sum(a))
Παραδείγματα Εύρεση min πίνακα a=rand(5); minn=1.0; for i=1:5 for j=1:5 if (a(i,j)<=minn) minn=a(i,j); (ij) iminn=i; jminn=j; Εύρεση max πίνακα a=rand(5); maxn=0.0; for i=1:5 for j=1:5 if (a(i,j)>=maxn) maxn=a(i,j); (ij) imaxn=i; jmaxn=j;
Παραδείγματα Εύρεση min πίνακα a=rand(5); minn=1.0; for i=1:5 for j=1:5 if (a(i,j)<=minn) minn=a(i,j); (ij) iminn=i; jminn=j; Εύρεση max πίνακα a=rand(5); maxn=0.0; for i=1:5 for j=1:5 if (a(i,j)>=maxn) maxn=a(i,j); (ij) imaxn=i; jmaxn=j; Ο εύκολος τρόπος: min(min(a)) max(max(a))
Παραδείγματα Υπολογισμός Mandelbrot Set The Mandelbrot set is the set of values of c in the complex plane for which the orbit of 0 under iteration of the complex quadratic Polynomial z(n+1)=z(n)^2+c remains bounded
Παραδείγματα Υπολογισμός Mandelbrot Set hold on for i= 2:0.01:0.5 for j= 1:0.01:1.0 c=complex(i,j); z=0; for k=1:100 z=z^2+c; if (abs(z)<100*abs(c)) plot(c, 'b'); else plot(c,'r'); hold off
Προαιρετικό θέμα Διαίρεση ακεραίων mod(x,y) Η συνάρτηση mod(x,y) επιστρέφει το ακεραιο υπολοιπο της διαίρεσης του x με το y Πχ. mod(4,2)=0
Προαιρετικό θέμα Να υπολογισθούν οι πρώτοι αριθμοί μικρότεροι του 50 GROUP I 12/12/2011 (11.59μμ) GROUP II 15/12/2011 (11.59μμ) Oι απαντήσεις (τα m files) να στέλνονται σε κείμενο e mail και ΟΧΙ σαν συνημμένο αρχείο Oι απαντήσεις να έχουν τίτλο με latinikous charaktires: ASKHSH02 GROUP1 ΤΟΕΠΟΝΥΜΟΜΟΥ 021????? 12 12 2011 ASKHSH02 GROUP1 ΤΟΕΠΟΝΥΜΟΜΟΥ 021????? 12.12.2011 ASKHSH02 GROUP2 ΤΟΕΠΟΝΥΜΟΜΟΥ 021????? 15.12.2011