Χάρις Ντακόλια (ΕΜΠ) Αριθμητική Ανάλσση Ι και Εργαστήριο Εργαστήριο 1 2 η & 3 η Εβδομάδα Εισαγωγή στις Αριθμητικές Διαδικασίες και στα Σφάλματα
Τι είμαι η Αριθμητική Αμάλυση; Έλαο από ηνπο βαζηθόηεξνπο θιάδνπο ηωλ εθαξκνζκέλωλ καζεκαηηθώλ Σπλώλπκε κε ηα ππνινγηζηηθά καζεκαηηθά
Στόχος Η πξνζεγγηζηηθή επίιπζε καζεκαηηθώλ πξνβιεκάηωλ πνπ ζπλαληώληαη ζε όιεο ηηο επηζηήκεο θαη ηελ ηερλνινγία. Αλαιπηηθή Δπίιπζε Γηαθξηηνπνίεζε Πξνζεγγηζηηθή επίιπζε Σπλερείο / άπεηξεο δηαδηθαζίεο Γηαθξηηέο / πεπεξαζκέλεο δηαδηθαζίεο
Αριθμητική Μέθοδος Τν δηαθξηηό πξόβιεκα πνπ πξνθύπηεη νλνκάδεηαη αρηζκεηηθή κέζοδος Η επίιπζε ηεο απαηηεί κηα πεπεξαζκέλε, ινγηθή ζεηξά θαιώλ νξηζκέλωλ αξηζκεηηθώλ πξάμεωλ θαη ινγηθώλ εθθξάζεωλ. Τν ζύλνιν ηωλ βεκάηωλ απηώλ ιέγεηαη αιγόρηζκος.
Αριθμητική Αμάλυση Θεωξεηηθό Μέξνο Καηαζθεπή αιγνξίζκωλ θαη κειέηεο ηεο αθξίβεηάο ηνπο θαη επζηάζεηάο ηνπο, δειαδή αλάιπζε ηωλ ζθαικάηωλ ηνπο. Πξαθηηθό Μέξνο Υινπνίεζε ηωλ αιγνξίζκωλ κε ηνλ βέιηηζην ηξόπν ή κε έλαλ ηξόπν ζρεδόλ βέιηηζην.
Διαδικασία επίλυσης Φάξηο Νηαθόιηα (ΔΜΠ) Αξηζκεηηθή Αλάιπζε Ι θαη Δξγαζηήξην
Θεωρητική μελέτη Πόζν αθξηβείο είλαη νη παξαπάλω κέζνδνη? Δίλαη επζηαζείο?
Σφάλματα Απόιπην ζθάικα Ε = πραγματικη τιμη προςεγγιςτικη τιμη Σρεηηθό ζθάικα RΕ = E πραγματικη τιμη κε πξαγκαηηθή ηηκή 0 Φάξηο Νηαθόιηα (ΔΜΠ) Αξηζκεηηθή Αλάιπζε Ι θαη Δξγαζηήξην
Σφάλματα Προσεγγιστικός τύπος Απόιπην ζθάικα ε n+1 = x n+1 x n Σρεηηθό ζθάικα κε x n+1 0 re n+1 = x n+1 x n x n+1
Ποια ποσότητα αμτιπροσωπεύει καλύτερα τημ προσέγγισή μας και γιατί;
Συμπέρασμα Τν ζτεηηθό ζθάικα (RE) είλαη θαιύηερος δείθηες αθρίβεηας, ζε ζρέζε κε ην απόιπην ζθάικα (E) γηα ηελ εθηίκεζε κηαο πξνζέγγηζεο.
Ακρίβεια ωο αθρίβεηα (accuracy) ηεο πξνζεγγηζηηθήο δηαδηθαζίαο νξίδεηαη ο αρηζκός όιφλ ηφλ ζεκαληηθώλ υεθίφλ
Επακρίβεια ωο επαθρίβεηα (precision) ορίδεηαη ο αρηζκός ηφλ ζεκαληηθώλ υεθίφλ ζηα οποία ηασηίδοληαη ε πραγκαηηθή ποζόηεηα θαη ε προζέγγηζε.
Ασκήσεις Θέκα Εργαζίας: Προζέγγηζε Τεηραγφληθής Ρίδας
1. Δημιουργήστε έμα φάκελο εργασίας με το όμομα lab1 και αποθηκεύστε τομ στημ Επιφάμεια Εργασίας. 2. Κάμτε εμεργό το φάκελο στο MATLAB.
7. Πληκτρολογήστε τη συμάρτηση και αποθηκεύστε τη με το όμομα mysqrt.m στο φάκελο lab1.
8. Εκτελέστε τημ εμτολή help mysqrt. >> help mysqrt Square root of a scalar, a is assumed to be >= 0. TOL is a convergence tolerance (default EPS). returns also the number of iterations ITER for convergence.
9. Καλέστε τη συμάρτηση mysqrt για μα υπολογίσετε το 65 για τις τιμές της παραμέτρου αμοχής 10 4 και eps.
Στο command window >> [x,iter]=mysqrt(65,1e-4) x = 8.062257748298771e+00 iter = 7 Φάξηο Νηαθόιηα (ΔΜΠ) Αξηζκεηηθή Αλάιπζε Ι θαη Δξγαζηήξην
Στο command window >> [x,iter]=mysqrt(65) x = 8.062257748298549e+00 iter = 9 Φάξηο Νηαθόιηα (ΔΜΠ) Αξηζκεηηθή Αλάιπζε Ι θαη Δξγαζηήξην
10. Τροποποιήστε τη συμάρτηση ώστε μα επιστρέφει σε έμα διάμυσμα κάθε τιμή της προσέγγισης που υπολογίζεται και αποθηκεύστε τη σε έμα αρχείο με το όμομα mysqrt1.m.
function [x,x_vec,iter] = mysqrt1(a,tol) % Square root of a scalar, a is assumed to be >= 0. % TOL is a convergence tolerance (default EPS). % returns also the number of iterations ITER for convergence. if nargin < 2, tol = eps; end x = a; iter = 0; xdiff = inf; while xdiff > tol iter = iter + 1; xold = x; x = (xold + a/xold)/2; x_vec(iter)=x; xdiff = abs(x-xold)/abs(x); if iter > 50 error('not converged after 50 iterations.') break; end end Φάξηο Νηαθόιηα (ΔΜΠ) Αξηζκεηηθή Αλάιπζε Ι θαη Δξγαζηήξην
11. Καιέζηε ηε ζπλάξηεζε mysqrt γηα λα ππνινγίζεηε ην 13 γηα ηηο ηηκέο ηεο παξακέηξνπ αλνρήο 10 4 θαη 10 8.
>> [x,xvec,iter]=mysqrt1(13,1e-4) x = 3.605551275463991e+00 xvec = Columns 1 through 2 7.000000000000000e+00 4.428571428571429e+00 Columns 3 through 4 3.682027649769585e+00 3.606345489465519e+00 Columns 5 through 6 3.605551362917602e+00 3.605551275463991e+00 iter = 6
>> [x,xvec,iter]=mysqrt1(13,1e-8) x = 3.605551275463990e+00 xvec = Columns 1 through 2 7.000000000000000e+00 4.428571428571429e+00 Columns 3 through 4 3.682027649769585e+00 3.606345489465519e+00 Columns 5 through 6 3.605551362917602e+00 3.605551275463991e+00 Column 7 3.605551275463990e+00 iter = 7 Φάξηο Νηαθόιηα (ΔΜΠ) Αξηζκεηηθή Αλάιπζε Ι θαη Δξγαζηήξην
12. Γεκηνπξγήζηε έλα αξρείν εληνιώλ ΜΑΤLΑΒ (script), κε όλνκα runsqrt1.m κε ηηο αθόινπζεο εληνιέο:
clear all; clf; format long e; toler=input('give tolerance :'); xtrue=1.41421356237309505; [x,xs,it]=mysqrt1(2,toler); xerr=abs(xs-xtrue); xabserr=abs(xs-xtrue)./abs(xtrue); acc=-log10(xerr); pre=-log10(xabserr); subplot(2,2,1);plot(xerr); subplot(2,2,2);plot(xabserr); subplot(2,2,3);plot(acc); subplot(2,2,4);plot(pre); Φάξηο Νηαθόιηα (ΔΜΠ) Αξηζκεηηθή Αλάιπζε Ι θαη Δξγαζηήξην
Command Window: >> runsqrt1 Give tolerance : 1e-8 0.09 0.08 0.07 0.06 0.05 0.04 0.03 0.02 0.01 0.07 0.06 0.05 0.04 0.03 0.02 0.01 0 1 1.5 2 2.5 3 3.5 4 4.5 5 0 1 1.5 2 2.5 3 3.5 4 4.5 5 16 14 12 10 8 6 4 2 0 1 1.5 2 2.5 3 3.5 4 4.5 5 16 14 12 10 8 6 4 2 0 1 1.5 2 2.5 3 3.5 4 4.5 5
16. Γεκηνπξγήζηε έλα αξρείν εληνιώλ ΜΑΤLΑΒ (script), κε όλνκα runsqrt2.m, ην νπνίν λα ππνινγίδεη ηελ αθξίβεηα θαη ηελ επαθξίβεηα γηα ηνλ ππνινγηζκό ηνπ 2 γηα ηηο ηηκέο ηεο παξακέηξνπ αλνρήο 10 3 θαη eps θαη λα ηηο εκθαλίδεη ζην ίδην γξάθεκα κε δηαθνξεηηθό είδνο ζεκείωλ (π.ρ. x,+,*,.). Φάξηο Νηαθόιηα (ΔΜΠ) Αξηζκεηηθή Αλάιπζε Ι θαη Δξγαζηήξην
clear all; clf; format long e; xtrue=1.41421356237309505; [x_1,xs_1,it_1]=mysqrt1(2,10^(-3)); xerr_1=abs(xs_1-xtrue); xabserr_1=abs(xs_1-xtrue)./abs(xtrue); acc_1=-log10(xerr_1); pre_1=-log10(xabserr_1); plot(acc_1,'xr'); hold on; plot(pre_1,'+m'); [x_2,xs_2,it_2]=mysqrt1(2,eps); xerr_2=abs(xs_2-xtrue); xabserr_2=abs(xs_2-xtrue)./abs(xtrue); acc_2=-log10(xerr_2); pre_2=-log10(xabserr_2); plot(acc_2,'*b'); hold on; plot(pre_2,'.k'); Φάξηο Νηαθόιηα (ΔΜΠ) Αξηζκεηηθή Αλάιπζε Ι θαη Δξγαζηήξην
Command Window: 16 >> runsqrt2 14 12 10 8 6 4 2 0 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6