Προγραμματισμός σε Matlab για προβλήματα βελτιστοποίησης



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

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

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

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

Εισαγωγή στην υδροπληροφορική και βελτιστοποίηση συστημάτων υδατικών πόρων

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

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

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

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

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

ΗΜΥ 100 ΕΙΣΑΓΩΓΉ ΣΤΗΝ ΤΕΧΝΟΛΟΓΊΑ

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

Εισαγωγή στην υδροπληροφορική και βελτιστοποίηση συστημάτων υδατικών πόρων

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

Πίνακες >>A = [ 1,6; 7, 11]; Ή τον πίνακα >> B = [2,0,1; 1,7,4; 3,0,1]; Πράξεις πινάκων

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

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

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

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

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

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

Εισαγωγή στη Matlab Βασικές Συναρτήσεις

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

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

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

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

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

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

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

Επιστηµονικός Υπολογισµός Ι - Πρώτη εργαστηριακή άσκηση

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

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

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL

Προβλήματα Υφαλμύρισης Καρστικών Υδροφορέων

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

Υφαλμύρινση Παράκτιων Υδροφορέων - προσδιορισμός και αντιμετώπιση του φαινομένου με συνδυασμό μοντέλων προσομοίωσης και μεθόδων βελτιστοποίησης

Ανάλυση, Στατιστική Επεξεργασία και Παρουσίαση Δεδομένων με χρήση Ανοικτών Λογισμικών Δρ. Φίλιππος Σοφός

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

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

1 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

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

Συνοπτικός οδηγός MATLAB & OCTAVE. (έως και συναρτήσεις) Ιωάννης Καλατζής 2018d

Εισαγωγή στον Προγραμματισμό

Προγραμματισμός Ι (ΗΥ120)

Λογισμικό για Μαθηματικά

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

Σκοπός. Προγραμματίζοντας τον Arduino ΙΙ Εντολή Εκχώρησης & Εντολές. Συλλογή & Επεξεργασία Δεδομένων. Πρόγραμμα. Εντολές Επεξεργασίας Δεδομένων

ημιουργία και διαχείριση πινάκων

4. Εισαγωγή στο Matlab

Στατιστικές συναρτήσεις Γραφική και πινακοποιημένη αναπαράσταση δεδομένων (ιστόγραμμα) Διαχειριστής Σεναρίων Κινητός Μέσος σε Χρονοσειρές o o o

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

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

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

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

3 ο Εργαστήριο Μεταβλητές, Τελεστές

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

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9

Ανάπτυξη και Σχεδίαση Λογισμικού

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

Προγραμματισμός I (Θ)

Πρόβλημα 29 / σελίδα 28

ΤΕΧΝΙΚΗ ΥΔΡΟΛΟΓΙΑ Πιθανοτική προσέγγιση των υδρολογικών μεταβλητών

Ενδεικτικές Ερωτήσεις Θεωρίας

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

Κασταλία Σύστηµα στοχαστικής προσοµοίωσης υδρολογικών µεταβλητών

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Εισαγωγή στον Προγραμματισμό

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

Εισαγωγή στο Matlab (μέρος β) Κολοβού Αθανασία, ΕΔΙΠ,

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με:

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

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

Τίτλος Πακέτου Certified Computer Expert-ACTA

Προτεινόμενες εργασίες Προγραμματισμού Διαδικτύου

Εισαγωγή στο GNU Octave/MATLAB

Προγραμματισμός Ι (HY120)

Το παράθυρο έναρξης του Μatlab

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

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


ΥΔΡΟΛΟΓΙΑ. Ενότητα 3:Στατιστική και πιθανοτική ανάλυση υδρομετεωρολογικών μεταβλητών- Ασκήσεις. Καθ. Αθανάσιος Λουκάς

Διαχείριση Υδατικών Πόρων Εισαγωγή στη βελτιστοποίηση συστημάτων υδατικών πόρων

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

Σύντομος οδηγός αναφοράς Για Windows Έκδοση 4.0

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Μεταβλητές- Τύποι- Τελεστές

Οι Εξελικτικοί Αλγόριθμοι (ΕΑ) είναι καθολικοί στοχαστικοί αλγόριθμοι βελτιστοποίησης, εμπνευσμένοι από τις βασικές αρχές της φυσικής εξέλιξης.

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

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

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

7.1 Αλφάβητο. 7.2 Τύποι δεδομένων. 7.3 Σταθερές. 7.4 Μεταβλητές. 7.5 Αριθμητικοί τελεστές. 7.6 Συναρτήσεις. 7.7 Αριθμητικές εκφράσεις. 7.

4.3. Γραµµικοί ταξινοµητές

Transcript:

Σημειώσεις στα πλαίσια του μαθήματος: Βελτιστοποίηση συστημάτων υδατικών πόρων Υδροπληροφορική Προγραμματισμός σε Matlab για προβλήματα βελτιστοποίησης Ευάγγελος Ρόζος και Χρήστος Μακρόπουλος Τομέας Υδατικών Πόρων και Περιβάλλοντος Εθνικό Μετσόβιο Πολυτεχνείο, Φεβρουάριος 2011

Συμβολικά: Mathematica Mathcad Μαθηματικά εργαλεία Αριθμητικά: Matlab Scilab Octave R Περιβάλλοντα εκτέλεσης αριθμητικών υπολογισμών και γλώσσες προγραμματισμού τετάρτης γενιάς.

Εισαγωγική οθόνη Matlab Αρχεία καταλόγου Περιοχή εντολών Μεταβλητές στη μνήμη Ιστορικό εντολών

Εισαγωγή στοιχείων μητρώων >> [1,2;4,6] >> A=[1,2;3,4] >> B=[3;-3] >> C= [A,B;B',0] (επέκταση) Παραγωγή συνήθων μητρώων >> eye(3) >> zeros(3,2) >> ones(2,3) >> diag([1 2]) >> diag(1:3) >> rand(3,4) Αναφορά σε στοιχεία μητρώου >> C(2,3) >> C(2,3)=2.5 >> D=randn(4) >> D(:,3:end) >> D(:,3:end)=-1 >> D(:,end)=[] Μητρώα, μητρώα, μητρώα... Άσκηση Να φτιαχτεί διαγώνιο μητρώο 9x9 με τη διαγώνιο να παίρνει τιμές από -4 έως 4. Να αντικατασταθεί το άνω δεξιά 3x3 υπομητρώο με τυχαίους αριθμούς.

Μητρώα, μητρώα, μητρώα... Πρόσθεση, αφαίρεση πολλαπλασιασμός πινάκων >> A=eye(4) >> B=rand(3,4) >> B * A >> A * B (μα...) >> A + 2 (παραβιάζει μαθηματική σύμβαση, πως γράφεται για να είναι ΟΚ;) >> A + [1 2] (μα...) >> C=rand(3) >> C * C >> C^2 >> C.^2 >> C^3, C^-3, C^1.1 (παραβιάζει μαθηματική σύμβαση βλ. doc arithmeticoperators) Διαίρεση, αντίστροφος, γραμμικές εξισώσεις, tic-toc >> B=rand(3) >> A=eye(3); A(3,1)=0.3 >> tic; Α^-1; toc >> tic; pinv(a); toc (βλ. doc pinv) >> tic; B*A^-1; toc >> tic; B/A; toc >> A^-1 * B >> A\B (επιλύει την εξίσωση A X= B) >> A/A >> A./A

Τελεστές μητρώων >> min(a) >> mean(a) >> mean(mean(a)) >> mean(a(:)) >> reshape(a,2,3) (μα...) >> reshape(a,9,1) >> [L,I]=sort(B(:)) >> A=[1 4; 2 5; 3 6] >> flipdim(a,1) >> flipdim(a,2) >> A=rand(2) >> repmat(a,2,1) Μητρώα, μητρώα, μητρώα... Αναζήτηση στοιχείων υπό συνθήκη >> A=randn(1,7) >> A<1 & A>-1 >> A(A<1 & A>-1) >> find(a<1 & A>-1) Άσκηση Να φτιαχτεί διάνυσμα με 1000 στοιχεία που ακολουθούν κανονική κατανομή. Να φτιαχτεί η εμπειρική συνάρτηση κατανομής δηλαδή η θέση σχεδίασης Weibull για τα 1000 σημεία (σελ. 116, http://itia.ntua.gr/getfile/122/6/documents/1997stathydrolchap5.pdf).

Γραφήματα Απλά γραφήματα >> x=-pi:0.1:pi >> plot(x,sin(x),x,cos(x),'-.') >> plot(x,1./x,'k') >> ylabel('x^{-1}') Άσκηση Να σχεδιαστεί η πιθανότητα μη υπέρβασης της εμπειρική συνάρτηση κατανομής της προηγούμενης άσκησης. Ιστογράμματα >> hist(randn(1000,1),50) Γραφήματα X-Y >> scatter(cos(x),sin(x)) (πως γίνεται ευθεία χωρίς να αλλάξουν οι συναρτήσεις;) Συνοπτική παράσταση δείγματος (box plot) >> boxplot(randn(1000,1)) Γρήγορα γραφήματα >> clear (προσοχή! σβήνει τα πάντα) >> ezplot('sin(x)*cos(x^2)')

Γραφήματα 3D γραφήματα >> [X Y]=meshgrid(-3:3) Επιστρέφει δύο μητρώα. Το πρώτο περιέχει τις τετμημένες και το δεύτερο τις τεταγμένες των κυττάρων ενός καννάβου. >> [X Y]=meshgrid(-3:0.1:3); >> Z=X.*exp(-X.^2-Y.^2); >> mesh(x,y,z) >> surf(x,y,z) Άσκηση Να χρησιμοποιηθούν τα εργαλεία του παραθύρου γραφημάτων για να γίνει μεγέθυνση, μετακίνηση, περιστροφή του γραφήματος καθώς και αναγνώριση τιμών σε διάφορα σημεία του. Επιδείξεις (demos) >> hndlaxis (βλ. help gca) >> hndlgraf >> graf3d

Προγραμματισμός Συναρτήσεις - δέσμη εντολών (scripts) Οι συναρτήσεις χρησιμοποιούν αποκλειστική περιοχή μνήμης (workspace) για να αποθηκεύουν τις μεταβλητές τους. Ανταλλάσσουν δεδομένα με άλλες συναρτήσεις ή τον χρήστη μέσω των ορισμάτων τους και των τιμών που επιστρέφουν. Οι δέσμες εντολών χρησιμοποιούν την ίδια περιοχή μνήμης με τη γραμμή εντολών. Χρησιμοποιούνται για την αυτοματοποίηση λειτουργιών μιας συγκεκριμένης εφαρμογής. Έλεγχος ροής if expression... elseif expression2... else... end Παράδειγμα function retval=thiem(q, t, rw, roo) if (rw==0) rw=0.1; elseif (rw>roo) rw=roo; end; retval=(q/(2*pi*t)*log(roo/rw)); end

Προγραμματισμός Σχεσιακοί τελεστές >> A=[1 2] >> B=[1 0] >> A < B >> A > B >> A <= B >> A >= B >> A == B (προσοχή! να μην συγχέεται με το = ) >> A ~= B Λογικοί τελεστές A & B σύζευξη A B διάζευξη xor(a,b) αποκλειστική διάζευξη ~A άρνηση >> expr1=true; expr2=true; expr3=true; expr4=false; >> (expr1 & expr2) (expr3 & expr4) >> expr1 & (expr2 expr3) & expr4 >> Α & Β >> Α && Β (μα...) >> Α Β >> Α Β (μα...) >> ~B

Βρόχοι for iterator = vector... end Προγραμματισμός Παράδειγμα... for i = 1:n for j = 1:n SFLD_=ASS.* V(i:2*q+i, j:2*q+j); SFLD(i,j)=sum(sum(SFLD_)); end end... Τυπική δομή συνάρτησης function [out1, out2,...] = myfun(in1, in2,...) out1=...in1...in2...; out2=...in1...in2...;

Προγραμματισμός Παράδειγμα δημιουργίας συνάρτησης >> edit stat.m Εισάγετε function [mean,stdev] = stat(x) n = length(x); mean = sum(x)/n; stdev = sqrt(sum((x-mean).^2/n)); Σώστε και κλείστε τον επεξεργαστή >> A=rand(2) >> stat(a) (μα... έλεγχος ορισμάτων) >> A=rand(1,10); >> stat(α) >> [a b]=stat(a) Δεύτερο παράδειγμα >> edit stat2.m Εισάγετε function [mean,stdev] = stat(x) n = length(x); mean = avg(x)/n; stdev = sqrt(sum((x-mean).^2/n)); function mean = avg(x,n) mean = sum(x)/n; Σώστε, κλείστε τον επεξεργαστή και δοκιμάστε (μα...)

Πειράματα με ταχύτητα >> edit slow.m Εισάγετε function [ret] = slow(x) for ii=1:length(x) s(ii)=sqrt(x(ii)); end; ret=sum(s); Σώστε και κλείστε τον επεξεργαστή >> x=-10000:0.5:10000; >> tic; slow(x); toc; Προγραμματισμός >> edit slow.m Εισάγετε στη δεύτερη γραμμή του κειμένου το ακόλουθο s=zeros(1,length(x)); Σώστε και κλείστε τον επεξεργαστή >> tic; slow(x); toc; Τέλος δώστε >> tic; s=sum(sqrt(x));toc Συμβουλές για ταχύτητα 1. Εκχώρηση μνήμης άπαξ 2. Χρήση διανυσματικών πράξεων (αποφυγή for-loop) 3. Χρήση κατάλληλου τελεστή (tic-toc)

Δομές δεδομένων Ορισμός Οι δομές (structures) είναι ένας τύπος δεδομένων που επιτρέπει την αποθήκευση οργανωμένης πληροφορίας που συντίθεται από διαφορετικούς απλούς τύπους δεδομένων (αριθμοί, αλφαριθμητικά, μητρώα,...). Παραδείγματα δομών >> strucdem_helper(1); Μητρώο δομών >> patient(2).name = 'Ann Lane'; >> patient(2).billing = 28.50; >> patient(2).test = [68 70 68; 118 118 119; 172 170 169]; Δοκιμάστε τώρα >> strucdem_helper(2); Όλα σε μία γραμμή >> simplestrct=struct('firstname', 'Nikos', 'LastName', 'Foufotos', 'Phone', 2107722841, 'Vector', [1 2 3]) Το τηλέφωνο σας παρακαλώ >> fprintf('phone is %d\n', simplestrct.phone)

Αποθήκευση ανάκτηση δεδομένων Εντολές υψηλού επιπέδου >> save('project.mat') >> clear >> load Project.mat >> who >> save ('A.txt', 'A', '-ascii') >> clear Α >> load A.txt >> A Εντολές χαμηλού επιπέδου... for i=1:nruns name=sprintf('rain%d.txt',i); rainfile=fopen(name, 'w'); for j=1:simlen text= sprintf('%3.1f\t%3.2f\t%3.2f', Anw((i-1)*nruns+j),... Mesos((i-1)*nruns+j),... Katw((i-1)*nruns+j) ); fprintf(rainfile, '%s\n', text); end fclose(rainfile); end...

Μέθοδοι βελτιστοποίησης Βελτιστοποίηση πολυμεταβλητής συνάρτησης με περιορισμούς Optimization toolbox x = fmincon(fun,x0,a,b,aeq,beq,lb,ub) Η fmincon βασίζεται στην εύρεση Εσσιανού μητρώου της Lagrangian συνάρτησης. Global optimization toolbox x = ga(problem) όπου problem=struct('fitnessfcn', <στοχική συνάρτηση>, 'nvars', <αριθμός παραμέτρων>, 'Aineq', <Α>, 'Bineq', <b>, 'Aeq', <Aeq>, 'Beq', <Beq>, 'lb', <lb>, 'ub', <ub>, nonlcon, <συνάρτηση μη γραμμικών περιορισμών>, 'solver', 'ga', 'options', options_structure) Το options_structure δημιουργείται με την εντολή gaoptimset και περιέχει τις παραμέτρους του γενετικού αλγορίθμου (βλ. doc ga).

Δώστε αυτή την εντολή τώρα!cp /mnt/home/gkaravo/matlab/*.m.

Μέθοδος SCE Μέθοδοι βελτιστοποίησης βέλτιστη τιμή συνάρτησης συνάρτηση κάτω/άνω όριο παραμέτρων φύτρα [bestx, bestf] = sceua(funct,x0,bl,bu,maxn,5, 0.01,0.1,ngs,iseed,iniflg) διάνυσμα βέλτιστων παραμέτρων αρχικές τιμές παραμέτρων μέγιστος αριθμός εκτελέσεων συνάρτησης αριθμός συμπλόκων 1=αρχικές τιμές στον αρχικό πληθυσμό Παράδειγμα >> f=@(x)sin(x); >> sceua(f,1,-pi,pi, 200, 5, 0.01, 0.001, 3, -1,0) Άσκηση Βρείτε το ελάχιστο της besselj(sqrt(x^2+y^2)+1, 5) και επαληθεύστε το γραφικά.

Εργασία Γράψτε συνάρτηση που να υπολογίζει τη διόδευση πλημμυρικού κύματος από κλάδο υδρογραφικού δικτύου χρησιμοποιώντας τη μέθοδο Muskingum. Τα ορίσματα της συνάρτησης θα είναι το διάνυσμα με την παροχή στην είσοδο του κλάδου και οι δύο παράμετροι της μεθόδου. Επιλέξτε κάποιες τιμές για αυτές τις παραμέτρους (π.χ. x=0.24, K=4hr) και εφαρμόστε τη μέθοδο (με ιστορικές χρονοσειρές εισόδου που θα βρείτε από κάποια πραγματική εφαρμογή, π.χ. εφαρμογή στο τέλος του κεφαλαίου 6 του βιβλίου του Ξανθόπουλου (1990)) για να πάρετε την προσομοιωμένη παροχή στην έξοδο. Θεωρήστε αυτή την παροχή σαν μετρήσεις. Ακολούθως χρησιμοποιήστε εναλλακτικές μεθόδους βελτιστοποίησης (π.χ. SCE, GA, fmincon...) και βάσει των μετρήσεων εκτιμήστε τις δύο παραμέτρους της μεθόδου. Συγκρίνετε τα αποτελέσματα ως προς ταχύτητα και ακρίβεια (δηλαδή διαφορά εκτιμημένων τιμών από βελτιστοποίηση ως προς αυτές που είχατε θεωρήσει για να παράξετε τις μετρήσεις ).

Εργασία Να φτιαχτεί μια συνάρτηση που να προσομοιώνει έναν ορθογωνικό υδροφορέα στον οποίον επενεργούν συστοιχία γεωτρήσεων. Η συνάρτηση να έχει για ορίσματα το μητρώο με τις μεταφορικότητες των κυττάρων (m 2 /s), ένα μητρώο δομών που να περιέχει τη θέση της κάθε γεώτρησης και την παροχή της (π.χ. wellstr.i, wellstr.j, wellstr.q), τα dx και dy των κυττάρων, ένα μητρώο με τα υδραυλικά ύψη μόνιμης ροής χωρίς τις αντλήσεις. Η συνάρτηση επιστρέφει τα υδραυλικά ύψη που αντιστοιχούν στην αποκατάσταση μόνιμων συνθηκών ροής. Το δεξί άκρο του υδροφορέα γειτονεύει με θάλασσα. Για την αποφυγή υφαλμύρισης πρέπει το ελάχιστο υδραυλικό ύψος της πλέον δεξιά στήλης κυττάρων να είναι πάνω από 1 μέτρο. Να Βλέπε κεφάλαιο 6 του βιβλίου των Κουτσογιάννη & Ξανθόπουλου (1999) http://itia.ntua.gr/getfile/115/7/documents/1999enghydrochap6.pdf