569: Υπολογιστικές Μέθοδοι για Μηχανικούς Επανάληψη ttp://ecourses.cemeng.ntua.gr/courses/computational_metods_or_engineers/
Σφάλμα αριθμητικών μεθόδων Αναπαράσταση αριθμών σε υπολογιστή αναπαράσταση κινητής υποδιαστολής loating point representation πεπερασμένη ακρίβεια mantissa 5-5 bits ελάχιστος αριθμός που μπορεί να προστεθεί στο eps= -5 =.Ε-6 απόσταση αριθμών ελάχιστος αριθμός που μπορεί να προστεθεί στο >= eps προσεγγιστική ακρίβεια περίπου 6 σημαντικών ψηφίων =; or i=:0000 =+e-7; end ormat long =; =+ 0000 *e-7; ormat long =; or i=:0000 =+e-4; 4; end ormat long =e0; or i=:0000 =+e-8; +e end ormat long Είδη σφαλμάτων απόλυτο σφάλμα - απόλυτο σχετικό σφάλμα σφάλμα στρογγυλοποίησης σφάλμα αποκοπής
Εύρεση ηρίζας μιας συνάρτησης ρη η
Εύρεση ρίζας μιας μη γραμμικής εξίσωσης Μέθοδος διχοτόμησης Υπολογισμός των u και l έτσι ώστε ε ul<0 >> g=9.8;cd=0.5;t=4;u=6; >> =@m sqrtg*m/cd*tansqrtg*cd/m*t-u Παράδειγμα Bungee umper gm gc d m tan t u c d m = @msqrtg*m/cd*tansqrtg*cd/m*t-u >> plot,[50 60] >> grid on >> 50 ans = 0.40400655 >> 0 ans = -0.8475086757
Εύρεση ρίζας μιας μη γραμμικής εξίσωσης Μέθοδος διχοτόμησης clear ormat long g=9.8;cd=0.5;t=4;u=6; =@m sqrtg*m/cd*tansqrtg*cd/m*t-u; es =.e-6; maiter = 0; u = 50; l = 0; old = l; iter = 0; wile iter =iter +; new = u+l/; ea=abs new - old / new ; old = new; i ea<=es iter>=maiter;break;end i l*new<0 u=new; else l=new; end end iter ea new iter = 8 ea = 5.450468587e-07 new =.477655696484e+0 >> new ans = 4.60895506e-07
Εύρεση ρίζας μιας μη γραμμικής εξίσωσης Μέθοδος Newton - Rapson clear ormat long g=9.8;cd=0.5;t=4;u=6; =@m sqrtg*m/cd*tansqrtg*cd/m*t-u; d=@m, m+-m/; es=e-6; maiter=0; Παράδειγμα Bungee umper gm gc d m tan t u c d m.88547e-0.4547e-04 9.949e-08 o=40; old=o; iter=0; wile iter=iter+; =sqrteps*absold; new = old - old/dold,; ea=absnew-old/new; print'%d %e \n',iter,ea old=new; i ea<es iter>=maiter;break;end end iter ea new iter = ea = 9.94986786e-08 new =.4776084486e+0 >> new ans = -.6807800e-4
Εύρεση ρίζας μιας μη γραμμικής εξίσωσης zero clear ormat long g=9.8;cd=0.5;t=4;u=6; =@m sqrtg*m/cd*tansqrtg*cd/m*t-u; Παράδειγμα Bungee umper gm gc d m tan t u c d m 0=40; =zero,0
Συστήματα Αλγεβρικών γβρ Εξισώσεων
Συστήματα γραμμικών αλγεβρικών εξισώσεων Πρακτικό: Δίκτυο αντιδραστήρων ος Αντιδραστήρας Q 0 c 0 + Q c = Q 5 c + Q c 0 + c = 5c + 4c -9 c + c = -0 ος Αντιδραστήρας Q c = Q c + Q 4 c + Q 5 c 4c = c + c + c 4c -4c = 0 ος Αντιδραστήρας Q 0 c 0 + Q c = Q c + Q 4 c 50 + c = c + 6c c -9 c = -50 4ος Αντιδραστήρας Q 4 c + Q 4 c + Q 54 c 5 = Q 44 c 4 c + 6c + c 5 = 9c 4 c + 6c -9c 4 + c = 0 5 5ος Αντιδραστήρας Q 5 c + Q 5 c = Q 54 c 5 + Q 55 c 5 5c + c = c 5 + 4c 5 5c + c -6 c 5 = 0 >> A=[ 9 0 0 0;4 4 0 0 0;0 9 0 0;0 6 9 ;5 0 0 6] >> A=[-9 0 0 0;4-4 0 0 0;0-9 0 0;0 6-9 ;5 0 0-6] A = -9 0 0 0 4-4 0 0 0 0-9 0 0 0 6-9 5 0 0-6 >> b=[-0;0;-50;0;0] b = -0 0-50 0 0 >> c=a\b Απαλοιφή Gauss c = 8.4000 8.4000 45.000 9.6000 8.4000-9 0 0 0 c -0 4-4 0 0 0 c 0 0-9 0 0 c = -50 0 6-9 c4 0 5 0 0-6 c 5 0
Συστήματα μη-γραμμικών αλγεβρικών εξισώσεων Πρακτικό: Σύστημα χημικών αντιδράσεων unction [, J]=munction = @,5++/50-*-^/0--4E-4; = @,5++/50-*-/0--.7E-; _eval =, ; _eval =, ; Jacobian _ = sqrteps*abs; _ = sqrteps*abs; _pert = +_, ; _pert =, +_ ; _pert = +_, ; _pert =, +_ ; d_d = _pert - _eval / _; d_d = _pert - _eval / _; d_d = _pert - _eval / _; d_d = _pert - _eval / _; Προσέγγιση orward J = [ d_d d_d;... d_d d_d ]; = [ _eval;_eval ]; Επίλυση με Newton - Rapson
Συστήματα μη-γραμμικών αλγεβρικών εξισώσεων Πρακτικό: Σύστημα χημικών αντιδράσεων Newton Rapson για συστήματα es = e-6 maiter = 00 u old = [;] %initial guess J = [ d_d d_d;... d_d d_d ]; iter = 0 wile = [ _eval;_eval ]; iter =iter + [,J] = munctionuold du=j\ u new = u old du ea=maabsdu./unew; %normdu./unew,in ma norm u old = u new i ea<=es iter>=maiter;break;end end
Συστήματα μη-γραμμικών αλγεβρικών εξισώσεων Πρακτικό: Σύστημα χημικών αντιδράσεων solve = @[5++/50-*-^/0--4E-4 5++/50-*-/0--.7E-] ; =solve,[,]
Παρεμβολή-Προσαρμογή ρμβ ρ ρμ
Προσαρμογή best it ευθείας - Μέθοδος ελαχίστων τετραγώνων 0 a a S 0 a a a S n r n i 0 i i 0 r a a n n a i i i i i i 0 a a a i 0 i i i a a 0 Παράδειγμα: Δίνονται τα σημεία 0,,,,,4. Προσδιορίστε την βέλτιστη ευθεία γραμμή με ελάχιστα τετράγωνα. n=; Σ i =; Σ i =7; Σ i i =0; Σ i =9; Σ i =5; =7/; = 8 0 5 7 a 5 9 5 7 0 a 0.. /. * * * S r = Σ i -a i +a 0 =0.666 S t =Σ i - =4.666 Coeicient o determination R = S t -S r /S t =0.964
Προσαρμογή best it ευθείας : Μέθοδος ελαχίστων τετραγώνων Πρακτικό: Εύρεση κινητικής ενζυμικών αντιδράσεων από πειραματικές μετρήσεις Γραμμικοποίηση vm S μη γραμμικών εξισώσεων ks v = = + k + [S] v v v [S] s clear, clc S = [..8 4.5 6 8 9]; v= [0.07 0. 0. 0.75 0.5 0.5 0.6]; =./v; =./S.^; p=polit,, line= @ polvalp,; plot,,'o'; old on ; plotline, [min ma] vm=/p; Ks=p/p; =@S vm*s.^/ks+s.^ igure plots,v,'o'; old on ; plot, [mins mas] m m
Αριθμητική Παραγώγιση Συναρτήσεων
Αριθμητική παραγώγιση συναρτήσεων Πεπερασμένες διαφορές για τον υπολογισμό παραγώγων Διαμερισμός: ισαπέχοντα σημεία ; - - = ; + - = + - Σειρές Talor: +...! '''! '' '...! '''! '' ' Αποκοπή όρων: ' O
4 Επίλυση ως προς την παράγωγο: O eps opt O ' ' O Forward Finite Dierence O ' O ' O Backward Finite Dierence 5 Συνδυασμός σειρών Talor για μεγαλύτερη ακρίβεια:...! '''! '' '...! '''! '' ' -!! Κ ή έ δ φ ά...! ''' 0 ' eps opt ' O Κεντρική πεπερασμένη διαφορά Central F.D.
6 Συνδυασμός σειρών Talor για μεγαλύτερη παράγωγο:...! '''! '' '...! '''! '' ' +!!...!! '' 4 0 0 4 4 '' O Κεντρική πεπερασμένη διαφορά για την η παράγωγο
=@ ^-*+4; 0=; =sqrteps *abs0; FFD=0+-0/ / BFD=0-0-/ = eps^/ *abs0; CFD=0+-0-/* /*
Αριθμητική Ολοκλήρωση συναρτήσεων
Αριθμητική Ολοκλήρωση συναρτήσεων b a d I Newton Cotes για n= [κανόνας τραπεζίου] 0 a b I Newton Cotes για n= [κανόνας Simpson /] 0 4 a b I Newton Cotes για n= [κανόνας Simpson /8] a b I 0 8 8 8 8 a b I
Σύνθετος κανόνας τραπεζίου Διαμερισμός σε Ν τμήματα. =b-a/ν; 0 =a, = 0 + Εφαρμογή κανόνα τραπεζίου σε κάθε ένα από τα Ν τμήματα I I I 0... N N b - a '' b - a '' R a b N N 0 Σύνθετος κανόνας Simpson / Διαμερισμός σε ΝτμήματαΝζυγός. =b-a/ν; 0 =a, = 0 + Εφαρμογή κανόνα Simpson σε Ν/ τμήματα I 4 4... 4 0 N N R 90 5 4 80 b a 4 N 5 4
Ολοκλήρωση Gauss Tα n+ σημεία i βρίσκονται από ρίζες ορθογώνιων πολυωνύμων π.χ. πολυώνυμα Legendre. Gauss-Legendre Για ολοκλήρωση συνάρτησης από - στο + τα i βρίσκονται από ρίζες του n+ πολυωνύμου Legendre. d w i i n i0 Για άλλα όρια χρειαζόμαστε ή ρίζες άλλων ορθογώνιων πολυωνύμων ή μετατροπή: b a d ' ' d' n i0 w ' i i b a b a '
Σύγκριση Newton-Cotes και Gauss-Legendre Newton-Cotes Gauss-Legendre Σημεία n+ n+ Σφάλμα R n ~ n+ ξ n+, n=,,5, R n ~ n+ ξ n+, n=,4,6, R n ~ n+ ξ n+ Algebraic* precision n, n=,,5, 5 n+, n=,4,6, n+ * μέγιστος βαθμός πολυωνύμου που το ολοκλήρωμα υπολογίζεται ακριβώς
παράδειγμα: Υπολογίστε το ολοκλήρωμα με την μέθοδο Simpson / και Gauss Legendre για n= 4 d Αναλυτική λύση: 4 d 5 5 5 Simpson /: 0=- 0= =0 = = = I Gauss =5/9 5/9+ +8/9 +5/9 5/9+ ]= /5 ο κανόνας Gauss-Legendre n= υπολογίζει το ολοκλήρωμα πολυωνύμου έως 5 ου βαθμού ακριβώς. ο Simpson / έως ου.
Αριθμητική Ολοκλήρωση Πρακτικό: Υπολογισμός έργου δύναμης Μέθοδος Τραπεζίου a=; b=; I=b-a*+/; MATLAB unction trapz, I o + b-a b - a/n 0... N N
Αριθμητική Ολοκλήρωση Πρακτικό: Υπολογισμός έργου δύναμης Simpson / a=; b=; I=b-a*+4*+/6; o + 4 + b-a 6 Simpson /8 + + + a=; b-a o b=4; 8 I=b-a*+*+*+4/8;
Επίλυση διαφορικών εξισώσεων Πρόβλημα Αρχικών Τιμών
Επίλυση διαφορικών εξισώσεων Α. Επίλυση μίας συνήθους ης τάξης Δ.Ε.Πρόβλημα Αρχικών Τιμών t 0 = 0 Μέθοδος πεπερασμένων διαφορών. Διαμέριση ανεξάρτητης μεταβλητής Δt =? Δt t = Δt 0 t t t t. Επιλογή σχήματος πεπερασμένων διαφορών tt Forward Euler t Backward Euler tt
. Αντικατάσταση στη Δ.Ε. Forward Euler =t, ==> t t t, =0,,,,n Backward Euler Δt t0 t t t =t, ==> t t, =,,,n t ή Δt t, =0,,,. t0 Δt t t
III. Runge - Kutta + = +[a κ +α κ + +α n κ n ] 4 t order RK: Steven C. Capra, Ramond P. Canale, "Numerical Metods or Engineers 6 edition"
Συνήθεις Διαφορικές Εξισώσεις Πρόβλημα αρχικών τιμών Bungee umper clear g=9.8;cd=0.5;m=68.; =; t=0; du dt g c d u m g=9.8 c d =0.5 m=68. Αρχικές συνθήκες: u=0 για t=0 Διάστημα χρονικής ολοκλήρωσης: t=0 ως 0 Βήμα: = u = 0; i=; wile ti+=ti+; Άμεση eplicit/orward Euler dui cd ui ui ui ui g ui dt m ui+=ui+g-cd/m*ui^*; iti+>=0;break;end i=i+; end plott,u
Συνήθεις Διαφορικές Εξισώσεις Πρόβλημα αρχικών τιμών Bungee umper clear g=9.8;cd=0.5;m=68.; =; t=0; du dt g c d u m g=9.8 c d =0.5 m=68. Αρχικές συνθήκες: u=0 για t=0 Διάστημα χρονικής ολοκλήρωσης: t=0 ως 0 Βήμα: = u = 0; i=; wile ti+=ti+; Έμμεση implicit/backward Euler dui cd ui ui ui u i g ui dt m =@ui+g-cd/m*^*-; ui+=zero,ui; iti+>=0;break;end i=i+; end plott,u
Συνήθεις Διαφορικές Εξισώσεις Πρόβλημα αρχικών τιμών Πρακτικό: Το σύστημα θηρευτής θήραμα predator-pre α=. b=0.6 c=0.8 d=0. d a b dt d c d dt Αρχικές συνθήκες: =, = για t=0 Διάστημα χρονικής ολοκλήρωσης: t=0 ως 40 Βήμα: =0.065 unction =ppt, a=.; b=0.6; c=0.8; d=0.; =a*-b**; =-c*+d**; =[;]; ] Διάστημα χρονικής ολοκλήρωσης: t=0 ως 40 Αρχικές συνθήκες: =, = >> [t ]=ode45@pp,[0::40],[ ];
Συνήθεις Διαφορικές Εξισώσεις Πρόβλημα αρχικών τιμών Πρακτικό: Το σύστημα θηρευτής θήραμα predator-pre Άμεση eplicit/orward Euler a=.;b=0.6;c=0.8;d=0.; =@t,, a*b**; a*-b**; =@t,, -c*+d**; t=0; =; =; dt=0.065; 065; tend=40; i=; wile l ti+=ti+dt; i+=i+ti,i,i*dt; i+=i+ti,i,i*dt; t,, iti+>=tend break;end; i=i+; end old on plott,, 'r' plott,,'b' igure plot,
Runge-Kutta 4 ης τάξης a=.;b=0.6;c=0.8;d=0.; =@t,, a*-b**; =@t,, -c*+d**; t=0; =; =; dt=0.065; tend=40; i=; wile ti+=ti+dt; k=ti,i,i ; k=ti,i,i ; k=ti+/*dt,i+/*k*dt,i+/*k*dt ; k=ti+/*dt,i+/*k*dt *d,i+/*k*dt *d ; k=ti+/*dt,i+/*k*dt,i+/*k*dt ; k=ti+/*dt,i+/*k*dt,i+/*k*dt ; k4=ti+ dt,i+ k*dt,,i+ k*dt ; k4=ti+ dt,i+ k*dt,i+ k*dt ; i+=i+/6*k + *k + *k +k4*dt; i+=i+/6*k + *k + *k + k4*dt; end iti+>=tend break;end; i=i+; old on plott,,'r' plott,,'b' igure plot,
Σύστημα Γραμμικών Διαφορικών Εξισώσεων ης τάξης Π.Α.Τ. 0 = 0 = 0 έχει ακριβή λύση : = e -t -e -000t, = - e -t + e -000t και άρα τείνει σε μεγάλους χρόνους στην μόνιμη κατάσταση =0, =0 λόγω των αρνητικών εκθετών e -t και e -000t. Οι εκθέτες προέρχονται από τις ιδιοτιμές του πίνακα των συντελεστών λ =-, λ =-000 A 998-999 998 999 eiga Ευστάθεια Μόνιμης Κατάστασης λ και λ <0 Αριθμητική Ευστάθεια Forward Euler d Κατά αντιστοιχία με τη συνθήκη 0 σε μία Δ.Ε. d ss Κατά αντιστοιχία με τη συνθήκη σε μία Δ.Ε Στο άνω παράδειγμα Δt για orward Εuler </000 άρα μεγαλύτερο υπολογιστικό κόστος λ << λ δηλώνει άκαμπτο σύστημα
Ανάλυση μη Γραμμικών Συστημάτων 0 =,0 0 =,0 Εύρεση Μόνιμων Καταστάσεων, =0 και, =0 ==>,ss,,ss i Τοπική Ευστάθεια Μόνιμων Καταστάσεων J Σχηματισμός Ιακωβιανού πίνακα J Υπολογισμός Ιακωβιανού πίνακα Jσε κάθε Μ.Κ.,ss,ss Εύρεση Ιδιοτιμών του J λ λ, λ και λ <0 τότε,ss,ss ευσταθής Μ.Κ.,, ss,,ss
Τοπική ευστάθεια μόνιμων καταστάσεων σε γραμμικά και μη-γραμμικά συστήματα Ιδιοτιμές Μόνιμη Κατάσταση λ, λ πραγματικοί Ευσταθές σημείο λ <0 και λ <0 stable node λ, λ πραγματικοί λ >0 και λ >0 Ασταθές σημείο unstable node λ, λ πραγματικοί λ <0 και λ >0 λ, λ μιγαδικοί μγ Reλ <0, Reλ <0 λ, λ μιγαδικοί Reλ >0, Reλ >0 Ασταθής σέλλα Saddle node Ευσταθές επίκεντρο Stable Spiral Ασταθές επίκεντρο Unstable Spiral γραμμικά συστήματα: λ, λ ιδιοτιμές του πίνακα Α των συντελεστών μη-γραμμικά συστήματα: λ, λ ιδιοτιμές του Ιακωβιανού πίνακα J
παράδειγμα: Εύρεση Μόνιμων Καταστάσεων, =0 και, =0 ==> Μ.Κ. : =-, =- και Μ.Κ.: =, = Σχηματισμός Ιακωβιανού πίνακα J J 0 Υπολογισμός Ιακωβιανού πίνακα Jσε κάθε Μ.Κ.,ss,ss - Εύρεση Ιδιοτιμών του J λ λ, Μ.Κ. : =-, =- J -,- 0 λ =- και λ =- Μ.Κ. είναι ευσταθές σημείο Μ.Κ. : =, = J, 0 λ =- και λ = Μ.Κ. είναι ασταθής σέλλα
Επίλυση διαφορικών εξισώσεων Πρόβλημα Οριακών Τιμών
Επίλυση μίας συνήθους ης τάξης Δ.Ε. Πρόβλημα Συνοριακών Τιμών Μέθοδος πεπερασμένων διαφορών. Διαμέριση ανεξάρτητης μεταβλητής Δ =L0/n L-0/n- 0 Diriclet 0=a L=b L Δ Δ ή Neumann 0=a L=b n L. Επιλογή σχήματος πεπερασμένων διαφορών. Αντικατάσταση στη Δ.Ε. = =, =,,n- n- εξισώσεις, n αγνώστους
4. Οριακές συνθήκες = =a n = n =b 0 5. Επίλυση συστήματος αλγεβρικών εξισώσεων n =b a 0 = -a Δ =a =, n =b n =b 0 =, =, Diriclet Neumann
Μέθοδος πεπερασμένων διαφορών Πρακτικό: Κατανομή θερμοκρασίας σε ράβδο κατασκευή του συστήματος εξισώσεων γραμμή γραμμή >> clear >> =0.05;Tin=00;delta=; >> ala=+*delta^ ala =.000 >> bita=*tin*delta^ bita = 40 >> A=[ 0 0 0 0 0;... - ala - 0 0 0;... 0 - ala - 0 0;... 0 0 - ala - 0;... 0 0 0 - ala -;... 0 0 0 0 0 ]; >> b=[00;bita;bita;bita;bita;400]; >> =A\b = T T T =00 T T n =400 T T in T0=00 TL=400 T 0 T T T Diriclet boundar conditions or T and Tn in 00.00000000 8.660 8.85 99.746 6.46 400.0000 Diriclet boundar conditions or T and Tn
>> edit mscript.m clear =0.05; Tin=00; To=00; Tend=400; rod_len=0; Μέθοδος πεπερασμένων διαφορών Πρακτικό: Κατανομή θερμοκρασίας σε ράβδο κατασκευή του συστήματος εξισώσεων με script n=6; delta=rod_len/n-; len/n %Compute te coeicient matri ala=+*delta^; v=-*onesn-,; d=ala*onesn,; A=diagd+diagv,-+diagv,; %Compute te rigt and side bita=*tin*delta^; b=bita*onesn,; %Impose boundar conditions % Diriclet boundar conditions or T and Tn A,:=0;A,=; An,:=0;An,n=; b=to; bn=tend; b=to; [T 0 =T -a Δ] ] % Neumann boundar condition or T %A,:=0;A,=ala;A,=-; %dtd=0; %b=bita-*delta*dtd; Tcalc=A\b T T T T T 0 in T T T T n =400 in