CEE501 1 Matlab Introduction

85
ΠΠΜ ΠΠΜ 501: 501: Προχωρημένη Προχωρημένη Ανάλυση Ανάλυση Κατασκευών Κατασκευών με με Η Η / / Υ Υ 1 1 © © Πέτρος Πέτρος Κωμοδρόμος Κωμοδρόμος , 20 , 20 10 10 1. 1. Εισαγωγή Εισαγωγή στο στο Matlab Matlab Χειμερινό Χειμερινό εξάμηνο εξάμηνο 20 20 10 10 Πέτρος Πέτρος Κωμοδρόμος Κωμοδρόμος [email protected] [email protected] http:// http:// www.eng www.eng . . ucy.ac.cy/petros ucy.ac.cy/petros ΠΠΜ ΠΠΜ 501 501 : : Προχωρημένη Προχωρημένη Ανάλυση Ανάλυση Κατασκευών Κατασκευών με με Η Η / / Υ Υ

Transcript of CEE501 1 Matlab Introduction

Page 1: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 11©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

1. 1. ΕισαγωγήΕισαγωγή στοστο MatlabMatlab

ΧειμερινόΧειμερινό εξάμηνοεξάμηνο 20201010

ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος[email protected]@ucy.ac.cy

http://http://www.engwww.eng..ucy.ac.cy/petrosucy.ac.cy/petros

ΠΠΜΠΠΜ 501501: : ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ

Page 2: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 22©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΠεριεχόμεναΠεριεχόμενα

•• ΕισαγωγικάΕισαγωγικά στοιχείαστοιχεία ΗΗ//ΥΥ καικαι ΠληροφορικήςΠληροφορικής

•• ΕισαγωγήΕισαγωγή στοστο πρόγραμμαπρόγραμμα MatlabMatlab

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

ΔιανύσματαΔιανύσματα καικαι μητρώαμητρώα

•• ΓραφικέςΓραφικές απεικονίσειςαπεικονίσεις καικαι παραστάσειςπαραστάσεις

γραφικέςγραφικές απεικονίσειςαπεικονίσεις σημείωνσημείων καικαι ευθύγραμμωνευθύγραμμων τμημάτωντμημάτων

γραφικέςγραφικές παραστάσειςπαραστάσεις συναρτήσεωνσυναρτήσεων

γραφικέςγραφικές παραστάσειςπαραστάσεις πολλαπλώνπολλαπλών συναρτήσεωνσυναρτήσεων

πολλαπλέςπολλαπλές γραφικέςγραφικές παραστάσειςπαραστάσεις

πολλαπλάπολλαπλά γραφικάγραφικά σχήματασχήματα

Page 3: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 33©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

•• ΑρχείαΑρχεία ΜΜatlabatlab

ΑρχείαΑρχεία ΕντολώνΕντολών

ΑρχείαΑρχεία ΔεδομένωνΔεδομένων

•• ΠρογραμματισμόςΠρογραμματισμός μεμε τοτο MatlabMatlab

ΑρχείαΑρχεία συναρτήσεωνσυναρτήσεων

ΛογικάΛογικά τεσττεστ

ΒρόγχοιΒρόγχοι

ΑριθμητικέςΑριθμητικές μέθοδοιμέθοδοι

ΕπίλυσηςΕπίλυσης μημη γραμμικώνγραμμικών εξισώσεωνεξισώσεων ((μέθοδοςμέθοδος διχοτόμησηςδιχοτόμησης))

ΑριθμητικήςΑριθμητικής ολοκλήρωσηςολοκλήρωσης ((κανόναςκανόνας τουτου τραπεζίουτραπεζίου))

ΑλγόριθμοιΑλγόριθμοι

ΤαξινόμησηΤαξινόμηση στοιχείωνστοιχείων ((ταξινόμησηταξινόμηση μεμε εισαγωγήεισαγωγή))

ΑναζήτησηΑναζήτηση στοιχείωνστοιχείων ((δυαδικήδυαδική αναζήτησηαναζήτηση))

Page 4: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 44©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΒασικάΒασικά στοιχείαστοιχεία ΗΗ//ΥΥ

ΙστορικάΙστορικά στοιχείαστοιχεία H/Y H/Y καικαι πληροφορικήςπληροφορικής::

1939, 1939, AtanasoffAtanasoff καικαι Berry:Berry:

‘‘πρώτοςπρώτος’’ ψηφιακόψηφιακόss ΗΗ//ΥΥ

19391939--44, 44, Howard Aiken: Howard Aiken:

πρώτοπρώτοςς μεγάληςμεγάλης κλίμακαςκλίμακας ΗΗ//ΥΥ (Harvard Mark I)(Harvard Mark I)

19194444, , Alan TuringAlan Turing::

πρώτοςπρώτος προγραμματιζόμενοςπρογραμματιζόμενος ψηφιακόψηφιακόss ΗΗ//ΥΥ ((COLOSSUS)COLOSSUS)

19419433--44444: 4: πρώτοςπρώτος γενικήςγενικής χρήσηςχρήσης ψηφιακόψηφιακόss ΗΗ//ΥΥ (ENIAC)(ENIAC)

Page 5: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 55©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΙστορικάΙστορικά στοιχείαστοιχεία H/Y H/Y καικαι πληροφορικήςπληροφορικής ( ( συνεχσυνεχ.).)

ΔεκαετίαΔεκαετία 19601960: : εφεύρεσηεφεύρεση ολοκληρωμένωνολοκληρωμένων κυκλωμάτωνκυκλωμάτων => => σημαντικήσημαντική μείωσημείωση μεγέθουςμεγέθους ΗΗ//ΥΥ

1969: ARPANET: 1969: ARPANET: ΓέννησηΓέννηση τουτου διαδίκτυουδιαδίκτυου

ΔεκαετίαΔεκαετία 1970: 1970: πρώτοιπρώτοι μικρουπολογιστέςμικρουπολογιστές

1976:1976: ΚατασκευάζεταιΚατασκευάζεται οο πρώτοςπρώτος υπερυπολογιστήςυπερυπολογιστής ((CrayCray--1)1)

19811981: : ΚατασκευάζεταιΚατασκευάζεται οο προσωπικόςπροσωπικός ΗΗ//ΥΥ IBM PCIBM PC

19891989--90, Tim Berners90, Tim Berners--Lee: Lee: WorldWorld--Wide Web (WWW), HTML, & HTTPWide Web (WWW), HTML, & HTTP

1993 & 1994: 1993 & 1994: ΔημιουργούνταιΔημιουργούνται τατα Mosaic & Netscape WWW browsers Mosaic & Netscape WWW browsers

Page 6: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 66©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΠρόοδοςΠρόοδος ΤεχνολογίαςΤεχνολογίας ΗλεκτρονικώνΗλεκτρονικών ΥπολογιστώνΥπολογιστών

5 5 ΜΒΜΒ σκληρόςσκληρός ΔίσκοςΔίσκος (1956)(1956)

4 4 GGΒΒ (4 x 1024 = 4096 MB) (4 x 1024 = 4096 MB) USB Memory key (2006)USB Memory key (2006)

Page 7: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 77©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΠρόοδοςΠρόοδος ΤεχνολογίαςΤεχνολογίας ΗλεκτρονικώνΗλεκτρονικών ΥπολογιστώνΥπολογιστών

ENIAC (1943ENIAC (1943--4)4)~30 ~30 τόνουςτόνους2.4 m2.4 m x x 0.9 m0.9 m x x 30 m30 m

20072007128MB ROM / 64MB RAM 128MB ROM / 64MB RAM 400MHz Samsung CPU 400MHz Samsung CPU >> 1 G1 GΒΒ (1024 MB) storage card(1024 MB) storage card((LME for Pocket PCLME for Pocket PC, .net, Java, .net, Java ))

Page 8: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 88©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΒασικάΒασικά στοιχείαστοιχεία ψηφιακώνψηφιακών ΗΗ//ΥΥΒασικέςΒασικές λειτουργίεςλειτουργίες::

αποθήκευσηαποθήκευση πληροφοριώνπληροφοριώνανάκλησηανάκληση πληροφοριώνπληροφοριώνταχύτατηταχύτατη εκτέλεσηεκτέλεση μαθηματικώνμαθηματικών πράξεωνπράξεων

ΛογισμικόΛογισμικό(software(software):):ΠρογράμματαΠρογράμματα ΗΗ//ΥΥ::

ΠρογράμματαΠρογράμματα συστημάτωνσυστημάτων: : λλειτουργικάειτουργικά συστήματασυστήματα (Unix, MSDOS, (Unix, MSDOS, Windows, Linux, Windows, Linux, κλπκλπ), ), μεταγλωττιστέςμεταγλωττιστές, , κλπκλπ. .

ΠρογράμματαΠρογράμματα εφαρμογώνεφαρμογών: : ππ..χχ. Notepad, Word, Excel, . Notepad, Word, Excel, PowerpointPowerpoint, , ΟΟutlookutlook, Netscape, Internet Explorer, , Netscape, Internet Explorer, MatlabMatlab, , MathcadMathcad, , AutocadAutocad, , κλπκλπ..

ΔεδομέναΔεδομένα προγραμμάτωνπρογραμμάτων ΗΗ//ΥΥ

ΥλικόΥλικό ((hardware):hardware):ΒασικήΒασικήαρχιτεκτονικήαρχιτεκτονική::

Έξοδος αποτελεσμάτων(Output data)

Eίσοδος δεδομένων(input data)

K.M.E. (CPU)

Επεξεργαστής(processor)

Πρωτεύωνμνήμη (RAM)

Page 9: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 99©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΠρόγραμμαΠρόγραμμα αριθμητικώναριθμητικών υπολογισμώνυπολογισμών: Matlab: Matlab

Page 10: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 1010©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΠεριβάλλονΠεριβάλλον καικαι παράθυραπαράθυρα MatlabMatlab

Page 11: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 1111©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΦάκελοςΦάκελος εργασίαςεργασίας MatlabMatlab

Page 12: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 1212©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΠληροφορίεςΠληροφορίες//βοήθειαβοήθεια γιαγια τοτο MatlabMatlab

ΕκκίνησηΕκκίνηση προγράμματοςπρογράμματος

>> help>> help ( ( >> more on>> more on))

>> help >> help matlabmatlab\\general >> help beepgeneral >> help beep

>> demos >> demos

ΙστοσελίδαΙστοσελίδα κατασκευαστώνκατασκευαστών:: http://http://www.mathworks.comwww.mathworks.com

>> doc>> doc

>> >> lookforlookfor <XYZ> <XYZ>

ΧρήσηΧρήση σανσαν απλήαπλή υπολογιστικήυπολογιστική

Page 13: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 1313©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

( )^* , /+ , -< , <= , == , => , >& , |

ΒασικέςΒασικές λειτουργίεςλειτουργίες MatlabMatlab

(17+3)/2+6/3

>> whoYour variables are:

a ans r >> clear>> whos

>> pians = 3.1416

>> r = 5r =5

>> pi * r ^ 2ans = 78.5398

>> a = ans;>> a

a = 78.5398>> a = pi * r ^ 2

a = 78.5398

ΤελεστέςΤελεστές::

ΠροτεραιότηταΠροτεραιότητα τελεστώντελεστών

ΑριθμητικέςΑριθμητικές εκφράσειςεκφράσεις

ΜεταβλητέςΜεταβλητές::

>> help ops

>> help colon

17+3/2+6/3

Page 14: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 1414©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

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

Plus Plus + + Unary plus Unary plus + + Minus Minus --Unary minus Unary minus --Matrix multiply Matrix multiply * * Array multiply Array multiply .* .* Matrix power Matrix power ^ ^ Array power Array power .^ .^ Backslash or left matrix divide Backslash or left matrix divide \\ ((INV(A)*B INV(A)*B ))Slash or right matrix divide Slash or right matrix divide / / ((A*INV(B)A*INV(B)))Left array divide Left array divide ..\\ ((elementelement--byby--element divisionelement division))Right array divide Right array divide ./ ./ ((elementelement--byby--element divisionelement division))

Page 15: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 1515©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΠροτεραιότηταΠροτεραιότητα τελεστώντελεστώνtranspose (.'), power (.^), complex conjugatetranspose (.'), power (.^), complex conjugate transpose ('), matrix power (^)transpose ('), matrix power (^)

unary plus (+), unary minus (unary plus (+), unary minus (--), logical negation (~)), logical negation (~)

multiplication (.*), right division (./), leftmultiplication (.*), right division (./), left division (.division (.\\), ), matrix multiplication (*), matrix right division (/), matrix lefmatrix multiplication (*), matrix right division (/), matrix left division (t division (\\))

addition (+), subtraction (addition (+), subtraction (--))

colon operator (:)colon operator (:)

less than (<), less than or equal to (<=), greater thanless than (<), less than or equal to (<=), greater than (>), (>), greater than or equal to (>=), equal to (==), notgreater than or equal to (>=), equal to (==), not equal to (~=)equal to (~=)

shortshort--circuit logical AND (&&)circuit logical AND (&&)

shortshort--circuit logical OR (||)circuit logical OR (||)

Page 16: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 1616©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΤριγονομετρικέςΤριγονομετρικές συναρτήσειςσυναρτήσεις

sin - Sine.

sind - Sine of argument in degrees.

sinh - Hyperbolic sine.

asin - Inverse sine.

asind - Inverse sine, result in degrees.

asinh - Inverse hyperbolic sine.

cos - Cosine.

cosd - Cosine of argument in degrees.

cosh - Hyperbolic cosine.

acos - Inverse cosine.

acosd - Inverse cosine, result in degrees.

acosh - Inverse hyperbolic cosine.

Page 17: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 1717©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

tan - Tangent.

tand - Tangent of argument in degrees.

tanh - Hyperbolic tangent.

atan - Inverse tangent.

atand - Inverse tangent, result in degrees.

atan2 - Four quadrant inverse tangent.

atanh - Inverse hyperbolic tangent.

sec - Secant.

secd - Secant of argument in degrees.

sech - Hyperbolic secant.

asec - Inverse secant.

asecd - Inverse secant, result in degrees.

asech - Inverse hyperbolic secant.

Page 18: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 1818©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

csc - Cosecant.

cscd - Cosecant of argument in degrees.

csch - Hyperbolic cosecant.

acsc - Inverse cosecant.

acscd - Inverse cosecant, result in degrees.

acsch - Inverse hyperbolic cosecant.

cot - Cotangent.

cotd - Cotangent of argument in degrees.

coth - Hyperbolic cotangent.

acot - Inverse cotangent.

acotd - Inverse cotangent, result in degrees.

acoth - Inverse hyperbolic cotangent.

Page 19: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 1919©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΕκθετικέςΕκθετικές//ΛογαριθμικέςΛογαριθμικές συναρτήσειςσυναρτήσεις

exp - Exponential.

log - Natural logarithm.

log10 - Common (base 10) logarithm.

log2 - Base 2 logarithm and dissect floating point number.

pow2 - Base 2 power and scale floating point number.

realsqrt - Square root of number greater than or equal to zero.

sqrt - Square root.

Page 20: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 2020©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΣυναρτήσειςΣυναρτήσεις στρογγυλοποιήσεωνστρογγυλοποιήσεων

fix - Round towards zero.

floor - Round towards minus infinity.

ceil - Round towards plus infinity.

round - Round towards nearest integer.

mod - Modulus (signed remainder after division).

rem - Remainder after division.

sign - Signum.

Page 21: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 2121©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

>> x = 1.333>> x = 1.333x =x =

1.33301.3330

>> >> floorfloor(x)(x)ans =ans =

11

>> >> ceilceil(x)(x)ans =ans =

22

>> >> round(x)round(x)ans =ans =

11

x =x =--0.66670.6667

>> >> floorfloor(x)(x)ans =ans =

--11

>> >> ceilceil(x)(x)ans =ans =

00

>> round(x)>> round(x)ans =ans =

--11>> >>

Page 22: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 2222©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΔιανύσματαΔιανύσματα καικαι μητρώαμητρώα

>> a(2)

>> a(1) = 6;>> a

>> c(2,3)

>> c(1,1:2)

>> c(2,2) = -5;>> c

2

11

6 7

623

6 7 89 -5 11

Page 23: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 2323©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

6

4 58 10

12 15

4462

1 2 36 97 108 11

>> d = a * b

>> e = c * a

>> a’

>> c’

>> sum(a)

Page 24: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 2424©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

x = [ 1 2 34 1 1 ]

y = [ 4 2 13 1 2 ] v = x .* y

>> w = x * y’

u = x * y

= [ 4 4 312 1 2 ]

= [ 11 1119 15 ]

>> inv(w) = [ -0.3409 0.25000.4318 -0.2500 ]

>> w * inv(w) = [ 1.0 0.00.0 1.0 ]

>> det(w) = -44

>> eye(3)

= [ 1.0 0.0 0.00.0 1.0 0.00.0 0.0 1.0 ]

>> zeros(2,3)

= [ 0.0 0.0 0.00.0 0.0 0.0 ]

Page 25: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 2525©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

>> a = [ 1 2 3>> a = [ 1 2 34 5 6]4 5 6]

a =a =1 2 31 2 34 5 64 5 6

>> b = [ 0 1 ; 2 0 ; 3 4]>> b = [ 0 1 ; 2 0 ; 3 4]

b =b =0 10 12 02 03 43 4

>> >> a*ba*bans =ans =

13 13 131328 28 2828

>> c = a * b>> c = a * bc =c =

13 13 131328 28 2828

>> z = a .* b'>> z = a .* b'z =z =

0 4 90 4 94 0 244 0 24

Page 26: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 2626©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

>> format >> format compactcompact>> a=rand(3,3)>> a=rand(3,3)a =a =

0.1897 0.3028 0.69790.1897 0.3028 0.69790.1934 0.5417 0.37840.1934 0.5417 0.37840.6822 0.1509 0.86000.6822 0.1509 0.8600

>> b=eye(3)*4>> b=eye(3)*4b =b =

4 0 04 0 00 4 00 4 00 0 40 0 4

>> >> inv(binv(b)*a)*aansans ==

0.0474 0.0757 0.17450.0474 0.0757 0.17450.0484 0.1354 0.09460.0484 0.1354 0.09460.1706 0.0377 0.21500.1706 0.0377 0.2150

>> a/b>> a/bansans ==

0.0474 0.0757 0.17450.0474 0.0757 0.17450.0484 0.1354 0.09460.0484 0.1354 0.09460.1706 0.0377 0.21500.1706 0.0377 0.2150

>> b>> b\\aaansans ==

0.0474 0.0757 0.17450.0474 0.0757 0.17450.0484 0.1354 0.09460.0484 0.1354 0.09460.1706 0.0377 0.21500.1706 0.0377 0.2150

Page 27: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 2727©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΠληροφορίεςΠληροφορίες πινάκωνπινάκωνsize - Size of array.

length - Length of vector.

numel - Number of elements.

disp - Display matrix or text.

ΒασικοίΒασικοί πίνακεςπίνακεςzeros - Zeros array.

ones - Ones array.

eye - Identity matrix.

rand - Uniformly distributed random numbers.

Page 28: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 2828©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΣυναρτήσειςΣυναρτήσεις πινάκωνπινάκων

rank - Matrix rank.

det - Determinant.

trace - Sum of diagonal elements.

\ and / - Linear equation solution.

inv - Matrix inverse.

eig - Eigenvalues and eigenvectors.

Page 29: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 2929©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΑνάλυσηΑνάλυση δεδομένωνδεδομένων

max - Largest component.

min - Smallest component.

mean - Average or mean value.

median - Median value.

std - Standard deviation.

var - Variance.

sort - Sort in ascending order.

sortrows - Sort rows in ascending order.

sum - Sum of elements.

prod - Product of elements.

hist - Histogram.

cumsum - Cumulative sum of elements.

cumprod - Cumulative product of elements.

Page 30: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 3030©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΓραφικέςΓραφικές απεικονίσειςαπεικονίσεις σημείωνσημείων

>> x1 = 5;>> y1 = 7;

>> plot(x1,y1,'*')% Σχεδιασμός σημείων (x1,y1)

>> grid on% Προσθήκη κύριων γραμμών στο διάγραμμα

>> title('Sxediash Shmeioy')% Προσθήκη τίτλου

>> xlabel('X')>> ylabel('Y') % Προσθήκη τίτλων στους άξονες σχεδίασης

Page 31: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 3131©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΓραφικέςΓραφικές απεικονίσειςαπεικονίσεις σημείωνσημείων

>> clf>> x1 = 5;>> y1 = 7;>> plot(x1,y1,'*')>> grid on>> title('Sxediash Shmeioy')>> xlabel('X')>> ylabel('Y')

>> hold on>> axis equal>> myAxes = [ 1 10 4 9 ]; >> axis(myAxes) >> plot(7,6,'o')

Page 32: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 3232©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΓραφικέςΓραφικές απεικονίσειςαπεικονίσεις σημείωνσημείων καικαι ευθειώνευθειών>> clf ; clear;>> x1 = 5; y1 = 7;>> x2 = 7; y2 = 6;>> x3 = 4.2; y3 = 5.5;>> x = [x1 x2 x3];>> y = [y1 y2 y3];>> axis equal>> axis([ 1 10 4 9 ]);>> hold on>> plot(x,y,’*')>> x(4)=x1; y(4)=y1;>> plot(x,y) >> grid on>> title(’Sxediasmos shmeiwn kai trigwnoy')>> xlabel('X')>> ylabel('Y')

Page 33: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 3333©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΓραφικέςΓραφικές παραστάσειςπαραστάσεις>> x = 0:0.25:15; (αρχή:βήμα:τέλος)% Αυτόματος καθορισμός διανύσματος με τιμές γωνιών

>> y = sin(x);% Αυτόματος υπολογισμός διανύσματος με τιμές ημιτόνων

>> plot(x,y)% Σχεδιασμός σημείων (x,y)

>> grid on% Προσθήκη κύριων γραμμών στο διάγραμμα

>> title('Sxediash Hmitonoy')% Προσθήκη τίτλου

>> xlabel('X')>> ylabel('Y') % Προσθήκη τίτλων στους άξονες σχεδίασης

Page 34: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 3434©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΠαράδειγμαΠαράδειγμαΣχεδιάστε την γραφική παράσταση της εξίσωσης:

όπου: 0 <= theta <= 100

>> clf>> clear>> theta = 0:0.5:100>> z = 15*cos(theta/2) >> z = z + 7.5 * sin(theta/5);>> plot(theta,z)>> grid on>> title('Askhsh 2h')>> xlabel('Theta')>> ylabel('Z')

Page 35: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 3535©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΠαράδειγμαΠαράδειγμα

dx=10x1=0:0.1:dx;y1=cos(x1);plot(x1,y1);grid onhold onaxis([-2 30 -2 30])

x2=x1;y2=7.5+cos(x2/dx*2*pi);plot(x2,y2, ’g--');

x4=x1+5;y4=22.5+5*cos((x3-5)/dx*2*pi);plot(x4,y4, 'r');

x3=x1+5;y3=15+cos((x3-5)/dx*2*pi);plot(x3,y3, ’k');

Page 36: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 3636©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΠολλαπλέςΠολλαπλές γραφικέςγραφικές παραστάσειςπαραστάσεις>> figure(1)

>> clf

>> x = 0:0.25:15;

>> y = sin(x);

>> plot(x,y,’r’)

>> grid on

>> title('Sxediash Hmitonoy')

>> xlabel('X')

>> ylabel(’Hmitono,Synhmitono‘)

>> z = cos(x);

>> hold on

>> plot(x,z)

>> plot(x,z,’or’) Eναλλακτικά: plot(x,y,'r',x,z, x,z,'or')

Page 37: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 3737©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΠολλαπλάΠολλαπλά γραφικάγραφικά σχήματασχήματαfigure(2)subplot(3,2,1)plot(x,y,'-')title('X-Y Plot ')subplot(3,2,3)plot(x,y,'--')grid ontitle('X-Y Plot with grid')

subplot(3,2,4)plot(x,z)grid ontitle('X-Z Plot with grid')

subplot(3,2,6)plot(x,z, 'o')title('X-Z Plot: o ')

subplot(3,2,5)plot(x,z, '*')title('X-Z Plot: *')

Page 38: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 3838©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΓραφικέςΓραφικές παραστάσειςπαραστάσεις καικαι απεικονίσειςαπεικονίσεις: :

Σχεδιάστε τα σημεία (-3,-2), (0,1), (2,2), (4,5) και (7,9) χρησιμοποιώντας το σύμβολα ‘ο’ και διακεκομμένη γραμμήστο 3ον τομέα ενός σχήματος αποτελούμενου από 2 γραμμέςκαι 2 στήλες, όπως πιο κάτω:

>> x = [ -3 0 2 4 7 ];>> y = [ -2 1 2 5 9 ]>> subplot(2,2,3)>> plot(x,y,'o')>> grid on>> hold on>> plot(x,y,'--')

Page 39: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 3939©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΒασικέςΒασικές συναρτήσειςσυναρτήσεις δισδιάστατωνδισδιάστατων γραφικώνγραφικών

plot - Linear plot.

loglog - Log-log scale plot.

semilogx - Semi-log scale plot.

semilogy - Semi-log scale plot.

plotyy - Graphs with y tick labels on the left and right.

Page 40: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 4040©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

axis - Control axis scaling and appearance.

zoom - Zoom in and out on a 2-D plot.

grid - Grid lines.

box - Axis box.

hold - Hold current graph.

subplot - Create axes in tiled positions.

plotedit - Tools for editing and annotating plots.

title - Graph title.

xlabel - X-axis label.

ylabel - Y-axis label.

text - Text annotation.

gtext - Place text with mouse.

Page 41: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 4141©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΤρισδιάσταταΤρισδιάστατα γραφικάγραφικά

>> >> x=0:0.02:10x=0:0.02:10;;

>> y=>> y=sin(xsin(x))

>> z=>> z=cos(xcos(x))

>> plot3(x,y,z)>> plot3(x,y,z)

>> grid on>> grid on

>> >> xlabel('Xxlabel('X')')

>> >> ylabel('Yylabel('Y')')

>> >> zlabel('Zzlabel('Z')')

>> >> title('Usingtitle('Using plot3')plot3')

Page 42: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 4242©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

plot3 - Plot lines and points in 3-D space.

mesh - 3-D mesh surface.

surf - 3-D colored surface.

fill3 - Filled 3-D polygons.

ΒασικέςΒασικές συναρτήσειςσυναρτήσεις τρισδιάστατωντρισδιάστατων γραφικώνγραφικών

Page 43: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 4343©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

axis - Control axis scaling and appearance.

grid - Grid lines.

box - Axis box.

hold - Hold current graph.

axes - Create axes in arbitrary positions.

subplot - Create axes in tiled positions.

daspect - Data aspect ratio.

pbaspect - Plot box aspect ratio.

xlim - X limits.

ylim - Y limits.

zlim - Z limits.

Page 44: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 4444©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

area - Filled area plot.

bar - Bar graph.

barh - Horizontal bar graph.

comet - Comet-like trajectory.

compass - Compass plot.

feather - Feather plot.

fill - Filled 2-D polygons.

hist - Histogram.

pie - Pie chart.

ΕξειδικευμένεςΕξειδικευμένες συναρτήσειςσυναρτήσεις δισδιάστατωνδισδιάστατων γραφικώνγραφικών

Page 45: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 4545©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

figure - Create figure window.

clf - Clear current figure.

close - Close figure.

refresh - Refresh figure.

subplot - Create axes in tiled positions.

axis - Control axis scaling and appearance.

box - Axis box.

hold - Hold current graph.

ishold - Return hold state.

ΓενικέςΓενικές συναρτήσειςσυναρτήσεις γραφικώνγραφικών

Page 46: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 4646©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΑρχείαΑρχεία MatlabMatlab: : αρχείααρχεία ΜΜ (M(M--files)files)

>> >> myMFilemyMFile

myMFile.mmyMFile.m

FileSet Path

Page 47: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 4747©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΑρχείαΑρχεία δεδομένωνδεδομένων MatlabMatlab

>> load >> load w.datw.dat

>> w>> w

>> w(2,1)>> w(2,1)

4 5 6 7 8 9

7

Page 48: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 4848©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΑρχείαΑρχεία Matlab: Matlab: loadload//savesave

>> x = 1:2:11; >> x = 1:2:11;

>> y = [4 7 >> y = [4 7 --3 2];3 2];

>> >> savesave C:C:\\mySaved1 xmySaved1 x % % Save workspace variables to diskSave workspace variables to disk

>> >> savesave C:C:\\mySaved2mySaved2

>> clear all>> clear all

>> >> loadload C:C:\\mySaved1mySaved1 % % Load workspace variables from diskLoad workspace variables from disk

>> x>> x

>> y>> y

>> >> loadload C:C:\\mySaved2mySaved2

>> y>> y

1 3 5 7 9 11

??? Undefined function or variable ’y'.

4 7 -3 2

Page 49: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 4949©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΣχεδίασηΣχεδίαση μεμε βάσηβάση αρχείααρχεία MatlabMatlab

>> temperatures

temps.dat

temperatures.m

Page 50: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 5050©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΑρχείαΑρχεία συναρτήσεωνσυναρτήσεων MatlabMatlab

myMFile1.m myMFile1.m

a = 2.5;a = 2.5;

e = pi * a ^ 2;e = pi * a ^ 2;

>> myMFile1>> ee = 19.634954

• Απλές εντολές σε M-file:

myFunction1.m myFunction1.m functionfunction embadoembado=myFunction1(x)=myFunction1(x)

embadoembado = pi * x ^2;= pi * x ^2;

returnreturn

>> e = myFunction1(10)e = 314.1593

>> myFunction1(0.5)ans = 0.7854

>> x=myFunction1(17.5)x = 962.1128

• Συναρτήσεις:

Page 51: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 5151©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΣυναρτήσειςΣυναρτήσεις

myFun1.m myFun1.m function y=myFun1(x)function y=myFun1(x)y = x*x*x;y = x*x*x;

returnreturn

• Ορισμός συναρτήσεως: function apotelesma = synarthsh1(parametroi)

myFun2.m myFun2.m function myFun2(x,y)function myFun2(x,y)x + yx + y

returnreturn

>> clear all>> z=myFun1(8)>> y

??? Undefined function or variable 'y'.>> z

z = 512

>> myFun2(8,7)ans = 15

Ορισμόςσυνάρτησης

Σώμασυνάρτησης

Page 52: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 5252©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΕπιστροφήΕπιστροφή πολλαπλώνπολλαπλών τιμώντιμών καικαι τοπικέςτοπικές μεταβλητέςμεταβλητές

functionfunction [a2,b3] = MyFun1(x,y)[a2,b3] = MyFun1(x,y)a2 = x^2;a2 = x^2;b3 = y^3;b3 = y^3;returnreturn

a2 = 75;a2 = 75;b3 = b3 = --45;45;x = 3;x = 3;y = y = --12;12;

[[k,mk,m] = ] = MyFun1MyFun1(2,5);(2,5);

kkmma2a2b3b3xxyy

>> >> testMyFun1testMyFun1k =k =

44

m =m =125125

a2 =a2 =7575

b3 =b3 =--4545

x =x =33

y =y =--1212

Page 53: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 5353©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΣχετικοίΣχετικοί ττελεστέςελεστές ((Relational operatorsRelational operators))

> > < < > = > = < = < = = = = = ~ = ~ =

Equal Equal == ==

Not equal Not equal ~= ~=

Less than Less than < <

Greater than Greater than > >

Less than or equal <= Less than or equal <=

Greater than or equal >=Greater than or equal >=

Page 54: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 5454©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΛογικοίΛογικοί ττελεστέςελεστές ((LogicalLogical operatorsoperators))

&&& & ||| | ~~

ShortShort--circuit logical AND && circuit logical AND &&

ShortShort--circuit logical OR || circuit logical OR ||

Logical NOT ~ Logical NOT ~

Page 55: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 5555©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΛογικάΛογικά τεστςτεστς

>> x = 5;>> x = 5;

>> y = 7;>> y = 7;

>> x < y>> x < y

>> x >= y >> x >= y -- 3 3

>> x == y >> x == y -- 33

>> 0 < x >> 0 < x &&& x+2 > y& x+2 > y

>> 0 < x >> 0 < x |||| y > xy > x

>> ~ (x < 5) >> ~ (x < 5)

11

11

00

00

11

11

Page 56: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 5656©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΔιακλαδώσειςΔιακλαδώσεις

if if έκφρασηέκφραση11

εκτελείταιεκτελείται μόνομόνο

αναν ηη έκφρασηέκφραση1 1

είναιείναι αληθήςαληθής

endend

if if έκφρασηέκφραση11εκτελείταιεκτελείται μόνομόνοαναν ηη έκφρασηέκφραση1 1 είναιείναι αληθήςαληθής

elseifelseif έκφρασηέκφραση22

εκτελείταιεκτελείται μόνομόνοαναν ηη έκφρασηέκφραση1 1 δενδεν είναιείναιαληθήςαληθής καικαι ηηέκφρασηέκφραση2 2 είναιείναιαληθήςαληθής

elseelseεκτελείταιεκτελείται ανανκαμίακαμία έκφρασηέκφρασηδενδεν είναιείναιαληθήςαληθής

endend

if if έκφρασηέκφραση11

εκτελείταιεκτελείται μόνομόνο

αναν ηη έκφρασηέκφραση1 1

είναιείναι αληθήςαληθής

elseelse

εκτελείταιεκτελείται μόνομόνο

αναν ηη έκφρασηέκφραση1 1

δενδεν είναιείναι

αληθήςαληθής

endend

Page 57: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 5757©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΠαράδειγμαΠαράδειγμα διακλαδώσεωνδιακλαδώσεων

rand1.m

Page 58: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 5858©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΔομήΔομή ελέγχουελέγχου switchswitch

x=3x=3

switch xswitch xcase 1case 1

y1 = xy1 = xcase 3case 3

y3 = x+3 y3 = x+3 case 7case 7

y7 = x+777 y7 = x+777 otherwise otherwise

zzzz = x^2= x^2endend

>>>>

x =x =

33

y3 =y3 =

66

Page 59: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 5959©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΔομήΔομή ελέγχουελέγχου switchswitch

xx == --44

switch xswitch xcase 1case 1

y1 = xy1 = xcase 3case 3

y3 = x+3 y3 = x+3 case 7case 7

y7 = x+777 y7 = x+777 otherwise otherwise

zzzz = x^2= x^2endend

>>>>

x =x =

--44

zzzz ==

1616

Page 60: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 6060©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΒρόγχοιΒρόγχοι

forfor μεταβλητήμεταβλητή = = αρχικήαρχική τιμήτιμή : (: (προαιρετικόπροαιρετικό) ) βήμαβήμα : : τελικήτελική τιμήτιμήεντολέςεντολές

endend

for for ii==1:51:5disp(i^2)disp(i^2)

endend

149

1625

for for ii==5:5:--1:11:1if i == 3 if i == 3 continuecontinue

endenddisp(i^2)disp(i^2)

endend

25 16 41

Page 61: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 6161©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΒρόγχοιΒρόγχοι ((συνεχσυνεχ.).)

i = 0;i = 0;while i<10while i<10i = i + 2i = i + 2

endenddisp(idisp(i))

whilewhile λογικήλογική έκφρασηέκφρασηεντολέςεντολές

endend

(μέσα στις οποίες πρέπει κάτι σχετικό με τηνλογική έκφραση να αλλάζει, ή να υπάρχει κάποιοbreak, ώστε να αποφεύγεται βρόγχος επ’άπειρον)

i = 2i = 2i = 4i = 4i = 6i = 6i = 8i = 8i = 10i = 101010

continue: continue: συνέχειασυνέχεια μεμε επόμενηεπόμενη εκτέλεσηεκτέλεση βρόγχουβρόγχου forfor ήή whilewhile

break: break: τερματισμόςτερματισμός εκτέλεσηςεκτέλεσης βρόγχωνβρόγχων forfor καικαι whilewhile

i = 0;i = 0;while 1while 1if i>=10if i>=10

breakbreakendendi = i + 2i = i + 2

endenddisp(idisp(i))

Page 62: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 6262©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΔομέςΔομές ελέγχουελέγχου

if if -- Conditionally execute statements.Conditionally execute statements.

else else -- Execute statement if previous IF condition failed.Execute statement if previous IF condition failed.

elseifelseif -- Execute if previous IF failed and condition is true.Execute if previous IF failed and condition is true.

end end -- Terminate scope of control statements.Terminate scope of control statements.

for for -- Repeat statements a specific number of times.Repeat statements a specific number of times.

while while -- Repeat statements an indefinite number of times.Repeat statements an indefinite number of times.

break break -- Terminate execution of WHILE or FOR loop.Terminate execution of WHILE or FOR loop.

continue continue -- Pass control to the next iteration of a loop.Pass control to the next iteration of a loop.

switch switch -- Switch among several cases based on expression.Switch among several cases based on expression.

case case -- SWITCH statement case.SWITCH statement case.

otherwise otherwise -- Default SWITCH statement case.Default SWITCH statement case.

Page 63: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 6363©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΣύγκρισηΣύγκριση Matlab Matlab καικαι άλλωνάλλων γλωσσώνγλωσσώνπρογραμματισμούπρογραμματισμού

MatlabMatlab

σεσε σύγκρισησύγκριση μεμε::

FortranFortran

C/C++C/C++

Java Java

Visual Basic/VB Visual Basic/VB

.net.net

C#C#

Page 64: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 6464©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΕίσοδοςΕίσοδος δεδομένωνδεδομένων//ΈξοδοςΈξοδος αποτελεσμάτωναποτελεσμάτων

io1.mio1.ma = a = inputinput('Aktina('Aktina kykloykykloy: ');: ');

p = 2 * pi * a;p = 2 * pi * a;

e = pi * a ^ 2;e = pi * a ^ 2;

fprintffprintf(' (' DokimhDokimh: %s ', 'Matlab'): %s ', 'Matlab')

fprintf('fprintf('\\nn AktinaAktina = %f ', a)= %f ', a)

fprintf('fprintf('\\nn PerimetrosPerimetros = %.3f ', p)= %.3f ', p)

fprintffprintf(' (' \\n n EpifaneiaEpifaneia = %f ', e)= %f ', e)

fprintffprintf(' p = %f (' p = %f \\t e = %f ', p, e)t e = %f ', p, e)

fprintffprintf(' %s = %f ', 'a', a)(' %s = %f ', 'a', a)

fprintffprintf(' %s = %f ', 97, a)(' %s = %f ', 97, a)

>> io1

Aktina kykloy: 5Dokimh: MatlabAktina = 5.0000Perimetros = 31.416Epifaneia = 78.539816p= 31.415927 e = 78.539816a = 5a = 5

Page 65: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 6565©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΜορφοποίησηΜορφοποίηση αποτελεσμάτωναποτελεσμάτων

>> format long >> format long >> >> pipi

ansans = = 3.141592653589793.14159265358979

>> format short >> format short >> >> pi pi ansans = =

3.14163.1416

>> format compact>> format compact >> format loose>> format loose

>> format >> format short eshort e >> format >> format long elong e

>> format >> format long glong g >> format >> format long glong g

>> format >> format ++

Page 66: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 6666©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

>> disp(pi) >> t= 'Testing’

>> disp(t)

Testing

3.1416

disp(x): παρουσιάζει τον πίνακα x

>> x = 4.5

>> disp x

x

>> disp(x)

4.5

Page 67: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 6767©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΕκτέλεσηΕκτέλεση εντολώνεντολών υπόυπό μορφήμορφή χαρακτήρωνχαρακτήρων

>> s='2*3-5+3/2’

>> eval(s)

ans =2.5000

>> s2 = 'x = 45/9 >> s2 = 'x = 45/9 --2'2'

s2 =s2 =

x = 45/9 x = 45/9 --22

>> eval(s2)>> eval(s2)

x =x =

3.003.00

Page 68: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 6868©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΜέγιστεςΜέγιστες καικαι ελάχιστεςελάχιστες τιμέςτιμές

>> realMax

ans =1.7977e+308

>> realMin

ans =2.2251e-308

INF : Infinity

NaN : Not-a-Number

Page 69: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 6969©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΕντολέςΕντολές ΛειτουργικούΛειτουργικού ΣυστήματοςΣυστήματος

cdcd -- Change current working directory.Change current working directory.

copyfilecopyfile -- Copy file or directory.Copy file or directory.

movefilemovefile -- Move file or directory.Move file or directory.

delete delete -- Delete file or graphics object.Delete file or graphics object.

pwdpwd -- Show (print) current working directory.Show (print) current working directory.

dir dir -- List directory.List directory.

lsls -- List directory.List directory.

mkdirmkdir -- Make new directory.Make new directory.

rmdirrmdir -- Remove directory.Remove directory.

! ! -- Execute operating system command.Execute operating system command.

Page 70: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 7070©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΕντολέςΕντολές ΧώρουΧώρου ΕργασίαςΕργασίας ((workspaceworkspace))

who who -- List current variables.List current variables.

whoswhos -- List current variables, long form. List current variables, long form.

clear clear -- Clear variables and functions from memory.Clear variables and functions from memory.

load load -- Load workspace variables from disk.Load workspace variables from disk.

save save -- Save workspace variables to disk. Save workspace variables to disk.

quit quit -- Quit MATLAB session.Quit MATLAB session.

exit exit -- Exit from MATLAB.Exit from MATLAB.

Page 71: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 7171©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΕντολέςΕντολές ελέγχουελέγχου

what what -- List MATLABList MATLAB--specific files in directory.specific files in directory.

type type -- List MList M--file.file.

open open -- Open files by extension.Open files by extension.

which which -- Locate functions and files.Locate functions and files.

Page 72: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 7272©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

now - Current date and time as date number.

date - Current date as date string.

clock - Current date and time as date vector.

datestr - String representation of date.

calendar - Calendar.

cputime - CPU time in seconds.

tic - Start stopwatch timer.

toc - Stop stopwatch timer.

pause - Wait in seconds.

ΧρονικέςΧρονικές συναρτήσειςσυναρτήσεις

Page 73: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 7373©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΑριθμητικέςΑριθμητικές μέθοδοιμέθοδοι

•• ΕπίλυσηΕπίλυση προβλημάτωνπροβλημάτων τωντων οποίωνοποίων δενδεν υπάρχουνυπάρχουν ήή δενδεν έχουνέχουνβρεθείβρεθεί ακόμηακόμη αναλυτικέςαναλυτικές λύσειςλύσεις..

•• ΣειράΣειρά συγκεκριμένωνσυγκεκριμένων βημάτωνβημάτων υπολογισμώνυπολογισμών μεμε στόχοστόχο τηντην εύρεσηεύρεση

μιαςμιας έστωέστω προσεγγιστικήςπροσεγγιστικής λύσηςλύσης μεμε ικανοποιητικήικανοποιητική ακρίβειαακρίβεια..

•• ΧαρακτηριστικάΧαρακτηριστικά μιαςμιας καλήςκαλής αριθμητικήςαριθμητικής μεθόδουμεθόδου::•• ΑΑκρίβειακρίβεια λύσηςλύσης ((μικρήμικρή διαφοράδιαφορά απόαπό πραγματικήπραγματική λύσηλύση))•• ΚόστοςΚόστος λύσηςλύσης ((απαιτούμενοςαπαιτούμενος χρόνοςχρόνος επίλυσηςεπίλυσης))•• ΣύγκλισηΣύγκλιση καικαι ευστάθειαευστάθεια μεθόδουμεθόδου

•• ΣφάλματαΣφάλματα::

•• απόλυτοαπόλυτο σφάλμασφάλμα ((ππ.x..x. | | ΥΥπροσεγπροσεγ. . -- ΥΥακριβέςακριβές |)|)

•• σχετικόσχετικό σφάλμασφάλμα ((ππ..χχ. | . | ΥΥπροσεγπροσεγ. . -- ΥΥακριβέςακριβές | / | | / | ΥΥακριβέςακριβές |)|)

Page 74: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 7474©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΑριθμητικήΑριθμητική επίλυσηεπίλυση μημη--γραμμικώνγραμμικών εξισώσεωνεξισώσεων

•• ΈχονταςΈχοντας μιαμια συνάρτησησυνάρτηση νανα βρεθείβρεθεί ((ήή νανα βρεθούνβρεθούν) ) ηη ρίζαρίζα ((ρίζεςρίζες) ) γιαγιατιςτις οποίεςοποίες ηη συνάρτησησυνάρτηση ισούταιισούται μεμε μηδένμηδέν: : Y = f(x) = 0.0Y = f(x) = 0.0

ΔηλαδήΔηλαδή τατασημείασημεία όπουόπουτέμνεταιτέμνεται οοάξοναςάξονας τωντων ΧΧ

Page 75: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 7575©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΜέθοδοςΜέθοδος διχοτόμησηςδιχοτόμησης

1. 1. ΕντοπίστεΕντοπίστε έναέναδιάστημαδιάστημα πουπουσυμπεριλαμβάνεισυμπεριλαμβάνει τηντηναναζητούμενηαναζητούμενη ρίζαρίζα..

2. 2. ΜοιράστεΜοιράστε τοτο διάστημαδιάστημααυτόαυτό στοστο μισόμισό καικαικρατήστεκρατήστε τοτο μισόμισό πουπουσυμπεριλαμβάνεισυμπεριλαμβάνει τηντηνρίζαρίζα

3. 3. ΕπαναλάβετεΕπαναλάβετε τοτο βήμαβήμα 2 2 μέχριμέχρι νανα προσεγγιστείπροσεγγιστεί ικανοποιητικάικανοποιητικά ηηαναζητούμενηαναζητούμενη ρίζαρίζα ((δηλαδήδηλαδή νανα επιτευχθείεπιτευχθεί ικανοποιητικήικανοποιητική σύγκλισησύγκλιση))

Page 76: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 7676©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΑριθμητικήΑριθμητική ολοκλήρωσηολοκλήρωση

•• ΈχονταςΈχοντας μιαμια συνάρτησησυνάρτηση Y=f(X)Y=f(X) νανα υπολογιστείυπολογιστεί τοτο ολοκλήρωμαολοκλήρωμα τηςτηςσυνάρτησηςσυνάρτησης απόαπό κάποιακάποια τεταγμένητεταγμένη x1 x1 ωςως κάποιακάποια άλληάλλη τεταγμένητεταγμένηx2.x2.

ΔηλαδήΔηλαδή τοτοεμβαδόεμβαδό μεταξύμεταξύτηςτης καμπύληςκαμπύληςκαικαι τουτου άξοναάξονατωντων x x απόαπό x1 x1 ωςως x2:x2:

x1 x2

Page 77: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 7777©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010 x1 x2

xα xβ

f(xα) f(xβ)

OOλοκλήρωσηλοκλήρωση μεμε τηντην μέθοδομέθοδο τραπεζίουτραπεζίου•• ΠροσέγγισηΠροσέγγιση εμβαδούεμβαδού μεμε τοτο άθροισμαάθροισμα αριθμούαριθμού τραπεζίωντραπεζίων

•• ΕμβαδόΕμβαδό λωρίδαςλωρίδαςπλάτουςπλάτους ΔΧΔΧ βάσηβάσητύπουτύπου τραπεζίουτραπεζίου

Page 78: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 7878©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΑλγόριθμοιΑλγόριθμοι

ΟρισμόςΟρισμός καικαι πλήρηςπλήρης κατανόησηκατανόηση τουτου προβλήματοςπροβλήματος προςπρος επίλυσηεπίλυση

ΚαθορισμόςΚαθορισμός ενόςενός αλγόριθμουαλγόριθμου, , δηλαδήδηλαδή μιαςμιας συγκεκριμένηςσυγκεκριμένηςδιαδικασίαςδιαδικασίας βημάτωνβημάτων τατα οποίαοποία οδηγούνοδηγούν σεσε συγκεκριμένασυγκεκριμένααποτελέσματααποτελέσματα μεμε ικανοποιητικάικανοποιητικά ελάχιστοελάχιστο δυνατόδυνατό κόστοςκόστος ((μνήμηςμνήμηςκαικαι χρόνουχρόνου))

ΥλοποίησηΥλοποίηση τουτου αλγορίθμουαλγορίθμου σεσε υπορουτίναυπορουτίνα//προγράμμαπρογράμμα μεμε χρήσηχρήσηκάποιαςκάποιας κατάλληληςκατάλληλης γλώσσαςγλώσσας προγραμματισμούπρογραμματισμού

ΈλεγχοςΈλεγχος τηςτης υπορουτίναςυπορουτίνας//προγράμματοςπρογράμματος γιαγια διάφορεςδιάφορεςπεριπτώσειςπεριπτώσεις δεδομένωνδεδομένων, , ειδικάειδικά όλωνόλων τωντων ακραίωνακραίων περιπτώσεωνπεριπτώσεων. .

ΧρήσηΧρήση υπορουτίναςυπορουτίνας//προγράμματοςπρογράμματος γιαγια επίλυσηεπίλυση σχετικώνσχετικώνπροβλημάτωνπροβλημάτων. .

Page 79: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 7979©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

AAλγόριθμοιλγόριθμοι ταξινόμησηςταξινόμησης ((Sorting methodsSorting methods))

•• ΜεθόδοιΜεθόδοι ταξινόμησηςταξινόμησης ((ΝΝ) ) στοιχείωνστοιχείων::

•• απλέςαπλές μέθοδοιμέθοδοι: : συνήθωςσυνήθως απαιτούναπαιτούν βήματαβήματα τάξηςτάξης ΟΟ((ΝΝ^2)^2)))•• μέθοδοςμέθοδος ταξινόμησηςταξινόμησης μεμε εισαγωγήεισαγωγή ((insertion sortinsertion sort))

•• μέθοδοςμέθοδος ταξινόμησηςταξινόμησης μεμε επιλογήεπιλογή ((selection sortselection sort))

•• μέθοδοςμέθοδος ταξινόμησηςταξινόμησης τύπουτύπου κελύφουςκελύφους ((shellsortshellsort), ), κλπκλπ..

•• προχωρημένεςπροχωρημένες μέθοδοιμέθοδοι: : συνήθωςσυνήθως απαιτούναπαιτούν βήματαβήματα τάξηςτάξης ΟΟ((ΝΝ.logN.logN))))•• γρήγορηγρήγορη μέθοδοςμέθοδος ταξινόμησηςταξινόμησης ((quicksortquicksort))

•• μέθοδοςμέθοδος ταξινόμησηςταξινόμησης μεμε συγχώνευσησυγχώνευση ((mergesortmergesort))

•• ΗΗ ταξινταξινόόμησημηση είναιείναι χρήσιμηχρήσιμη σεσε πολλάπολλά προβλήματαπροβλήματα, , ππ..χχ. . γιαγια τηντηνδιευκόλυνσηδιευκόλυνση τηςτης αναζήτησηςαναζήτησης ενόςενός στοιχείουστοιχείου απόαπό πλήθοςπλήθος στοιχείωνστοιχείων

5 5 --2 6 4 23 7 45 3 9 0 2 6 4 23 7 45 3 9 0 --3 4 7 3 4 7 --3 5 6 3 5 6 --4 11 4 11

--4 4 --3 3 --3 3 --2 0 3 4 4 5 5 6 6 7 7 9 2 0 3 4 4 5 5 6 6 7 7 9 11 23 4511 23 45

Page 80: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 8080©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΠαράδειγμαΠαράδειγμα:: αλγόριθμοςαλγόριθμος ταξινόμησηςταξινόμησης τύπουτύπου εισαγωγήςεισαγωγής

•• ΘεωρώνταςΘεωρώντας ότιότι τατα στοιχείαστοιχεία είναιείναι αποθηκευμένααποθηκευμένα σεσε έναένα διάνυσμαδιάνυσμα ΑΑ

•• ΣεΣε κάθεκάθε βήμαβήμα τοτο στοιχείοστοιχείο A(i)A(i) πρέπειπρέπει νανα εισαχθείεισαχθεί στηνστην σωστήσωστή θέσηθέση αναμέσααναμέσα στασταήδηήδη ταξινομημέναταξινομημένα απόαπό τατα προηγούμεναπροηγούμενα βήματαβήματα στοιχείαστοιχεία A(0),A(0), A(1),A(1), …….,.,A(iA(i--1)1)

ΥλοποίησηΥλοποίηση αλγορίθμουαλγορίθμου χρησιμοποιώνταςχρησιμοποιώντας τοτο MatlabMatlab::

function aSorted = insertionSort(a)aSorted=a;for stoixeio = 2 : length(a)

value = aSorted(stoixeio);thesh = stoixeio;while thesh>1 && aSorted(thesh-1) > value

aSorted(thesh) = aSorted(thesh-1); thesh = thesh-1;

endaSorted(thesh)=value;disp(aSorted);

endreturn

ΕσωτερικόςβρόγχοςΕξωτερικός

βρόγχος

Page 81: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 8181©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΠαράδειγμαΠαράδειγμα εφαρμογήςεφαρμογής αλγόριθμουαλγόριθμου ταξινόμησηςταξινόμησης τύπουτύπουεισαγωγήςεισαγωγής

3 3 --44 2 2 --6 7 0 3 6 7 0 3 --1 2 1 2

--44 33 22 --6 7 0 3 6 7 0 3 --1 21 2

--4 4 22 33 --66 7 0 3 7 0 3 --1 21 2

--66 --4 2 34 2 3 77 0 3 0 3 --1 21 2

--6 6 --4 2 3 4 2 3 77 00 3 3 --1 21 2

--6 6 --4 4 0 0 2 32 3 7 7 3 3 --1 21 2

--6 6 --4 0 2 3 4 0 2 3 33 77 --11 22

--6 6 --4 4 --11 0 2 3 3 70 2 3 3 7 22

--6 6 --4 4 --1 0 1 0 2 2 2 3 32 3 3 77

Page 82: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 8282©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

AAλγόριθμοιλγόριθμοι αναζήτησηςαναζήτησης στοιχείωνστοιχείων ((Searching methodsSearching methods))

•• ΜεθόδοιΜεθόδοι αναζήτησηςαναζήτησης ((ΝΝ) ) στοιχείωνστοιχείων::•• γραμμικήγραμμική αναζήτησηαναζήτηση ((Linear searchLinear search): ): απαιτούνταιαπαιτούνται βήματαβήματα τάξεωςτάξεως O(N)O(N)

•• δυαδικήδυαδική αναζήτησηαναζήτηση ((Binary searchBinary search): ): απαιτούνταιαπαιτούνται βήματαβήματα τάξεωςτάξεως O(logNO(logN))

ΗΗ αναζήτησηαναζήτηση στοιχείωνστοιχείων διευκολύνεταιδιευκολύνεται απόαπό τηντην ταξινταξινόόμησημηση τωντων στοιχείωνστοιχείων

ΑςΑς υποθέσομευποθέσομε νανα βρούμεβρούμε έναένα στοιχείοστοιχείο μεμε κλειδίκλειδί τοντον αριθμόαριθμό 99

5 5 --2 6 4 23 7 45 3 2 6 4 23 7 45 3 99 0 0 --3 4 7 3 4 7 --3 5 6 3 5 6 --4 11 4 11

--4 4 --3 3 --3 3 --2 0 3 4 4 5 5 6 6 7 7 9 2 0 3 4 4 5 5 6 6 7 7 9 11 23 4511 23 45

ΓραμμικήΓραμμική αναζήτησηαναζήτηση (Linear search)(Linear search)

ΔυαδικήΔυαδική αναζήτησηαναζήτηση ((ΒΒinaryinary search)search)

Page 83: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 8383©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΠαράδειγμαΠαράδειγμα:: αλγόριθμοςαλγόριθμος δυαδικήςδυαδικής αναζήτησηςαναζήτησης στοιχείωνστοιχείων•• ΘεωρώνταςΘεωρώντας ότιότι τατα στοιχείαστοιχεία είναιείναι ταξινομημέναταξινομημένα σεσε έναένα διάνυσμαδιάνυσμα ΑΑ

διαστάσεωςδιαστάσεως ΝΝ χρησιμοποιούμεχρησιμοποιούμε τοτο ““διαίρειδιαίρει καικαι βασίλευεβασίλευε””

•• ΜοιράζονταςΜοιράζοντας τοτο διάνυσμαδιάνυσμα στηνστην μέσημέση, , κρατάμεκρατάμε τοτο μισόμισό όπουόπου μπορείμπορεί ναναβρίσκεταιβρίσκεται τοτο αναζητούμενοαναζητούμενο στοιχείοστοιχείο καικαι επαναλαμβάνομεεπαναλαμβάνομε αυτόαυτό τοτο βήμαβήμα, , μοιράζονταςμοιράζοντας διαδοχικάδιαδοχικά τοτο διάνυσμαδιάνυσμα σταστα δύοδύο, , μέχριμέχρι νανα βρούμεβρούμε, , αναν υπάρχειυπάρχει, , τοτο στοιχείοστοιχείο πουπου ψάχνοψάχνουυμεμε..

ΥλοποίησηΥλοποίησηαλγορίθμουαλγορίθμου

δυαδικήςδυαδικής αναζήτησηςαναζήτησηςμεμε χρήσηχρήση MatlabMatlab::

function binarySearch(a,x)arxh = 1; telos = length(a);while arxh <= telos

meso = floor((arxh+telos)/2);if x < a(meso)

telos = meso-1;elseif x > a(meso)

arxh = meso+1;else

fprintf('To stoixeio %d bre8hke sthn 8esh: %d.', x, meso) return

endendfprintf('To stoixeio %d den bre8hke.', x)

return

Page 84: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 8484©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΠαράδειγμαΠαράδειγμα εφαρμογήςεφαρμογής αλγόριθμουαλγόριθμου δυαδικήςδυαδικής αναζήτησηςαναζήτησης

--6 6 --4 4 --1 0 2 2 3 1 0 2 2 3 3 73 7>> binarySearch(b,0)>> binarySearch(b,0)

To To stoixeiostoixeio 0 bre8hke 0 bre8hke sthnsthn 8esh: 4.8esh: 4.

>> binarySearch(b,5)>> binarySearch(b,5)

To To stoixeiostoixeio 5 den bre8hke.5 den bre8hke.

>> binarySearch(b,7)>> binarySearch(b,7)

To To stoixeiostoixeio 7 bre8hke 7 bre8hke sthnsthn 8esh: 9.8esh: 9.

>> binarySearch(b,17)>> binarySearch(b,17)

To To stoixeiostoixeio 17 den bre8hke.17 den bre8hke.

>> binarySearch(b,>> binarySearch(b,--6)6)

To To stoixeiostoixeio --6 bre8hke 6 bre8hke sthnsthn 8esh: 1.8esh: 1.

>> binarySearch(b,>> binarySearch(b,--1)1)

To To stoixeiostoixeio --1 bre8hke 1 bre8hke sthnsthn 8esh: 38esh: 3..

Page 85: CEE501 1 Matlab Introduction

ΠΠΜΠΠΜ 501: 501: ΠροχωρημένηΠροχωρημένη ΑνάλυσηΑνάλυση ΚατασκευώνΚατασκευών μεμε ΗΗ//ΥΥ 8585©© ΠέτροςΠέτρος ΚωμοδρόμοςΚωμοδρόμος, 20, 201010

ΠερισσότερεςΠερισσότερες πληροφορίεςπληροφορίες γιαγια τοτο MatlabMatlab

ΕισαγωγήΕισαγωγή στηστη MatlabMatlab, , ΓΓ. . ΓεωργίουΓεωργίου & & ΧΧ. . ΞενοφώντοςΞενοφώντος, , ΒιβλΒιβλ. . ΚαντζηλάρηςΚαντζηλάρης..

http://www.mathworks.com/access/helpdesk/help/techdoc/matlab.shthttp://www.mathworks.com/access/helpdesk/help/techdoc/matlab.shtmlml

http://http://www.math.ufl.edu/help/matlabwww.math.ufl.edu/help/matlab--tutorial/tutorial/

http://http://www.cs.ubc.ca/spider/cavers/MatlabGuide/guide.htmlwww.cs.ubc.ca/spider/cavers/MatlabGuide/guide.html

http://www.owlnet.rice.edu/~elec241/matlab.htmlhttp://www.owlnet.rice.edu/~elec241/matlab.html

http://http://www.cyclismo.org/tutorial/matlabwww.cyclismo.org/tutorial/matlab//

http://www.glue.umd.edu/~nsw/ench250/matlab.htmhttp://www.glue.umd.edu/~nsw/ench250/matlab.htm

http://http://www.math.utah.edu/lab/ms/matlab/matlab.htmlwww.math.utah.edu/lab/ms/matlab/matlab.html

http://http://www.math.mtu.edu/~msgocken/intro/intro.htmlwww.math.mtu.edu/~msgocken/intro/intro.html

http://http://users.ece.gatech.edu/~bonnie/book/TUTORIAL/tutorial.htmlusers.ece.gatech.edu/~bonnie/book/TUTORIAL/tutorial.html

http://http://amath.colorado.edu/computing/Matlab/Tutorialamath.colorado.edu/computing/Matlab/Tutorial//