Το γενικό περιβάλλον. Εισαγωγή στο Scilab

Σχετικά έγγραφα
Προγραμματισμός Η/Υ. Χειρισμός Αρχείων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

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

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

5.1 Δραστηριότητα: Εισαγωγή στο ορισμένο ολοκλήρωμα

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

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

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

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

Αριθμητική Ανάλυση και Εφαρμογές

Αριθμητική Ανάλυση & Εφαρμογές

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

ΛΧ1004 Μαθηματικά για Οικονομολόγους

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τι χρειάζεται η εντολή DO ; ΕΠΑΝΑΛΗΨΕΙΣ ΕΝΤΟΛΗ DO. Όταν απαιτείται να εκτελεστεί πολλές φορές το ίδιο τμήμα ενός προγράμματος.

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ ΓΛΩΣΣΟΜΑΘΕΙΑ

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

1. ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB... 13

Χρονικές σειρές 4 o μάθημα: ΠΙΝΑΚΕΣ ΚΑΙ ΔΙΑΝΥΣΜΑΤΑ

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

Εργαστήριο Μαθηματικής Ανάλυσης Ι. Εισαγωγή στη Matlab Βασικές Συναρτήσεις-Γραφικές παραστάσεις. Πανεπιστήμιο Θεσσαλίας. Σχολή Θετικών Επιστημών

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

Μαθηματικά. Ενότητα 3: Ολοκληρωτικός Λογισμός Σαριαννίδης Νικόλαος Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη)

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Εκχώρηση Τιμών

ΠΟΛΥΧΡΟΝΙΑΔΗΣ ΝΙΚΟΣ ΤΑΥΤΟΤΗΤΕΣ

Pr(10 X 15) = Pr(15 X 20) = 1/2, (10.2)

Προγραμματιστικό Περιβάλλον

ΘΕΩΡΙΑ Β ΓΥΜΝΑΣΙΟΥ. Μια παράσταση που περιέχει πράξεις με μεταβλητές (γράμματα) και αριθμούς καλείται αλγεβρική, όπως για παράδειγμα η : 2x+3y-8

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1


Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Γ ε ν ι κ ό Λ ύ κ ε ι ο Ε λ ε υ θ ε ρ ο ύ π ο λ η ς. Α λ γ ό ρ ι θ μ ο ι

Διδακτική Απειροστικού Λογισμού

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

11. Ποιες είναι οι άμεσες συνέπειες της διαίρεσης;

Πρόσθεση, αφαίρεση και πολλαπλασιασμός φυσικών αριθμών

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


Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

Γνωρίστε το Excel 2007

Κεφαλαιο 2.2 ΑΝΑΚΕΦΑΛΑΙΩΤΙΚΕΣ ΑΛΓΟΡΙΘΜΟΙ

7 η ΕΝΟΤΗΤΑ Δομές επανάληψης (συνέχεια) Εντολές εισόδου/εξόδου (συνέχεια)

Παντελής Μπουμπούλης, M.Sc., Ph.D. σελ. 2 math-gr.blogspot.com, bouboulis.mysch.gr

Ψευδοκώδικας. November 7, 2011

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Αριθμητική Ανάλυση και Εφαρμογές

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

Κεφ. 7: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΣΤΑ ΓΕΝΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

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

1. Nα λυθούν οι ανισώσεις. 2. Nα λυθούν οι ανισώσεις. 3. Nα βρεθούν οι κοινές λύσεις των ανισώσεων: 4. Nα βρεθούν οι κοινές λύσεις των ανισώσεων:

Προγραμματισμός Υπολογιστών & Εφαρμογές Python. Κ.Π. Γιαλούρης

Ένας πρώτος τρόπος εύρεσης των διαστάσεων ενός πίνακα στο. Matlab είναι με την εντολή size(όνομα πίνακα) και πατώντας. enter ( )

ΚΕΦΑΛΑΙΟ 2 ΑΛΓΟΡΙΘΜΟΙ ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ ΘΕΩΡΙΑ

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

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

Απειροστικός Λογισμός Ι, χειμερινό εξάμηνο Λύσεις δέκατου φυλλαδίου ασκήσεων. 2 x dx = 02 ( 2) 2

Κεφάλαιο 7 Βασικά Θέματα Προγραμματισμού. Εφαρμογές Πληροφορικής Κεφ. 7 Καραμαούνας Πολύκαρπος 1

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

GreekLUG Ελεύθερο Λογισμικό & Λογισμικό Ανοικτού Κώδικα

Κεφάλαιο 8 Συνεχείς Κατανομές Πιθανοτήτων

6 η ΕΝΟΤΗΤΑ Δομές επανάληψης

Οδηγίες για το Geogebra Μωυσιάδης Πολυχρόνης Δόρτσιος Κώστας

11 ΣΥΝΗΘΕΙΣ ΔΙΑΦΟΡΙΚΕΣ ΕΞΙΣΩΣΕΙΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο

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

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

1.5 ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ μικρόκοσμου «Προγραμματισμός Η/Υ»

2ογελ ΣΥΚΕΩΝ 2ογελ ΣΥΚΕΩΝ ΠΟΛΥΩΝΥΜΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Β Λυκει(ου ΠΟΛΥΩΝΥΜΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

Κεφ. 6Β: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών

Παρουσίαση Libreoffice. Βασίλειος Καραβασίλης Μονάδα Αριστείας ΕΛΛΑΚ ΕΤΕΠΗ 27/04/2015

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ

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

Εισαγωγή στο Mathematica

 = 1 A A = A A. A A + A2 y. A = (A x, A y ) = A x î + A y ĵ. z A. 2 A + A2 z

Μαθηματική Εισαγωγή Συναρτήσεις

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Β. Διαφορικός Λογισμός

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

Μαθηματική Εισαγωγή Συναρτήσεις

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

1 Ο Λύκειο Ρόδου. Β ΓΕΛ ΕισΑρχΕπ Η/Υ. Γεωργαλλίδης Δημήτρης

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

Κεφ 2. Βασικές Έννοιες Αλγορίθμων

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος

Κεφάλαιο 7 ο : Θετικοί και Αρνητικοί αριθμοί

Υπολογιστικά & Διακριτά Μαθηματικά

Πρώτη επαφή με το μαθηματικό πακέτο Mathematica

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ομή Επανάληψης

Προβλήματα που αφορούν εντολές ελέγχου της ροής ενός προγράμματος.

3) το παράθυρο Πίνακας τιμών όπου εμφανίζονται οι τιμές που παίρνουν οι παράμετροι

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ B ΤΑΞΗΣ. χρησιμοποιήσουμε καθημερινά φαινόμενα όπως το θερμόμετρο, Θετικοί-Αρνητικοί αριθμοί.

Oικονομικές και Mαθηματικές Eφαρμογές

Σ ΤΑΤ Ι Σ Τ Ι Κ Η ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ

Transcript:

Το γενικό περιβάλλον Εισαγωγή στο Scilab

Απλοί αριθμητικοί υπολογισμοί Ο συνήθεις αριθμητικές πράξεις πραγματοποιούνται με τα σύμβολα πρόσθεση + αφαίρεση - πολλαπλασιασμός * Διαίρεση / Ύψωση σε δύναμη ^ Παραδείγματα: Εάν δεν θέλουμε να εμφανίζεται το αποτέλεσμα, τότε στο τέλος της εντολής βάζουμε ένα ερωτηματικό ;

Ο ενσωματωμένος επεξεργαστής κειμένου SciNotes Συνήθως για την συγγραφή προγραμμάτων στο Scilab χρησιμοποιούμε τον ενσωματωμένο επεξεργαστή κειμένου, οποίος μας διευκολύνει σημαντικά στο να έχουμε καλύτερη εποπτεία του κώδικα Τα προγράμματα αποθηκεύονται με την προέκταση.sce

Το Scilab μας δίνει την δυνατότητα να απεικονίζουμε γραφικά τα αποτελέσματα των υπολογισμών μας Ένα παράδειγμα γραφικής παράστασης μπορούμε να έχουμε εάν στην κονσόλα γράψουμε --> plot οπότε και εμφανίζεται ένα ενδεικτικό παράθυρο γραφικών Παρατήρησεις Για να σβήσουμε ένα παλιό γράφημα δίνουμε την εντολή clf (clear figure) Για να ανοίξουμε ένα νέο παράθυρο γραφικών δίνουμε την εντολή scf (set current window) Εάν είναι ανοικτά πολλά παράθυρα γραφικών, μπορούμε να επιλέξουμε σε ποιο θα γίνει η γραφική μας παράσταση με την εντολή scf(n) όπου n είναι ο αριθμός του παραθύρου.

Βοήθεια στο Scilab Το Scilab περιέχει έναν εκτεταμένο οδηγό χρήσης που καλύπτει όλες τις βασικές του λειτουργίες με πολλά και κατατοπιστικά παραδείγματα. Πρόσβαση στην βοήθεια μπορούμε να έχουμε είτε από menu bar > Scilab help είτε απλά γράφοντας στην κονσόλα --> help Εάν χρειαζόμαστε βοήθεια για το πώς χρησιμοποιείται μία εντολή ή κάποια συνάρτηση του Scilab, τότε μπορούμε να ζητήσουμε την βοήθεια από την κονσόλα π.χ.

Ορισμός μεταβλητών και εμφάνιση Στο Scilab δεν χρειάζεται να δηλώσουμε το είδος των μεταβλητών Τα πάντα είναι πίνακες. Οι μεταβλητές πρέπει να έχουν ονόματα τα οποία δεν είναι δεσμευμένα από το Scilab. Το αποτέλεσμα ενός υπολογισμού εάν δεν αποδοθεί σε μία μεταβλητή, τότε αυτόματα από δίδεται σε μία μεταβλητή που ονομάζεται ans

Συναρτήσεις Εάν θέλουμε να ορίσουμε μία συνάρτηση f(x) αυτό γίνεται στον Editor ως εξής ή σε μία μόνο γραμμή στην κονσόλα Εάν μετά τον ορισμό της συνάρτησης θέλουμε την τιμή της π.χ. για x=10 τότε απλά γράφουμε

Ορισμός πινάκων Εάν θέλουμε να ορίσουμε έναν πίνακα στήλης Εάν θέλουμε να ορίσουμε έναν πίνακα γραμμής Εάν θέλουμε να ορίσουμε έναν πίνακα nxm

Ο τελεστής : Εάν γράψουμε στην κονσόλα την εντολή --> 3:10 τότε θα πάρουμε την ακολουθία των αριθμών από το 3 έως το 10 Εάν γράψουμε την εντολή --> 1:2:10 τότε θα πάρουμε την ακολουθία των αριθμών Δηλαδή από το 1 έως το 10 με βήμα 2

Εάν για παράδειγμα θέλουμε να φτιάξουμε έναν πίνακα γραμμής που να ονομάζεται x και να έχει ως στοιχεία τους περιττούς αριθμούς από το 1 έως το 10, τότε μπορούμε να γράψουμε: και να επιβεβαιώσουμε ότι πρόκειται για πίνακα γραμμής χρησιμοποιώντας την εντολή size η οποία μας λέει ότι ο x είναι ένας πίνακας με 1 γραμμή και 5 στήλες.

Χειρισμός πινάκων Δημιουργία πινάκων με τις συναρτήσεις ones(), zeros(),eye() Ορισμός μοναδιαίου πίνακα (3x3) Με παρόμοιο τρόπο λειτουργεί και η συνάρτηση zeros() Ορισμός μοναδιαίου πίνακα με τις ίδιες διαστάσει όπως ο πίνακας Β

Χειρισμός πινάκων Συνδυασμοί δύο οι περισσότερων πινάκων Εισαγωγή στο Scilab

Πολλαπλασιασμός πινάκων : Έστω οι (2x2) πίνακες Ο πολλαπλασιασμός πινάκων ορίζεται ως: éa11 a12ù éb11 b12ù A= ê, B a a ú = ê b b ú éa11 a12ù éb11 b12ù éa11b 11+ a12b 21 a11b 12+ a12b 22ù A B= ê a a ú ê b b ú= ê a b + a b a b + a b ú ë 21 22û ë 21 22û ë 21 11 22 21 21 12 22 22û ë 21 22û ë 21 22û Γενικά, για να μπορούμε να πολλαπλασιάσουμε τους πίνακες Α και Β θα πρέπει ο Α να είναι (nxm) και ο Β (mxk). Το αποτέλεσμα της πράξης θα είναι πίνακας (nxk) m m ( n )( k) = ( n k) Γενικά, για τους πίνακες Α(nxm) και Β (mxk) μπορούμε να πούμε ότι το ij στοιχείο του γινομένου των δύο πινάκων (ΑxB) γράφεται ως: m A B ij =å q= 1 ( ) a b iq qj

Παράδειγμα πολλαπλασιασμού πινάκων 1 2 5 6 A= é ê ù, B é ù 3 4 ú = ê 7 8 ú ë û ë û é1 2ù é5 6ù é1 5+ 2 7 1 6+ 2 8ù é19 22ù A B= ê 3 4 ú ê 7 8 ú= ê = 3 5+ 4 7 3 6+ 4 8 ú ê 43 50 ú ë û ë û ë û ë û Η ίδια πράξη στο Scilab Δηλαδή στο Scilab εάν έχω τους πίνακες Α και Β και γράψω Α*Β τότε θα πραγματοποιήσει πολλαπλασιασμό Πινάκων.!!! ΠΡΟΣΟΧΗ Εάν θέλουμε να πολλαπλασιάσουμε τα στοιχεία των πινάκων 1 προς 1 τότε θα πρέπει να χρησιμοποιήσουμε την πράξη.*

Ο ανάστροφος ενός πίνακα (Transpose) Έστω ο πίνακας Α(nxm). Εάν σε αυτόν τον πίνακα κάνουμε τις γραμμές στήλες και τις στήλες γραμμές, τότε λέμε ότι έχουμε κατασκευάσει τον ανάστροφο του Α, ο οποίος συμβολίζεται με Α Τ και είναι πίνακας (mxn). Στο Scilab αυτό επιτυγχάνεται ως εξής: é1 2ù T é1 3 5ù A= ê 3 4 ú ê ú Α = ê 2 4 6 ú ê5 6ú ë û ë û ανάστροφος

Ο αντίστροφος ενός πίνακα (Inverse) Παράδειγμα: Έστω ότι έχουμε το σύστημα των εξισώσεων x - 2x = 1 1 2-3x + 4x = 3 1 2 Το σύστημα αυτό μπορεί να γραφεί με την χρήση πινάκων ως εξής = é 1-2ù = éx ù = é1ù = ë û 1 A X B όπου A ê, X B -3 4 ú ê x ú ê 2 3 ú ë û ë û μπορεί να λυθεί με την χρήση του αντίστροφου πίνακα Α -1 που έχει την ιδιότητα ( ) 1 1 1 1 1 1 AX = BÛ A - AX = A - BÛ A - A X = A - BÛ 1X = A - BÛ X = A - B Στο Scilab, ο αντίστροφος ενός πίνακα υπολογίζεται με την συνάρτηση inv(a) -1 A A=

Ο αντίστροφος ενός πίνακα (Inverse) Παράδειγμα: Για το σύστημα των εξισώσεων x - 2x = 1 1 2-3x + 4x = 3 1 2 é 1-2ù éx ù é1ù =, = = ë û 1 A ê X B -3 4 ú ê x ú ê 2 3 ú ë û ë û Η λύση του συστήματος είναι 1 X = A - B και στο Scilab υλοποιείται ως εξής Δηλαδή x 1 = -5 και x 2 = -3

Βρόγχοι (loops) Ο συνήθης τρόπος να εκτελούμε μία επαναλαμβανόμενη διαδικασία είναι η χρησιμοποίηση βρόγχων. Βρόγχος for end Έστω πάλι ότι θέλουμε να φτιάξουμε έναν πίνακα που να ονομάζεται x και να έχει ως στοιχεία τους περιττούς αριθμούς από το 1 έως το 10, τότε μπορούμε να γράψουμε: Εάν στην κονσόλα γράψουμε απλά x θα πάρουμε: Βλέπουμε ότι ο πίνακας αυτή την φορά είναι πίνακας στήλης, κάτι που επιβεβαιώνεται και με την εντολή size. Εάν θέλουμε οπωσδήποτε ο πίνακάς μας να είναι πίνακας γραμμή τότε μπορούμε να χρησιμοποιήσουμε την εντολή για ανάστροφο πίνακα

Παράδειγμα με for end Να υπολογιστούν οι πρώτοι 20 όροι της σειράς που ορίζεται από την αναδρομική σχέση Πρόγραμμα: Εμφάνιση αποτελεσμάτων Να υπολογιστεί το παραγοντικό (n!) ενός αριθμού Σε αυτή την περίπτωση Θα μπορούσαμε την εσωτερική συνάρτηση factorial() του Scilab

Παράδειγμα με for end Να υπολογιστεί το άθροισμα 10 å i= 1 1 n Διαφορετικός τρόπος Τελεστής./ Διαίρεση στοιχείο Προς στοιχείο Άθροισμα στοιχείων πίνακα Να υπολογιστεί η μέση τιμή (μ), η τυπική απόκλιση (σ) και η τυπική απόκλιση της μέσης τιμής της ακόλουθης σειράς μετρήσεων: 5,2 5,4 4,9 5,3 5,5 4,8 4,7 1 N xi i= 1 m= å N s = N å i= 1 ( -m) 2 x i N-1 s s m = N

1 N xi N i= 1 m= å s = N å i= 1 ( -m) 2 x i N-1 s s m = N Κλασική δομή προγράμματος όπου χρησιμοποιούντα βρόγχοι για τον υπολογισμό των αθροισμάτων Υπολογισμός με την βοήθεια των εσωτερικών συναρτήσεων mean() και stdev()

Διαμέριση διαστήματος σε διακριτά σημεία Εισαγωγή στο Scilab Έστω ότι θέλουμε να δώσουμε στην μεταβλητή x, N ισαπέχοντες τιμές στο διάστημα [α,β]. Ποιες θα είναι αυτές οι τιμές και πόσο θα απέχουν μεταξύ τους; Ισχύουν οι σχέσεις: Καθορισμένο Ν (παραδοσιακός τρόπος) Καθορισμένο dx (παραδοσιακός τρόπος) Καθορισμένο Ν (εσωτερική συνάρτηση Scilab)

Βρόγχος while end Με την δομή αυτή, κατασκευάζουμε βρόγχους οι οποίοι εκτελούνται επαναλαμβανόμενα, για όσο διάστημα ικανοποιείται η «συνθήκη» Παραδείγμα Προσπαθήστε να καταλάβετε τι κάνει το παραπάνω παράδειγμα Οι τελεστές που μας χρειάζονται για την σωστή έκφραση της οποιασδήποτε συνθήκης είναι: (τελεστές σύγκρισης) ίσο == αληθές %Τ διάφορο <> Ψευδές %F μικρότερο < Και & μεγαλύτερο > ή Μικρότερο ή ίσο <= Όχι ~ Μεγαλύτερο ή ίσο =>

Παράδειγμα Ποια από τις δύο εκδοχές του προγράμματος θα μας εμφανίσει κάτι στην οθόνη και τι;? Τι θα μας δώσουν οι δύο παρακάτω εκδοχές του προγράμματος;? Η έννοια του ατέρμονος βρόγχου Έξοδος από βρόγχο

Συνθήκη if then. Else end Με την δομή αυτή, κατασκευάζουμε συνθήκες και ελέγχουμε την ροή ενός προγράμματος Εισαγωγή στο Scilab Παράδειγμα Εσωτερική συνάρτηση του Scilab για την δημιουργία τυχαίων αριθμών Διαστάσεις του τυχαίου πίνακα Είδος κατανομής Οι τυχαίοι αριθμοί να είναι από εως Η συνάρτηση disp() εμφανίζει στη οθόνη Το σύνολο των χατακτήρων που βρίσκονται Εντός των ()

Συνθήκη if then. elseif else end Εισαγωγή στο Scilab Με τρόπο αυτό, συνδυάζουμε περισσότερες από μία συνθήκες στην ίδια δομή και ελέγχουμε την ροή ενός προγράμματος

Παράδειγμα Χρήση της συνάρτησης grand() για την εισαγωγή θορύβου σε μία συνάρτηση Ορισμός συνάρτησης Διαμέριση του διαστήματος [0,2π] σε 100 ισαπέχοντα σημεία Δημιουργία γραφικής παράστασης Δημιουργία του πίνακα y που περιέχει τις τιμές της συνάρτησης για όλα τα x Πρόσθεση του θορύβου στις τιμές της συνάρτησης Δημιουργία τυχαίου θορύβου Δημιουργία της νέας γραφικής παράστασης

Εγγραφή/ανάγνωση δεδομένων σε/από αρχείο Στο παράδειγμα της προηγούμενη διαφάνειας θα προσθέσουμε μερικές γραμμές ώστε να αποθηκευτούν τα δεδομένα μας σε ένα αρχείο και στην συνέχεια να τα διαβάσουμε από εκεί Ορισμός του directory στο οποίο Θα γραφτεί το αρχείο Εγγραφή στο αρχείο Αλλαγή directory Άνοιγμα του αρχείου Μορφοποίηση των δεδομένων Ώστε να γραφτούν σε 2 στήλες Κλείσιμο αρχείου Εισαγωγή στο Scilab Ανάγνωση των τιμών στον πίνακα Q (ΠΡΟΣΟΧΗ στο -1) Άνοιγμα του αρχείου

Αριθμητική παραγώγιση Η παράγωγος της συνάρτησης στο σημείο x i μπορεί να προσεγγιστεί αριθμητικά με την εξής σχέση ( ) ( ) df f x i 1 f x f f = dx x -x x -x i + 1) - i i+ 1- i x= x i+ 1 i i+ 1 i i x - i+ x = h Εάν τότε μπορούμε να γράψουμε την παραπάνω σχέση ως: x= x i 1 i ( i h) ( ) 1 df f x i + h -f x f -f = dx h h i i i+ i Forward differences Ένας διαφορετικός, και εν γένει προτιμητέος τρόπος, είναι οι λεγόμενες κεντρικές διαφορές (central differences): ( i 1) ) ( ) df f x i -f x f -f = dx x -x x -x i+ 1 i- 1 i+ 1 i-1 x= x i+ 1 i- 1 i+ 1 i-1 i Εάν οι αποστάσεις μεταξύ των x i είναι ίσες με h, τότε ( i + h) - ( - ) + 1- -1 df f x i h f x h f f = dx 2h 2h x= x i i i i i Central differences

Παράδειγμα αλγόριθμου αριθμητικής παραγώγισης Ορισμός της συνάρτησης που θέλουμε να παραγωγίσουμε Αριθμός σημείων για την διαμέριση διαμέριση Απόσταση μεταξύ2 διαδοχικών σημείων στον άξονα x Κατασκευή του πίνακα y που περιέχει τις τιμές f(x i ) Βρόγχος για τον υπολογισμό της παραγώγου σε όλα τα σημεία πλην του τελευταίου Forward differentiation Γραφική παράσταση της παραγώγου

Εάν θέλουμε να χρησιμοποιήσουμε κεντρικές διαφορές, τότε στον προηγούμενο κώδικα μπορούμε κάνουμε την ακόλουθη αντικατάσταση Προσπαθήστε να εξηγήσετε τις αλλαγές Που περιλαμβάνει το νέο κομμάτι κώδικα

-- Κάνοντας χρήση του HELP του SciLab να προσπαθήσετε να κατανοήσετε την λειτουργία των εσωτερικών συναρτήσεων derivative() και diff() -- Να χρησιμοποιήσετε τις συναρτήσεις αυτές για να πραγματοποιήσετε την παραγώγιση του προηγούμενου παραδείγματος. Δεύτερη παράγωγος Κεντρικές διαφορές ( ) ( ) ( ) f x i + h - 2f x + f x -h f - 2f + f 2 d f i i i i+ 1 i i-1 = 2 2 2 dx h h x= x i Να τροποποιηθεί ο προηγούμενος κώδικας ώστε να υπολογίζει την δεύτερη παράγωγο

Αριθμητική ολοκλήρωση Εισαγωγή στο Scilab b ò a ( ) εμβαδό f x dx= Το εμβαδόν προσεγγίζεται με ένα άθροισμα Παραλληλογράμμων Τραπεζίων b ò a b ò a ( ) f x dx= f h+ f h+ f h ( ) 1 2 3 f x dx= f h b 3 å i= 1 i ( ) f + f f + f f + f 2 2 2 b 1 2 2 3 3 4 f x dx= h+ h+ h ò a b ò a 4-1 h h f ( x) dx= [ f1+ 2f2+ 2f3+ f4] = [ f1+ f4] + åfi h 2 2 Στην γενικής περίπτωση που το διάστημα [a,b] διαμερίζεται σε Ν ισαπέχοντα σημεία N-1 ò f ( x) dx= åfi h òf ( x) dx [ f1 fn] a i= 1 b a N-1 h = + + åfi h 2 i= 2 i= 2

Παρατήρηση : Οι δύο προηγούμενες μέθοδοι αριθμητικής ολοκλήρωσης είναι οι απλούστερες δυνατές. Στην πράξη, πολλές φορές χρησιμοποιούνται πολύ πιο αναπτυγμένες τεχνικές και μέθοδοι για τον ακριβή αριθμητικό υπολογισμό ολοκληρωμάτων. Μέθοδος παραλληλογράμμου Μέθοδος τραπεζίου Ακριβής τιμή = 333,333 Μεταβάλλοντας τον αριθμό της διαμέρισης n, πειραματιστείτε με τους 2 κώδικες ώστε να διαπιστώσετε ποια μέθοδος δίνει ακριβέστερα αποτελέσματα και ποια είναι η κατάλληλη τιμή του n ώστε το αποτέλεσμα να έχει ικανοποιητική ακρίβεια.

Αριθμητική επίλυση της Συνήθους Διαφορικής Εξίσωσης (ΣΔΕ) πρώτης τάξης dy f ( yt, ) dt = Με την αρχική συνθήκη ( ) y t = y 0 0 Μέθοδος Euler dy dt = (, ) f yt diakritopoί hsh ( + )- ( ) y t h y t h (, ) y( t h) y( t) h f ( yt, ) = f yt Û + = + Βλέπουμε ότι εάν γνωρίζουμε την τιμή της συνάρτησης y κατά την χρονική στιγμή t, Τότε μπορούμε την τιμή της κατά την χρονική στιγμή t+h. ή Με διαφορετικό συμβολισμό dy f ( yt, ) dt = yi+ 1-yi = f ( yi, ti) Û yi+ 1= yi+ h f ( yi, ti) diakritopoί hsh h

Μέθοδος Euler - εφαρμογή Διακριτοποιούμε την ανεξάρτητη μεταβλητή t Ανεξάρτητη μεταβλητή t 0 t 0 Η άγνωστη συνάρτηση y 0 =y(t 0 ) t 1 =t 0 + h t 2 =t 1 + h t 1 =t 0 + h t 2 =t 0 + 2h y 1 =y 0 + hf(y 0,t 0 ) y 2 =y 1 + hf(y 1,t 1 ) t 3 =t 2 + h t 3 =t 0 + 3h t 4 =t 3 + h t 4 =t 0 + 4h...... Υπολογισμός των τιμών Της συνάρτησης y i στα διακριτά σημεία t i y 3 =y 2 + hf(y 2,t 2 ) y 4 =y 3 + hf(y 3,t 3 )... t n =t n-1 + h t n ==t 0 + nh y n =y n-1 + hf(y n-1,t n-1 )

Μέθοδος Euler - εφαρμογή στο Scilab Εισαγωγή στο Scilab Έστω ότι θέλουμε να υπολογίσουμε την χρονική μεταβολή ενός πληθυσμού χρησιμοποιώντας την ΔΕ του λογιστικού μοντέλου. dn = r ( M - N ) N dt Όπου r μία αριθμητική σταθερά και Μ η φέρουσα ικανότητα της περιοχής Έστω ότι για το πρόβλημα μας ισχύει r=0.01, Μ=100 και για t=0, Ν(0)=10 Ορισμός συνάρτησης Και παραμέτρων Γραφική παράσταση της συνάρτησης Ν(t) Όπως προέκυψε από την αριθμητική επίλυση της ΔΕ Διακριτοποίηση Του χρόνου Αρχική συνθήκη Μέθοδος Euler

Μέθοδος Euler - εφαρμογή στο Scilab Εισαγωγή στο Scilab Έστω ότι θέλουμε να μελετήσουμε την συμπεριφορά της λύσης συναρτήσει της παραμέτρου r, δηλαδή να μεταβάλουμε το r και να βλέπουμε πως μεταβάλλεται η N(t). Σε αυτή την περίπτωση μπορούμε να τροποποιήσουμε λίγο τον προηγούμενο κώδικα ώστε να πάρουμε όλες τις N(t;r) στην ίδια γραφική παράσταση. Προσπαθήστε να κατανοήσετε την λογική των αλλαγών που κάναμε

Επίλυση ΣΔΕ πρώτης τάξης με χρήση της ρουτίνας ode() του Scilab Η επίλυση των προηγούμενων προβλημάτων μπορεί να πραγματοποιηθεί εύκολα, κάνοντας χρήση της εσωτερικής ρουτίνας ode() του Scilab. Χρησιμοποιώντας το help του Scilab και το παρακάτω παράδειγμα, προσπαθήστε να κατανοήσετε την χρήση της ode().

Ανάγνωση και επεξεργασία πειραματικών δεδομένων (αρχεία *.csv) --Πολλές φορές υπάρχει ανάγκη να επεξεργαστούμε πειραματικά δεδομένα, τα οποία περιλαμβάνουν αρκετές χιλιάδες τιμών. Ένας από τους συνήθης τύπους αρχείων που χρησιμοποιούνται για την αποθήκευση τέτοιων δεδομένων είναι τα αρχεία csv (comma separated values) -- Εάν ανοίξουμε με το σημειωματάριο (notepad) ένα τέτοιο αρχείο θα δούμε ότι η δομή του μοιάζει με αυτή που φαίνεται στην εικόνα Κοιτώντας προσεκτικά την πρώτη γραμμή του αρχείου, παρατηρούμε ότι περιέχει πραγματικούς αριθμούς οι οποίοι διαχωρίζονται μεταξύ τους με ;. Το ίδιο ισχύει και για τις υπόλοιπες γραμμές. Με άλλα λόγια το αρχείο περιέχει 5 στήλες δεδομένων. Το σύμβολο ; διαχωρίζει του αριθμούς μεταξύ τους, για αυτό και ονομάζεται separator. Τον ρόλο του separator μπορούν να τον παίξουν και άλλα σύμβολα π.χ. TAB,, : κ.λ.π. Τα αρχεία *.csv διαβάζονται από όλα τα προγράμματα υπολογιστικών φύλλων (π.χ. Excel, Calc(Libre Office), Gnumeric, Origin Grapher κ.λ.π.)

Ανάγνωση και επεξεργασία πειραματικών δεδομένων (αρχεία *.csv) Έστω ότι θέλουμε να επεξεργαστούμε ένα αρχείο της μορφής: --Το αρχείο περιέχει την πυκνότητα ισχύος για έναν συγκεκριμένο μήνα του χρόνου, η οποία καταγράφεται με την βοήθεια ενός πυρανόμετρου και ενός data logger το οποίο παίρνει μία μέτρηση ανά λεπτό. --Δηλαδή ένα πλήρες αρχείο για έναν μήνα περιέχει 60min x 24hours x 30days=43200 ζεύγη τιμών.... --Η πρώτη στήλη περιέχει έναν αριθμό που χαρακτηρίζει την μέρα και ώρα της μέτρησης π.χ. όλες οι μετρήσεις της πρώτης μέρας έχουν αριθμό 1.* ενώ οι μετρήσεις της 7 ης μέρας έχουν έναν αριθμό 7.* Οι αριθμοί αυτοί (π.χ. οι 1.*) προκύπτουν εύκολα διαμερίζοντας το διάστημα [1,2] σε 1441 σημεία linspace(1,2,1441). Σε αυτό το σημείο δεν μας ενδιαφέρουν περισσότερες λεπτομέρειες για τα στοιχεία της πρώτης στήλης. -- Η δεύτερη στήλη περιέχει την μετρούμενη πυκνότητα ισχύος για την συγκεκριμένη χρονική στιγμή. (Στην πράξη το data logger καταγράφει μία διαφορά δυναμικού η οποία στην συνέχεια μεταφράζεται σε πυκνότητα ισχύος)

Ανάγνωση και επεξεργασία πειραματικών δεδομένων (αρχεία *.csv) Άνοιγμα πολλαπλών αρχείων Τεχνική λεπτομέρεια σχετικά με την μνήμη Που επιτρέπεται να χρησιμοποιήσει το πρόγραμμα Τεχνική λεπτομέρεια σχετικά Με το line termination Εντολή με την οποία ανοίγει ένα παράθυρο για την επιλογή των αρχείων που θέλουμε να διαβαστούν(βλ. Scilab help). Τα ονόματα των αρχείων αποθηκεύονται στον πίνακα filelist. ΠΕΡΙΟΧΗ ΕΝΤΟΛΩΝ Εδώ θα μπουν οι εντολές Και τα κομμάτια του κώδικα για την επεξεργασία των δεδομένων που διαβάστηκαν παραπάνω Με το for ανοίγουμε ένα ένα τα αρχεία τα οποία επιλέχτηκαν από την εντολή uigetfile(). Ο πίνακας Β τις 2 στήλες του αρχείου της προηγούμενης διαφάνειας. Ο πίνακας x είναι πίνακας στήλης και περιέχει την πρώτη στήλη των δεδομένων Ο πίνακας y είναι πίνακας στήλης και περιέχει την δεύτερη στήλη των δεδομένων n1 είναι το πλήθος των δεδομένων που διαβάστηκαν.

Ανάγνωση και επεξεργασία πειραματικών δεδομένων (αρχεία *.csv) Σπάσιμο του μεγάλου μηνιαίου αρχείου σε ημερήσια ΠΕΡΙΟΧΗ ΕΝΤΟΛΩΝ Εδώ θα μπουν οι εντολές Και τα κομμάτια του κώδικα για την επεξεργασία των δεδομένων που διαβάστηκαν παραπάνω Εάν εισάγουμε το παρακάτω κομμάτι κώδικα στην ΠΕΡΙΟΧΗ ΕΝΤΟΛΩΝ τότε μπορούμε να σπάσουμε το μεγάλο μηνιαίο αρχείο σε μικρότερα ημερήσια, τα οποία θα ονομάζονται day_1.csv day_2.csv κ.λ.π Σημαντικό Προσπαθήστε να κατανοήσετε την χρήση της εντολή find()

Το working directory πριν την εκτέλεση του προγράμματος Το working directory μετά την εκτέλεση του προγράμματος

Ανάγνωση και επεξεργασία πειραματικών δεδομένων (αρχεία *.csv) Γραφική Παράσταση των ημερήσιων δεδομένων Το κομμάτι κώδικα που εισάγαμε στην προηγούμενη διαφάνεια δεν το χρειαζόμαστε πλέον και μπορούμε να το σβήσουμε ή να το κάνουμε comment Μετρητής (counter) Εάν εισάγουμε το παρακάτω κομμάτι κώδικα στην ΠΕΡΙΟΧΗ ΕΝΤΟΛΩΝ τότε μπορούμε να κάνουμε με το πάτημα ενός κουμπιού τις γραφικές παραστάσεις για όλα τα ημερήσια αρχεία. ΠΕΡΙΟΧΗ ΕΝΤΟΛΩΝ Εδώ θα μπουν οι εντολές Και τα κομμάτια του κώδικα για την επεξεργασία των δεδομένων που διαβάστηκαν παραπάνω

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

Όλες οι γραφικές παραστάσεις εμφανίζονται αυτόματα η μία μετά την άλλη

Ανάγνωση και επεξεργασία πειραματικών δεδομένων (αρχεία *.csv) Υπολογισμός της ημερήσιας απολαβής ενέργειας Εάν στο κομμάτι κώδικα που εισάγαμε στην ΠΕΡΙΟΧΗ ΕΝΤΟΛΩΝ στην προηγούμενη διαφάνεια τροποποιηθεί ελάχιστα, τότε μπορούμε να υπολογίσουμε εύκολα και την ημερήσια απολαβή ενέργειας. Για να το πετύχουμε αυτό θα πρέπει ο οριζόντιος άξονας να μετράει τον χρόνο σε sec και να υπολογίσουμε αριθμητικά το εμβαδόν της περιοχής που βρίσκεται κάτω από την καμπύλη τηε πυκνότητας ισχύος. Υπολογισμός των χρονικών στιγμών κατά τις οποίες πραγματοποιείται μέτρηση σε sec Αριθμητικός υπολογισμός του εμβαδού, με την μέθοδο του τραπεζίου Εάν θέλουμε να κάνουμε plot την μεταβολή της ημερήσιας απολαβής ενέργειας, τότε μπορούμε μετά το end του βασικού βρόγχου να γράψουμε :