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 Είδη σφαλμάτων απόλυτο σφάλμα - απόλυτο σχετικό σφάλμα σφάλμα στρογγυλοποίησης σφάλμα αποκοπής
Εύρεση ηρίζας μιας συνάρτησης ρη η
Εύρεση ρίζας μιας μη γραμμικής εξίσωσης Μέθοδος 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 >> 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 >> r=b-a* >> normr -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]=myunction = @,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 = [ _eval;_eval ]; wile iter =iter + [,J] = myunctionuold du=j\ u new = u old du ea=normdu./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,[,] r= normr
Αριθμητική Παραγώγιση Συναρτήσεων
Αριθμητική παραγώγιση συναρτήσεων Πεπερασμένες διαφορές για τον υπολογισμό παραγώγων Διαμερισμός: ισαπέχοντα σημεία ; - - = ; + - = + - Σειρές Taylor: +...! '''! '' '...! '''! '' ' Αποκοπή όρων: ' O
4 Επίλυση ως προς την παράγωγο: O eps opt O ' ' O Forward Finite Dierence O ' O ' O Backward Finite Dierence 5 Συνδυασμός σειρών Taylor για μεγαλύτερη ακρίβεια:...! '''! '' '...! '''! '' ' -!! Κ ή έ δ φ ά...! ''' 0 ' eps opt ' O Κεντρική πεπερασμένη διαφορά Central F.D.
6 Συνδυασμός σειρών Taylor για μεγαλύτερη παράγωγο:...! '''! '' '...! '''! '' ' +!!...!! '' 4 0 0 4 4 '' O Κεντρική πεπερασμένη διαφορά για την η παράγωγο
Βρείτε την παράγωγο της = -+4 στο 0 = =@ ^-*+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+ * μέγιστος βαθμός πολυωνύμου που το ολοκλήρωμα υπολογίζεται ακριβώς
Αριθμητική Ολοκλήρωση Πρακτικό: Υπολογισμός έργου δύναμης Μέθοδος Τραπεζίου a=; b=; I=b-a*y+y/; MATLAB unction trapz,y I o + b-a b - a/n 0... N 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 / έως ου.
Επίλυση διαφορικών εξισώσεων Πρόβλημα Αρχικών Τιμών
Επίλυση διαφορικών εξισώσεων Α. Επίλυση μίας συνήθους ης τάξης Δ.Ε.Πρόβλημα Αρχικών Τιμών yt 0 =y 0 Μέθοδος πεπερασμένων διαφορών. Διαμέριση ανεξάρτητης μεταβλητής Δt =? Δt t = Δt 0 t t t t. Επιλογή σχήματος πεπερασμένων διαφορών y y tt Forward Euler t y y Backward Euler tt
. Αντικατάσταση στη Δ.Ε. Forward Euler y y =t,y ==> t y y t t, y =0,,,,n y Backward Euler Δt t0 t t t y y =t,y ==> y y t t, y =,,,n t ή y y y Δt t, y =0,,,. t0 Δt t t
III. Runge - Kutta y + =y +[a κ +α κ + +α n κ n ] 4 t order RK: Steven C. Capra, Raymond P. Canale, "Numerical Metods or Engineers 6 edition"
Συνήθεις Διαφορικές Εξισώσεις Πρόβλημα αρχικών τιμών Bungee umper clear g=9.8;cd=0.5;m=68.; dt=; t=0; u = 0; i=; wile iti>=tend;break;end ti+=ti+dt; ui+=ui+g-cd/m*ui^*dt; du dt g c d u m g=9.8 c d =0.5 m=68. Αρχικές συνθήκες: u=0 για t=0 Διάστημα χρονικής ολοκλήρωσης: t=0 ως 0 Βήμα: = Άμεση eplicit/orward Euler dui cd ui ui ui ui g ui dt m i=i+; end plott,u
Συνήθεις Διαφορικές Εξισώσεις Πρόβλημα αρχικών τιμών Bungee umper clear g=9.8;cd=0.5;m=68.; dt=; t=0; u = 0; i=; wile iti>=tend;break;end ti+=ti+dt; i=i+; end plott,u =@ui+g-cd/m*^*dt-; ui+=zero,ui; du dt g c d u m g=9.8 c d =0.5 m=68. Αρχικές συνθήκες: u=0 για t=0 Διάστημα χρονικής ολοκλήρωσης: t=0 ως 0 Βήμα: = Έμμεση implicit/backward Euler dui cd ui ui ui u i g ui dt m
Συνήθεις Διαφορικές Εξισώσεις Πρόβλημα αρχικών τιμών Πρακτικό: Το σύστημα θηρευτής θήραμα predator-prey α=. b=0.6 c=0.8 d=0. d a by dt dy cy dy dt Αρχικές συνθήκες: =, y= για 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 Αρχικές συνθήκες: =, y= >> [t y]=ode45@pp,[0::40],[ ]; >> [t y]=euler@pp,[0 40],[ ], dt; >> [t y]=rk4@pp,[0 40],[ ], dt;
Συνήθεις Διαφορικές Εξισώσεις Πρόβλημα αρχικών τιμών Πρακτικό: Το σύστημα θηρευτής θήραμα predator-prey Άμεση eplicit/orward Euler a=.;b=0.6;c=0.8;d=0.; =@t,,y ya*b**y; a*-b**y; =@t,,y -c*y+d**y; t=0; =; y=; dt=0.065; 065; tend=40; i=; wile l i ti>=tend break;end; ti+=ti+dt; i+=i+ti,i,yi*dt; t,,y yi+=yi+ti,i,yi*dt; i=i+; end old on plott,, 'r' plott,y,'b' igure plot,y
Runge-Kutta 4 ης τάξης a=.;b=0.6;c=0.8;d=0.; =@t,,y a*-b**y; =@t,,y -c*y+d**y; t=0; =; y=; dt=0.065; tend=40; i=; wile i ti>=tend break;end; ti+=ti+dt; ti+dt; k=ti,i,yi ; ky=ti,i,yi ; k=ti+/*dt,i+/*k*dt *d,yi+/*ky*dt *d ; ky=ti+/*dt,i+/*k*dt,yi+/*ky*dt ; k=ti+/*dt,i+/*k*dt,yi+/*ky*dt ; ky=ti+/*dt,i+/*k*dt,y,yi+/*ky*dt y ; k4=ti+ dt,i+ k*dt,yi+ ky*dt ; k4y=ti+ dt,i+ k*dt,yi+ ky*dt ; i+=i+/6*k + *k + *k +k4*dt; yi+=yi+/6*ky + *ky + *ky + k4y*dt; i=i+; end old on plott,,'r' plott,y,'b' igure plot,y
Σύστημα Γραμμικών Διαφορικών Εξισώσεων ης τάξης Π.Α.Τ. y 0 = y 0 = 0 έχει ακριβή λύση :y = e -t -e -000t, y = - e -t + e -000t και άρα τείνει σε μεγάλους χρόνους στην μόνιμη κατάσταση y =0, y =0 λόγω των αρνητικών εκθετών e -t και e -000t. Οι εκθέτες προέρχονται από τις ιδιοτιμές του πίνακα των συντελεστών λ =-, λ =-000 A 998-999 998 999 eiga Ευστάθεια Μόνιμης Κατάστασης λ και λ <0 Αριθμητική Ευστάθεια Forward Euler d Κατά αντιστοιχία με τη συνθήκη 0 σε μία Δ.Ε. dy y y ss Κατά αντιστοιχία με τη συνθήκη σε μία Δ.Ε Στο άνω παράδειγμα Δt για orward Εuler </000 άρα μεγαλύτερο υπολογιστικό κόστος λ << λ δηλώνει άκαμπτο σύστημα
Ανάλυση μη Γραμμικών Συστημάτων y 0 = y,0 y 0 = y,0 Εύρεση Μόνιμων Καταστάσεων y,y =0 και y,y =0 ==> y,ss, y,ss i Τοπική Ευστάθεια Μόνιμων Καταστάσεων J Σχηματισμός Ιακωβιανού πίνακα J Υπολογισμός Ιακωβιανού πίνακα Jσε κάθε Μ.Κ. y,ss y,ss Εύρεση Ιδιοτιμών του J λ λ, λ και λ <0 τότε y,ss y,ss ευσταθής Μ.Κ., y y y y y, ss, y,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
παράδειγμα: Εύρεση Μόνιμων Καταστάσεων y,y =0 και y,y =0 ==> Μ.Κ. : y =-, y =- και Μ.Κ.: y =, y = Σχηματισμός Ιακωβιανού πίνακα J J y y y y 0 y Υπολογισμός Ιακωβιανού πίνακα Jσε κάθε Μ.Κ. y,ss y,ss - Εύρεση Ιδιοτιμών του J λ λ, Μ.Κ. : y =-, y =- J -,- 0 λ =- και λ =- Μ.Κ. είναι ευσταθές σημείο Μ.Κ. : y =, y = J, 0 λ =- και λ = Μ.Κ. είναι ασταθής σέλλα
Επίλυση διαφορικών εξισώσεων Πρόβλημα Οριακών Τιμών
Επίλυση μίας συνήθους ης τάξης Δ.Ε. Πρόβλημα Συνοριακών Τιμών Μέθοδος πεπερασμένων διαφορών. Διαμέριση ανεξάρτητης μεταβλητής Δ =L0/n L-0/n- 0 Diriclet y0=a yl=b Δ Δ ή Neumann y 0=a yl=b n L. Επιλογή σχήματος πεπερασμένων διαφορών. Αντικατάσταση στη Δ.Ε. y y y = y y y y y y =,y =,,n- n- εξισώσεις, n αγνώστους
4. Οριακές συνθήκες y =y =a y n =y n =b y 0 y 5. Επίλυση συστήματος αλγεβρικών εξισώσεων y n =b a y 0 =y -a Δ y =a y y y =,y y n =b y n =b y y y0 y y y =,y =,y 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 boundary conditions or T and Tn in 00.00000000 8.660 8.85 99.746 6.46 400.0000 Diriclet boundary conditions or T and Tn
>> edit myscript.m clear =0.05; Tin=00; To=00; Tend=400; rod_len=0; Μέθοδος πεπερασμένων διαφορών Πρακτικό: Κατανομή θερμοκρασίας σε ράβδο κατασκευή του συστήματος εξισώσεων με script n=6; delta=rod_len/n-; ala=+*delta^; ; bita=*tin*delta^; or i=:n- %Compute te coeicient matri ai,i-=-;, ai,i=alpa; ai,i+=-; %Compute te rigt and side bi=bita; % rigt and side assembly end %Impose boundary conditions % Diriclet boundary conditions or T and Tn A,:=0;A,=; An,:=0;An,n=; n=; [T 0 =T -a Δ] ] b=to; bn=tend; % Neumann boundary condition dt/d=0=deriv %A,:=0;A,=ala;A,=-; %dtd=0; %b=bita-*delta*deriv; T T T T T 0 in T T T T n =400 in Tcalc=A\b