Νέο υλικό. www.cs.uoi.gr/~develeg. Matlab2.pdf - Παρουσίαση μαθήματος 2. Matlab-reference.pdf Σημειώσεις matlab στα ελληνικά (13 σελίδες).



Σχετικά έγγραφα
Εισαγωγή στη Matlab 2 Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής

Προγραμματισμός στο Matlab

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 4 ο Εργαστήριο. Διανύσματα-Πίνακες 1 ο Μέρος

Τυπικές χρήσεις της Matlab

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Εισαγωγή στην Αριθμητική Ανάλυση

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 3)

Εισαγωγή στους Υπολογιστές

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Εισαγωγικές σημειώσεις στο Matlab

1. Κατασκευάστε ένα διάνυσμα με στοιχεία τους ζυγούς αριθμούς μεταξύ του 31 και 75

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

Συστήματα Αναμονής (Queuing Systems)

Πληροφορική. Ενότητα 4: Α. Λογικές εκφράσεις (Παραστάσεις και Δείκτες). Β. Δομές Προγραμματισμού. Κωνσταντίνος Καρατζάς Τμήμα Μηχανολόγων Μηχανικών

Συναρτήσεις - Όρια- Παράγωγοι- Ολοκληρώματα Ακολουθίες-Σειρές

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 5)

4 η ΕΝΟΤΗΤΑ Μητρώα και συνθήκες στο MATLAB

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 4)

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Μαρία Λουκά. Εργαστήριο Matlab Πολυώνυμα - Παρεμβολή. Τμήμα Πληροφορικής και Τηλεπικοινωνιών.

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 6)

1 Πίνακες 1.1 Συνοπτική θεωρία

Χρονικές σειρές 1 ο μάθημα: Εισαγωγή στη MATLAB

Αλληλεπίδραση με το Matlab

Βασικά στοιχεία στο Matlab

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Εισαγωγή στο Περιβάλλον Επιστημονικού Προγραμματισμού MATLAB-Simulink. Δημήτριος Τζεράνης Λεωνίδας Αλεξόπουλος

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 9 ο Εργαστήριο. Απαλοιφή Gauss με μερική οδήγηση - Παρεμβολη

Σημειωματάριο Δευτέρας 30 Οκτ. 2017

Διάλεξη 20: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου

ΣΤΗΛΗ Β ΑΠΟΤΕΛΕΣΜΑ 1. float(10) α pow(2,3) β abs(-10) γ int(5.6) δ. 10 ε. 5.6 Μονάδες 8 ΣΤΗΛΗ Α ΣΥΝΑΡΤΗΣΗ

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 5

Πληροφορική. Ενότητα 1: Α. Οργάνωση μαθήματος. Β. Στοιχεία Προγραμματισμού -Προγραμματιστικές Δομές, Πρόγραμμα, Γλώσσες.

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ

ΜΑΣ 191. Μαθηματικά με Υπολογιστές Διδάσκων: Γιώργος Γεωργίου Ενδιάμεση εξέταση Θεωρία 18 Μαρτίου 2009

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Άθροισμα τριών ποσοτήτων (1/2)

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΡΙΤΗ 13 ΙΟΥΝΙΟΥ 2017

A A A B A ΦΥΛΛΑ ΙΟ ΘΕΜΑΤΩΝ 1/2. Μέϱος A. Πολλαπλές επιλογές (20%) Σειριακός αριθµός : 100 Πληροφορική Ι Εξέταση Φεβρουαρίου 2019

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

Εισαγωγή στον επιστημονικό προγραμματισμό 2 o Μάθημα

Εισαγωγή στη Matlab Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Διάλεξη 1. Πράξεις Τελεστές Έλεγχος Ροής

Β ΜΕΡΟΣ: ΕΦΑΡΜΟΓΗ ΤΟΥ MATLAB ΣΤΗΝ ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ,

Παίρνοντας Αποφάσεις 1

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα;

Σημειωματάριο Τετάρτης 18 Οκτ. 2017

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου

Strings. Τα strings μπορούν να αντιστοιχηθούν σε μεταβλητές δηλώνοντας τα με απόστροφο

Εργαστήριο Γραμμικής Άλγεβρας. H Matlab ως γλώσσα προγραμματισμού

Λογικά Διανύσματα. >>x = -3/2*pi : pi/100 : 3/2*pi; >>y = tan(x); >>plot(x, y)

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

Συναρτήσεις. Υποπρόγραμμα

ΠΡΟΣΟΜΟΙΩΣΗ ΦΥΣΙΚΩΝ ΔΙΕΡΓΑΣΙΩΝ - MATLAB

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων

Σημειωματάαριο Δευτέρας 16 Οκτ. 2017

Σημειωματάριο Δευτέρας 9 Οκτ. 2017

ΕΙΣΑΓΩΓΗ ΣΤΟ MATHLAB Α ΜΕΡΟΣ

Εισαγωγή στους Υπολογιστές

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 2

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

Παράδειγμα για διαχείριση strings

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Σημαντικές δυνατότητες των σύγχρονων υπολογιστικών μηχανών: Αξιόπιστη καταγραφή πολύ μεγάλου όγκου δεδομένων

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 8/11/07

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 2)

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

Δομημένος Προγραμματισμός

true (1) αν και οι δύο είσοδοι είναι true (1) true (1) αν τουλάχιστον μια είσοδος είναι true (1)

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

Προγραμματισμός Η/Υ (ΤΛ2007 )

Transcript:

Matlab Μάθημα

Νέο υλικό www.cs.uoi.gr/~develeg Matlab.pdf - Παρουσίαση μαθήματος. Matlab-reference.pdf Σημειώσεις matlab στα ελληνικά (3 σελίδες).

Επαναληπτικές δομές Όταν εκτελείται μια πράξη σε ένα διάνυσμα, όπως ο υπολογισμός του τετραγώνου των στοιχείων του, η Matlab στην ουσία, διατρέχει ένα-ένα τα στοιχεία του διανύσματος, και αντικαθιστά με το τετράγωνο του αριθμού σε κάθε θέση. Αυτή η διαδικασία είναι επαναληπτική. Α = [ 3 4]; Β = Α.^ Έξοδος: Β = 4 9 6 Στη γλώσσα της matlab υπάρχουν δυο επαναληπτικές δομές: for και while.

for >>for i=:0 i^ ans = ans = 4 ans = 9 ans = 6... ans = 00

For δείκτης σε διάνυσμα >> a=[3,40,,8,0] b=[-7,5,-.4,6,] c=[ ] for i=:5 c(i) = a(i) + b(i) ή for i=:length(a) c(i) = a(i) + b(i) a = 3 40 8 0 b = -7.0000 5.0000-0.4000 6.0000.0000 c = [] c = -4 c = -4 45 c = -4.0000 45.0000 0.6000 c = -4.0000 45.0000 0.6000 4.0000 c = -4.0000 45.0000 0.6000 4.0000.0000

For δείκτες σε πίνακα m=[:4;5:8;9:] for i=:3 for j=:4 m(i,j) = m(i,j) * ; m m = m = 3 4 5 6 7 8 9 0 4 6 8 0 4 6 8 0 4 Το ίδιο αποτέλεσμα με την πράξη στην matlab: m=m.*

For δείκτες σε πίνακα m=[:4;5:8;9:] l = size(m) for i=:l() for j=:l() m(i,j) = m(i,j) * ; m m = 3 4 5 6 7 8 9 0 l = 3 4 m = 4 6 8 0 4 6 8 0 4 l = size(m) επιστρέφει διάνυσμα με αριθμό στοιχείων όσες είναι οι διαστάσεις του πίνακα m, το πρώτο στοιχείο είναι ο αριθμός των γραμμών και δεύτερο στοιχείο ο αριθμός των στηλών κτλ.

while >> a=[3,40,,8,0] b=[-7,5,-.4,6,] c=[ ] while (i <= 5) c(i) = a(i) + b(i) i = i + ; a = 3 40 8 0 b = -7.0000 5.0000-0.4000 6.0000.0000 c = [ ] c = -4 c = -4 45 c = -4.0000 45.0000 0.6000 c = -4.0000 45.0000 0.6000 4.0000 c = -4.0000 45.0000 0.6000 4.0000.0000

Οι αριθμοί Fibonacci Τοποθετούμε ένα ζεύγος κουνελιών σε κλειστό χώρο. Πόσα ζεύγη κουνελιών θα παραχθούν σε ένα χρόνο, με την προϋπόθεση ότι κάθε μήνα κάθε ζεύγος παράγει ένα νέο ζεύγος, το οποίο γίνεται παραγωγικό από τον δεύτερο μήνα και μετά;

Οι αριθμοί Fibonacci f(n) αριθμός ζευγών μετά από n μήνες. f() = f() = f(n) = (αριθμός ζευγών κατά την έναρξη του μήνα n, συν τα ζεύγη που παράγονται από τα γόνιμα ζεύγη τον μήνα n) = f(n-) + f(n-)

Παραγωγή αριθμών Fibonacci f(n) = f(n-) + f(n-) Αρχικές συνθήκες f() =, f() = f = zeros(,); f()=; f() = ; for i=3:length(f) f(i) = f(i - ) + f(i - ); f f = 3 5 8 3 34 55 89 44 33

Συνάρτηση Για να φτιάξουμε μια συνάρτηση στην matlab, δημιουργούμε ένα m-file με Όνομα συνάρτησης Ορίσματα function z = f (x, y) Ορισμός συνάρτησης Επιστρεφόμενη τιμή Στην συνέχεια γραφούμε τις εντολές της συνάρτησης (θα πρέπει να εκχωρείται κάποια τιμή στην μεταβλητή επιστροφής z).

Συνάρτηση fibonacci.m function f = fibonacci(n) % f = fibonacci(n) παράγει τους πρώτους n αριθμούς της ακολουθίας Fibonacci f = zeros(n,); f() = ; f() = ; for i = 3:n f(i) = f(i - ) + f(i - ); Η κλήση της συνάρτησης στο Command window γίνεται με το όνομα του m-file. Καλή τακτική το m-file και η συνάρτηση να έχουν το ίδιο όνομα. >> fibonacci() ans = 3 5 8 3 34 55 89 44 33

Συνάρτηση fibonacci.m function f = fibonacci(n) % f = fibonacci(n) παράγει τους πρώτους n αριθμούς της ακολουθίας Fibonacci f = zeros(n,); f() = ; f() = ; for i = 3:n f(i) = f(i - ) + f(i - ); >> help fibonacci f = fibonacci(n) παράγει τους πρώτους n αριθμούς της ακολουθίας Fibonacci Με το σύμβολο % βάζουμε σχόλια. Τα σχόλια αμέσως μετά τον ορισμό της συνάρτησης εμφανίζονται όταν εκτελούμε help ονομα_συνάρτησης, για αυτό καλό είναι να δίνουμε σχόλια για το τι κάνει η συνάρτηση και τον τρόπο κλίσης της.

Επιλογή if (λογική συνθήκη) Ομάδα εντολών if (λογική συνθήκη) Ομάδα εντολών else Ομάδα εντολών if (λογική συνθήκη ) ομάδα εντολών elseif (λογική συνθήκη ) ομάδα εντολών else ομάδα εντολών 3

Λογικές Συνθήκες Matlab αναπαριστά τις τιμές true και false με τους ακεραίους 0 και. true = false = 0 Έστω ότι στη μεταβλητή x, έχει εκχωρηθεί κάποιο βαθμωτό μέγεθος, μπορούν να ελεγχθούν οι παρακάτω λογικές συνθήκες: x == είναι το x ίσο με ; x ~= είναι το x διάφορο του ; x > είναι το x μεγαλύτερο του ; x < είναι το x μικρότερο του ; x >= είναι το x μεγαλύτερο ή ίσο του ; x <= είναι το x μικρότερο ή ίσο του ; Σύνθετες λογικές συνθήκες x > 0 && x <= είναι το x μεγαλύτερο του 0 και μικρότερο ή ίσο του ; x == x == είναι το x ίσο με ή ίσο με ;

function A = area_ellipse(a, b) % A = area_ellipse(a, b) % υπολογίζει το εμβαδόν μίας έλλειψης όπου τα ορίσματα a και b % αντιστοιχούν στο μισό του μικρού και του μεγάλου άξονα. % Για κλήσεις με ένα όρισμα a = b (κύκλος) error(nargchk(,, nargin)) if (nargin == ) b=a; if ((a < 0) (b < 0)) A=0; else A=pi*a*b; >>area_ellipse??? Error using ==> area_ellipse Not enough input arguments. >> area_ellipse(4,5,6)??? Error using ==> area_ellipse Too many input arguments. >> area_ellipse(4,5) ans = 6.839 >> area_ellipse(-4,5) ans = 0

Ο Χρυσός Λόγος (φ) Χρυσό ορθογώνιο φ Με την αφαίρεση ενός τετραγώνου προκύπτει ορθογώνιο με τον ίδιο λόγο πλευρών. φ - φ ± = ϕ ϕ = 0 ϕ = φ 5

Ο Χρυσός Λόγος (φ) >> phi=(+sqrt(5))/ phi =.680 >> format long >> phi phi =.6803398874989

Υπολογισμός ριζών πολυωνύμου Το διάνυσμα p=[ - -] αναπαριστά το πολυώνυμο p(x)=x - x. Η συνάρτηση roots(p) υπολογίζει τις ρίζες του. >> p=[ - -] p = - - >> r=roots(p) r =.6803398874989-0.6803398874989

Συνάρτηση inline( string ) Μετατρέπει συμβολοσειρές εκφράσεων σε αντικείμενα που μπορούν να χρησιμοποιηθούν ως ορίσματα σε άλλες συναρτήσεις. >> f=inline('/x-(x-)') f = Inline function: f(x) = /x-(x-)

Συνάρτηση ezplot(f,a,b) Κατασκευάζει το γράφημα της συνάρτησης f = f(x) στο διάστημα a < x < b. 7 6 5 4 / x - ( x - ) >>ezplot('/x-(x-)',0,4) ή >>ezplot(f,0,4) 3 0 - - - 3 0 0. 5. 5. 5 3 3. 5 4 x

Συνάρτηση fzero(f,xo) Ψάχνει για f(x) = 0 κοντά στο xo >> f=inline('/x-(x-)') f = 7 6 / x - ( x - ) Inline function: f(x) = /x-(x-) >>ezplot(f,0,4) >>phi=fzero(f,) phi =.6803398874990 >>hold on >>plot(phi, 0, o ) 5 4 3 0 - - - 3 0 0. 5. 5. 5 3 3. 5 4 x

Σχέση ακολουθίας Fibonacci και φ >> f=fibonacci(n); >> f(:n)./f(:n-) lim n fn+ f n = φ ans =.00000000000000.50000000000000.66666666666667.60000000000000.6500000000000....6803398874989.6803398874989 >> f(n)/f(n-)- phi ans = 0

Εύρεση λύσης closed-form για σταθερές c και ρ. Γενική λύση: Από τις αρχικές συνθήκες: ( ) ( ) + + = n n n f ϕ ϕ ϕ ( ), = = φ φ φ φ c c ( ) 0 = + = = + = φ c φ c f c c f ( ) n n n c c f φ φ + = φ κ α ι φ ζ ε ς ρ µ ε ρ ρ + = + = ί f f f n n n n n c f ρ =

>> format long e >> n=(:40) ; >> f=(phi.^(n+) - (-phi).^(n+))/(*phi-) f =.000000000000000e+000.000000000000000e+000 3.000000000000000e+000 5.000000000000000e+000 8.000000000000000e+000.300000000000000e+00.00000000000000e+00....033455000000e+008.655804000000e+008 >> f = round(f) f = 3... 033455 655804