Εισ
Download
1 / 32

Εισ α γωγή στους Ηλεκτρονικούς Υπολογιστές - PowerPoint PPT Presentation


  • 95 Views
  • Uploaded on

Εισ α γωγή στους Ηλεκτρονικούς Υπολογιστές. Εισαγωγή στον επιστημονικό προγραμματισμό. 2 ο Μάθημα. Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ E-mail: [email protected] URL: http://users.ntua.gr/leo. Μελάς Ιωάννης Υποψήφιος Διδάκτορας ΕΜΠ E-mail: [email protected] .ntua.gr. Πίνακες. vector

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Εισ α γωγή στους Ηλεκτρονικούς Υπολογιστές' - deacon


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

ΕισαγωγήστουςΗλεκτρονικούςΥπολογιστές

Εισαγωγή στον επιστημονικό

προγραμματισμό

2ο Μάθημα

Λεωνίδας Αλεξόπουλος

Λέκτορας ΕΜΠ

E-mail: [email protected]

URL: http://users.ntua.gr/leo

Μελάς Ιωάννης

Υποψήφιος Διδάκτορας ΕΜΠ

E-mail: [email protected]


Πίνακες

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] ?

>> x = [1:0.1:2]

>> x = [2:-0.1:1]


Indexing
Indexing

>> x = [1:4 ; 5:8; 9:12]

>> x(1,2) = ?

>> x(1,5) = ?

>> x(1,1:2) =?

>> x(1,:) =?


Η αριθμητική στο 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

24]

a=[ 1 3 5]

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

Βασικοί τελεστές

+ Πρόσθεση

-Αφαίρεση

.* 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)+1

Γεννήτρια τυχαίων αριθμών

rand(n)

Άθροιση στοιχείων πίνακα

sum(x)

Μέτρηση πλήθους στοιχείων πίνακα

numel(x)

size(x,n)

length(x)

Αρχικοποίηση πίνακα

x=zeros(n,m)

x=ones(n,m)

x=eye(n)

x=[];


Λογικοί τελεστές

VS

Αριθμητικοί τελεστές

λογικοί τελεστές

== Equal to

~= Not equal to

< Strictly smaller

> Strictly greater

<= Smaller than or equal to

>= Greater than equal to

+ addition

- subtraction

* multiplication

/ division

^ power

& And operator

| Or operator


m-files


m-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

end


Ελεγχος ροής προγράμματος

Η εντολή for

for i=a:b

Matlab Commands

end


Ελεγχος ροής προγράμματος

Η εντολή while

while (condition)

Matlab Commands

end


Ελεγχος ροής προγράμματος

Η εντολή break

while (condition)

Matlab Commands

break

end


Παραδείγματα

Υπολογισμός αθροίσματος

Στοιχείων πίνακα

a=rand(5);

suma=0;

for i=1:5

for j=1:5

suma=suma+a(i,j);

end

end


Παραδείγματα

Υπολογισμός αθροίσματος

Στοιχείων πίνακα

a=rand(5);

suma=0;

for i=1:5

for j=1:5

suma=suma+a(i,j);

end

end

Ο εύκολος τρόπος:

sum(sum(a))


Παραδείγματα

Εύρεση min πίνακα

Εύρεση max πίνακα

a=rand(5);

minn=1.0;

for i=1:5

for j=1:5

if (a(i,j)<=minn)

minn=a(i,j);

iminn=i;

jminn=j;

end

end

end

a=rand(5);

maxn=0.0;

for i=1:5

for j=1:5

if (a(i,j)>=maxn)

maxn=a(i,j);

imaxn=i;

jmaxn=j;

end

end

end


Παραδείγματα

Εύρεση min πίνακα

Εύρεση max πίνακα

a=rand(5);

minn=1.0;

for i=1:5

for j=1:5

if (a(i,j)<=minn)

minn=a(i,j);

iminn=i;

jminn=j;

end

end

end

a=rand(5);

maxn=0.0;

for i=1:5

for j=1:5

if (a(i,j)>=maxn)

maxn=a(i,j);

imaxn=i;

jmaxn=j;

end

end

end

Ο εύκολος τρόπος:

min(min(a))

max(max(a))


Ελεγχος ροής προγράμματος

Logic indexing

>> a=rand(1,10)

a =

0.1576 0.9706 0.9572 0.4854 0.8003 0.1419 0.4218 0.9157 0.7922 0.9595

>> a(a<0.5)

ans =

0.1576 0.4854 0.1419 0.4218


Υπολογισμος ακολουθίας Fibonacci

In the Fibonacci sequence of numbers, each number is the sum of the previous

two numbers, starting with 0 and 1 (source: wikipedia)

clear all

close all

Clc

x(1)=0;

x(2)=1;

for i=3:15

x(i)=x(i-1)+x(i-2);

End

plot(1:15,x(1:15));

for i=2:15

r(i)=x(i)/x(i-1);

End

plot(2:15,r(2:15),'r');


Υπολογισμος ακολουθίας Fibonacci

In the Fibonacci sequence of numbers, each number is the sum of the previous

two numbers, starting with 0 and 1 (source: wikipedia)

clear all

close all

Clc

x(1)=0;

x(2)=1;

for i=3:15

x(i)=x(i-1)+x(i-2);

End

plot(1:15,x(1:15));

for i=2:15

r(i)=x(i)/x(i-1);

End

plot(2:15,r(2:15),'r');


Προαιρετικό θέμα

Διαίρεση ακεραίων

mod(x,y)

Η συνάρτηση mod(x,y) επιστρέφει το ακεραιο υπολοιπο

της διαίρεσης του x με το y

Πχ. mod(4,2)=0


Προαιρετικό θέμα

Να υπολογισθούν οι πρώτοι αριθμοί μικρότεροι του 5000

GROUP II 20/1/2014 (11.59μμ)

GROUP I 24/1/2014(11.59μμ)

  • Oι απαντήσεις (τα m files) να στέλνονται σε κείμενο e-mailκαι ΟΧΙ σαν συνημμένο αρχείο

  • Oι απαντήσεις να έχουν τίτλο με latinikouscharaktires:

  • ASΚ01-GP1-ΤΟΕΠΟΝΥΜΟΜΟΥ-ΟΝ-02100000-06.01.2014

  • ASΚ01-GP1-ΤΟΕΠΟΝΥΜΟΜΟΥ-ΟΝ-02100000-06.01.2014


ad