Σχολή Εφαρμοσμένων Μαθηματικών και Φυσικών Επιστημών Εθνικό Μετσόβιο Πολυτεχνείο Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού Ενότητα 4 Σιέττος Κωνσταντίνος
Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειτα σε άδειες χρήσης Crea%ve Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναγράφεται ρητώς.
Επίλυση προβληµάτων από την Επιστήµη του Μηχανικού Η ιακριτή Λογιστική Εξίσωση Κωνσταντίνος Σιέττος
Η ιακριτή Λογιστική Εξίσωση. µια υπερβολικά απλή εξίσωση αλλά µε όχι (κάθε άλλο) τόσο απλή συµπεριφορά. H ιστορία της εξίσωσης στην πληθυσµιακή δυναµική υπό την διαφορική της µορφή ξεκινάει το 1838από τον Pierre F. Verhulst (1804-1849) 1849) για να περιγράψει την πληθυσµιακή ανάπτυξη ενός πληθυσµού υπό περιορισµούς πόρων (resources). Στην γενική της µορφή έχει ως εξής Ν είναι το µέγεθος του πληθυσµού dn dt N = rn 1 K r = b-d είναι ο ρυθµός αύξησης του πληθυσµού (b,d b,d)είναι οι ρυθµοί γεννήσεων και θανάτων Κ είναι η φέρουσα χωρητικότητα (carrying capacity)
Η Λογιστική Εξίσωση ουσιαστικά είναι µια επέκταση του εκθετικού µοντέλου dn = dt rn Υποθέσεις Εφαρµογής δεν υπάρχουν: - χρόνοι καθυστέρησης απόκρισης (time time-lag) - µετανάστευση, - γενετική διαφοροποίηση - ηλικιακή δοµή
Παραδείγµατα Εκθετικής Ανάπτυξης
Πληθυσµιακή αύξηση της Γης από το 6,000 π.χ µέχρι σήµερα (2005) (σε εκατοµµύρια). 7000 6000 Η «πανούκλα» στα μέσα του 13 ου αιώνα 5000 4000 3000 2000 1000 0-6000 -5000-4000 -3000-2000 -1000 0 1000 2000
Αύξηση Κλάδων σε έντρο 45 40 35 30 25 20 15 10 5 0 0 2 4 6
Λογιστική Εξίσωση: Ένας γενικός κανόνας;
ιακριτή Λογιστική Εξίσωση. πολύ πιο πολύπλοκες συµπεριφορές στην φύση. Χάος! Παράδειγµα: : H δυναµική εξέλιξης του πληθυσµού Blowflies Egg Adult Pup Larvae
Blowflies: O πληθυσµός ταλαντώνεται υπό σταθερές συνθήκες Nicholson, AN OUTLINE OF THE DYNAMICS OF ANIMAL POPULATIONS, Australian Journal of Zoology 2(1) 9-65 (1954)
H διακριτή λογιστική εξίσωση Ν(t+1) = r* N(t)*(1-N(t))
ιακριτή Λογιστική Εξίσωση May, Simple Mathematical models with very complicated dynamics, Nature 261 459-467 (1976)
ιακριτή Λογιστική Εξίσωση: : O Κώδικας c c c c Fortran program logistic implicit real*8 (a-h,o-z) parameter (nstepsma=2000) dimension p(nstepsma) r=0.2 nsteps=1000 initial conditions p(1)=0.5 open(unit=1,file='reslogistic.tt',status='unknown') do i=2,nsteps p(i)=r*p(i )=r*p(i-1)*(1-p(i-1)) write(1,*) i, p(i) write(*,*) i, p(i) enddo end
Γραφική Αναπαράσταση αποτελέσµάτων: b, d Περισσότερα για το GNUPLOT: GNUPLOT -Στον Α τόµο των σηµειώσεων (από κ. Αναγνωστόπουλο) - Στην ιστοσελίδα του µαθήµατος στα «Έγγραφα» για την τάξη Α -Στην ιστοσελίδα http://www.gnuplot.info/ Φυσικά κάποιος µπορεί να χρησιµοποιήσει οποιοδήποτε άλλο λογισµικό για την γραφική παράσταση των αποτελεσµάτων (π.χ. Matlab, Ecel κ.ο.κ)
ιακριτή Λογιστική Εξίσωση: Αποτελέσµατα Προσοµοίωσης Αποτελέσµατα προσοµοιώσεων της διακριτής λογιστικής εξίσωσης για αυξανόµενες τιµές της παραµέτρου, r : 0<r<3 plot reslogistic.tt using 1:2 with lines 0.9 0.9 0.8 0.8 0.7 0.7 0.6 0.5 0.4 r=0.99 0.6 0.5 0.4 r=2.99 0.3 0.3 0.2 0.2 0.1 0.1 0 0 50 100 150 200 0 0 50 100 150 200 250 300
ιακριτή Λογιστική Εξίσωση: Αποτελέσµατα Προσοµοίωσης Αποτελέσµατα προσοµοιώσεων της διακριτής λογιστικής εξίσωσης για αυξανόµενες τιµές της παραµέτρου, r : 3<r<4 plot reslogistic.tt using 1:2 with lines 0.8 0.9 0.7 0.8 0.6 0.5 0.4 0.3 0.2 r=3.01 0.7 0.6 0.5 0.4 0.3 0.2 r=3.57 0.1 0.1 0 0 20 40 60 80 100 0 0 20 40 60 80 100
ιακριτή Λογιστική Εξίσωση: : To διάγραµµα διακλάδωσης Τι είχε δει ο R. May: Το ατελές διάγραµµα ιακλάδωσης
ιακριτή Λογιστική Εξίσωση: Το διάγραµµα διακλάδωσης Τι βλέπουµε εµείς σήµερα: : To πλήρες διάγραµµα διακλάδωσης
ιακριτή Λογιστική Εξίσωση: : To διάγραµµα διακλάδωσης (bifurcation diagram) Κατασκευάστε το διάγραµµα διακλάδωσης τροποποιώντας το προηγούµενο κώδικα fortran γράφοντας σε αρχείο (και πλοτάροντας) τα 500 τελευταία σηµεία από τις χρονικές προσοµοιώσεις για κάθε τιµή της παραµέτρου r Σαρώστε τις τιµές της παραµέτρου r ως εξής r = 2:0.02:4 Χρησιµοποιήστε το λογισµικό gnuplot. Γράψτε gnuplot στο command prompt του linu shell. Kαι µετά: plot reslogistic.tt using 1:3
ιακριτή Λογιστική Εξίσωση: Ανάλυση Αποτελεσµάτων- Σηµεία ισορροπίας πως οι µορφή των τροχιών που προέρχονται από διάφορες αρχικές συνθήκες µεταβάλλονται συναρτήσει της παραµέτρου r Για 0<r<3 η λογιστική εξίσωση έχει µόνο ένα σηµείο ισορροπίας Σηµεία ισορροπίας µιας απεικόνισης της γενικής µορφής ( k + 1) = F(, p) k Σηµεία που ικανοποιούν την συνθήκη 0 n ( p) = F για 0, για κάθε n>n0
ιακριτή Λογιστική Εξίσωση: Ανάλυση Αποτελεσµάτων πως οι µορφή των τροχιών που προέρχονται από διάφορες αρχικές συνθήκες µεταβάλλονται συναρτήσει της παραµέτρου r Για r =1 το σ.ισορ. (fied point) είναι το Ν=0 Για r<>1 υπάρχουν δύο σηµεία ισορροπίας το Ν = 0 και το Ν=1-(1/ (1/r) Για 0<r<1 το σηµείο Ν=0 είναι ευσταθές (όλες οι τροχιές συγκλίνουν σε αυτό) Για 1<r<3 το σηµείο Ν =0 είναι ασταθές και το Ν=1-(1/ (1/r) είναι ευσταθές (όλες οι τροχιές συγκλίνουν σε αυτό) Για r > 3 το σηµείο ισορροπίας Ν=1-(1/ (1/r) γίνεται ασταθές
ιακριτή Λογιστική Εξίσωση: : k- περιοδικές λύσεις Για r =3+ε, ε>0 εµφανίζονται ταλαντώσεις µε περίοδο ίση µε δύο Γενικά µια λύση που ικανοποιεί τη συνθήκη λέγεται k-περιοδική λύση = F 0 = k (, p ) 0, Τα µοναδικά σηµεία των οποίων οι τροχιές έχοντας αυτά ως αρχικές συνθήκες δεν ελκύονται από τον ελκυστή µε περίοδο δύο είναι τα δύο ασταθή σηµεία ισορροπίας καθώς και το σηµείο N =1 το οποίο απεικονίζεται στο N =0 µέσα σε µια επανάληψη της απεικόνισης.
ιακριτή Λογιστική Εξίσωση: Από k- περιοδικές σε χαοτικές λύσεις Για r= 3.5 η περίοδος δύο διπλασιάζεται σε µια περίοδο τεσσάρων επαναλήψεων. Για r= 3.57 τα αποτελέσµατα της προσοµοίωσης δείχνουν ότι η περίοδος διπλασιάζεται σε οκτώ Ο διπλασιασµός της περιόδου συνεχίζεται επ άπειρω µέχρι µιας τιµής στην οποία η περιοδικότητα του σήµατος χάνεται και δίνει τη θέση της σε χαοτικές καταστάσεις. ηλαδή ο µηχανισµός διπλασιασµού της περιόδου οδηγεί τελικά σε απεριοδικές χαοτικές τροχιές. r=4 1 0.9 r=3.6 0.8 0.6 0.4 0.2 0 0 2 0 40 60 80 1 00 Και οι δύο χαοτικές τροχιές. Ποια η διαφορά τους; 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 50 100 150 200
ιακριτή Λογιστική Εξίσωση: Από k- περιοδικές σε χαοτικές λύσεις Απεικόνιση του χώρου που καταλαµβάνουν οι χαοτικές τροχιές για r =3.6 και r=4 1 0.8 0.6 0.4 0.2 0 3.5 3.6 3.7 3.8 3.9 4 4.1 - για r = 4 η τροχιά καταλαµβάνει όλη την περιοχή [0 1] - για r= 3.6 η τροχιά καταλαµβάνει µόνο δύο ζώνες στο διάστηµα [0 1]
Σειρά Feigenbaum Η διαδικασία των διακλαδώσεων διπλασιασµού της περιόδου γενικά δηµιουργεί µια άπειρη ακολουθία µε εύρη rm-1 < r <rm µε ευσταθείς τροχιές µε περίοδο m. Αποδεικνύεται (Feigenbaum, 1978)ότιτoεύρος αυτό µειώνεται κατά γεωµετρικό τρόπο συναρτήσει του m ως r r m m 1 lim = m rm+ 1 rm 4. 66292016
Σειρά Feigenbaum Στο σηµείο r = lim r = 3. 569945... m m υπάρχει µια απειρία διπλασιασµών περιόδου µετά την οποία έχουµε την «γέννηση» χαοτικών καταστάσεων. υπάρχουν ζώνες για r < r < 4 όπου η χαοτική συµπεριφορά εξαφανίζεται και δίνει τη θέση της σε περιοδικές λύσεις Π.χ. περί της τιµής r =3.84 υπάρχει ένα παράθυρο όπου εµφανίζονται τροχιές µε περίοδο τρία
Τοπική Ανάλυση Ευστάθειας και ιακλαδώσεις ιπλασιασµού της Περιόδου Πως µπορούµε να βρούµε µε τρόπο συστηµατικό τα σηµεία που εµφανίζονται οι διακλαδώσεις διπλασιασµού της περιόδου; Μελέτη ευστάθειας σηµείων ισορροπίας της απεικόνισης υπό την γενική µορφή ( k + 1 ) = F (, p ) k Για την µελέτη της ευστάθειας ενός σηµείου ισορροπίας 0 εξετάζουµε την εξέλιξη µιας διαταραχής y στο 0. ( k ) + y = F( + y, p) + 1 k+ 1 k k ή αναλύοντας σε Taylor και κρατώντας µόνο τον γραµµικό όρο y k+ 1= F ( p) y k 0,
Τοπική Ανάλυση Ευστάθειας k-περιοδικών λύσεων Η ευστάθεια k-περιοδικών λύσεων µελετάται από την διερεύνηση της ευστάθειας των σηµείων ισορροπίας της k απεικόνισης. F ( p) 0, Ένα σηµείο ισορροπίας στο οποίο καµιά ιδιοτιµή δεν έχει µέτρο την µονάδα, δηλαδή δεν βρίσκεται πάνω στον µοναδιαίο κύκλο,, λέγεται υπερβολικό.. Απαραίτητη συνθήκη για την εµφάνιση αλλαγών συµπεριφορών του συστήµατος µε µικρές αλλαγές των τιµών των παραµέτρων, δηλαδή η εµφάνιση διακλαδούµενων λύσεων είναι η εµφάνιση κάποιου µη-υπερβολικού σηµείου κατά την µεταβολή της τιµής µιας παραµέτρου του συστήµατος Υπάρχουν οι κάτωθι περιπτώσεις µε την µεταβολή µιας παραµέτρου του συστήµατος
ιακλάδωση διπλασιασµού περιόδου ( p) k έχει µια ιδιοτιµή ίση µε -1 και όλα οι άλλοι πολλαπλασιαστές F 0, Floquet είναι µέσα στον µοναδιαίο κύκλο. Ο κλάδος των ευσταθών περιοδικών λύσεων που υπήρχε πριν την διακλάδωση γίνεται ασταθής. Είναι γνωστό από την θεωρία διακλάδωσης ότι επανειληµµένες διακλαδώσεις διπλασιασµού της περιόδου οδηγούν στην εµφάνιση χαοτικών συµπεριφορών. Για την διακριτή λογιστική εξίσωση η τροχιά µε περίοδο ένα έχει έναν πολλαπλασιαστή Floquet ίσο µε µ F(, p) = r 2rN Το µ1 υπολογισµένο στην λύση ισορροπίας Ν= 1-1/r δίνει µ1=2-r 1= 0 Αυτό µεταβάλλεται από το µ1=1 για r=1 στο µ1=-1 για r=3 όπου είναι το σηµείο όπου η λύση ισορροπίας της 1 απεικόνισης χάνει την ευστάθεια της και δίνει την F ( k, p) θέση της στην ευσταθή τροχιά µε περίοδο δύο η οποία µε την σειρά της είναι λύση 2 ισορροπίας της F, p απεικόνισης ( ) k Αλλά πως µπορείς κανείς να υπολογίσει αριθµητικά και για την διακριτή λογιστική εξίσωση αλλά και για οποιαδήποτε άλλη απεικόνιση αυτά τα σηµεία;
Αριθµητικός υπολογισµός ιακλαδώσεων διπλασιασµού περιόδου Η διαδικασία της εύρεσης αυτών των σηµείων ξεκινά από την διαπίστωση ότι αυτά τα σηµεία θα πρέπει να ικανοποιούν ταυτόχρονα το ακόλουθα γενικό συζευγµένο σύστηµα εξισώσεων G µ ( ) k, p = F (, p) = 0 [ F k ( p) ] = 1, 1 0 (και όλοι οι άλλοι πολλαπλασιαστές Floquet να είναι µέσα στον µοναδιαίο κύκλο) Για την λογιστική εξίσωση: k G (, p) = N F ( N, r) = 0 F rn k( 1 N k ) Το παραπάνω σύστηµα εξισώσεων µπορεί τώρα να λυθεί παραδείγµατος χάριν µε την µέθοδο Newton-Raphson που έχουµε παρουσιάσει
Επίλυση των µη-γραµµικών εξισώσεων για τον εντοπισµό των σηµείων διακλάδωσης µε την µέθοδο Newton-Raphson Για την διακριτή λογιστική εξίσωση και για k-περιοδικές λύσεις N r ( n+ 1 ) = N r ( n ) k ( ) 1 F N F N, r k 2 k F ( N, r ) + 1 F N k k F ( ) ( N, r) N, r r 2 k ( N, r) F ( N, r) 2 r N Όλες οι ποσότητες µπορούν να υπολογισθούν αριθµητικά εφαρµόζοντας πεπερασµένες διαφορές για τον υπολογισµό των παραγώγων της Ιακωβιανής
Προσέγγιση παραγώγων µε πεπερασµένες διαφορές Προσέγγιση παραγώγων µε πεπερασµένες διαφορές η πρώτη, δεύτερη και η µικτή παράγωγοι µπορούν να προσεγγισθούν από τις ακόλουθες γενικές σχέσεις ( ) ( ) ε ε ε 2 + = j j i j i F F, F Subroutine Subroutine Xj +ε F(Xj +ε) Xj -ε F(Xj -ε) ( ) ( ) ( ) 2 2 2 2 ε ε ε + + = j j i j i j i F F F, F ( ) ( ) ( ) ( ) y y k j i y k j i y k j i y k j i k j i y F y F y F y F ε ε ε ε ε ε ε ε ε ε 4,,,, 2 + + + + + =,, y F όπου Fi είναι το i-οστό στοιχείο της συνάρτησης F και ανάλογα για τα ανύσµατα, y.
c program logisticbifpoints implicit real*8 (a-h,o-z) parameter (nstepsma=2000) dimension p(nstepsma) dimension G(2),rjac(2,2),ds(2) O κώδικας Fortran open (unit=1,file='resbifpointsloc.tt', $status='unknown') c set period T=2 c Initial guess p0=0.5 r0=3.5 error1=1.0 kiter=0 tol=1.e-06 do while (error1.gt.tol) end call rlogisticmatlabtimestepper(p0,t,r0,pt) G(1)=p0-pT call calculatefloquet(p0,t,r0,dfdn,ptpos,ptmin,eps) G(2)=dfdn+1.0 d2fdn2=(ptpos-2*pt+ptmin)/eps**2 rjac(1,1)=1.0-dfdn rjac(2,1)=d2fdn2 call calculatederivonr(p0,t,r0,dfdr) rjac(1,2)=-dfdr call calculatemiedderiv(p0,t,r0,d2fdrdn) rjac(2,2)=d2fdrdn call gelim(2,rjac,-g,ds) error1=0.5*(ds(1)**2+ds(2)**2)**0.5 kiter=kiter+1 r0=r0+ds(2) p0=p0+ds(1) write (*,512) kiter,error1,r0,p0 write (1,512) kiter,error1,r0,p0 enddo 512format(I,d12.4,f10.6,f10.6)
O κώδικας Fortran subroutine calculatemiedderiv(p0,t,r0,d2fdrdn) implicit real*8 (a-h,o-z) epsr=0.001*r0 epsn=0.001*p0 rpos=r0+epsr ppos=p0+epsn call rlogisticmatlabtimestepper(ppos,t,rpos,pfirst) rpos=r0+epsr pmin=p0-epsn call rlogisticmatlabtimestepper(pmin,t,rpos,psecond) rmin=r0-epsr ppos=p0+epsn call rlogisticmatlabtimestepper(ppos,t,rmin,pthird) rmin=r0-epsr pmin=p0-epsn call rlogisticmatlabtimestepper(pmin,t,rmin,pfourth) d2fdrdn=(pfirst-psecond-pthird+pfourth)/(4.0*epsr*epsn) return end
O κώδικας Fortran Επίλυση συστήµατος Α=B µε απαλειφή Gauss subroutine gelim(n,sk,r1,u) implicit real*8 (a-h,o-z) dimension sk(n,n) dimension r1(n) dimension u(n) do 30 nr=1,n-1 do 40 i=nr,n-1 p=sk(i+1,nr)/sk(nr,nr) do 50 j=nr+1,n sk(i+1,j)=sk(i+1,j)-p*sk(nr,j) 50 continue r1(i+1)=r1(i+1)-p*r1(nr) 40 continue 30 continue Α: sk B: r1 : u do 60 m=n,1,-1 if(m.eq.n)goto 100 do 70 l=n,m+1,-1 r1(m)=r1(m)-sk(m,l)*u(l) 70 continue 100 u(m)=r1(m)/sk(m,m) 60 continue return end
Παρένθεση: Σύντοµη περιγραφή της Απαλoιφής Gauss Gauss elimination Σκοπός: η επίλυση συστηµάτων της µορφής a a a 111+ a12 2+ a133 +... + a1 N N = b1 211+ a222+ a233+... + a2n N = b2 311+ a322+ a333+... + a3n N = b3 a + a + a +... + a = N1 1 N 2 2 N 3 ή 3 NN... N b Α = B N A= a11 a21... an1 a a a b1 b2 B=... b N 12 22... N 2............ a a a 1N 2N... NN 1 2 =... N
Απαλοιφή Gauss Gauss elimination Η µέθοδος επιλύει το σύστηµα µε τριγωνοποίηση του συστήµατος στην µορφή a 111+ a12 2+ a13 3+... + a1 N N = b1 a' 22 2+ a' 23 3+... + a' 2N N = b' 2 a' 33 3+... + a' 3N N = b' 3 a ' = NN... N b' N Επιλύοντας έτσι από την τελευταία εξίσωση και «προς τα πίσω» (back substitution)
Απαλοιφή Gauss Gauss elimination Αυτό επιτυγχάνεται σε Ν-1 βήµατα. Κάθε βήµα: Πολλαπλασιάζουµε την k-γραµµή, k=1,2, N-1 µε Rjk =- αjk/ αkk j=2,3, N Προσθέτουµε το αποτέλεσµα στην j-γραµµή Το αποτέλεσµα της πρόσθεσης αντικαθιστά την j-γραµµή To αkk λέγεται οδηγό στοιχείο (pivot element) και πρέπει να είναι διάφορο του µηδενός. Αν κάποιο pivot είναι µηδέν αλλάζουµε τις γραµµές
Αποτελέσµατα Παρακάτω δίνονται τα αποτελέσµατα της Newton-Raphson για διάφορες τιµές της περιόδου Τ. Για Τ = 2 Iteration norm of error r N 1 0.6351D-01 3.385229 0.445578 2 0.3397D-01 3.452910 0.439656 3 0.1712D-02 3.449499 0.439959 4 0.4377D-05 3.449490 0.439960 5 0.3570D-10 3.449490 0.439960 Για Τ = 4 Iteration norm of error r N 1 0.2662D-01 3.544653 0.528989 2 0.2776D-02 3.543390 0.523584 3 0.3515D-03 3.544093 0.523595 4 0.8402D-06 3.544091 0.523595
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικόυ έργου του διδάσκοντα Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα Ε.Μ.Π.» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικού πόρους.