Εργασία στην Αριθµητική Ανάλυση Κάντε πέντε (τουλάχιστον) από τις παρακάτω ασκήσεις. Ο βαθµός σας σ αυτές θ αποτελέσει το 0% του τελικού βαθµού σας στο µάθηµα. Όλες οι ασκήσεις (και τα µέρη τους) είναι ισοδύναµα. Η εργασία πρέπει να παραδοθεί το αργότερο στην εξέταση του µαθήµατος (εξεταστική περίοδος Φεβρουαρίου). Το προς παράδοση κείµενο καλό είναι (δεν είναι υποχρεωτικό) να είναι δακτυλογραφηµένο (π.χ. σε Word). Για τις ασκήσεις προγραµµατισµού πρέπει να παραδοθεί ο κώδικας µαζί µε εκτύπωση των αποτελεσµάτων. Μπορείτε, αν θέλετε, να χρησιµοποιήσετε γλώσσα C αντί της Mathematca στις ασκήσεις αυτές.. α) Με τη βοήθεια της µεθόδου απαλοιφής Gauss µε µερική οδήγηση υπολογίστε τον αντίστροφο του πίνακα 0 7 8 7 7 5 6 5 A 8 6 0 9 7 5 9 0 β) Με τη βοήθεια του αποτελέσµατος του (α), υπολογίστε το δείκτη κατάστασης ως προς το -norm, K (A), καθώς και την ορίζουσα του A. Τι έχετε να πείτε για την κατάσταση του πίνακα;. ίνεται το 3 3 σύστηµα γραµµικών εξισώσεων: 3 + 8 + 5, 5 + 3 6, 3 + 3 + 93 α) είξτε ότι οι µέθοδοι Jacob και Gauss-Sedel συγκλίνουν για το σύστηµα αυτό για οποιαδήποτε αρχική προσέγγιση,, της λύσης. β) Ξεκινώντας µε 0 εφαρµόστε τη µέθοδο Gauss-Sedel για να προσεγγίσετε τη λύση,, του παραπάνω συστήµατος. Σταµατήστε στο βήµα k αν οι προσεγγίσεις που παίρνετε στα ( k ) βήµατα k και k ικανοποιούν την < 0. Υπολογίστε άνω φράγµα για το σφάλµα ) (k στο τελευταίο βήµα, k. 3. Για τον παρακάτω πίνακα βρείτε τη µέγιστη (κατ απόλυτη τιµή) ιδιοτιµή και αντίστοιχο ιδιοδιάνυσµα, µε τη βοήθεια της (βελτιωµένης) µεθόδου δυνάµεων: 3 A 0 4 z και σταµατήστε τις επαναλήψεις όταν η διαφορά µεταξύ των προσεγγίσεων της αναζητούµενης ιδιοτιµής σε δύο διαδοχικά βήµατα είναι (κατ απόλυτη τιµή) µικρότερη του 0.05. (Προαιρετικά: Επαληθεύστε ότι η ιδιοτιµή που βρήκατε κείται στην περιοχή που µας δίνει το θεώρηµα του Gerschgorn.) Ξεκινήστε από το διάνυσµα [ ] T 4. ίνεται ο ακόλουθος πίνακας τιµών µιας (συνεχούς) συνάρτησης f : -/ 5/ f() - 0 3 3 /5
α) Βρείτε το πολυώνυµο ου βαθµού που παρεµβάλει την f στα τρία πρώτα σηµεία του πίνακα. β) Βρείτε το πολυώνυµο 3 ου βαθµού που παρεµβάλει την f και στα τέσσερα δοσµένα σηµεία. Ποια µέθοδο θα χρησιµοποιήσετε στα (α) και (β); 5. Υπολογίστε τις ιδιοτιµές του πίνακα της Άσκησης 3 βρίσκοντας τις ρίζες του χαρακτηριστικού του πολυωνύµου. Χρησιµοποιείστε τη µέθοδο Newton-Raphson µε συνθετική διαίρεση (σχήµα Horner). α) Προσεγγίστε την πρώτη ιδιοτιµή ξεκινώντας µε την προσέγγιση ξ 6. Σταµατήστε τις επαναλήψεις µόλις η σχετική διαφορά µεταξύ δύο διαδοχικών προσεγγίσεων γίνει µικρότερη του 0.0. β) Βρείτε κατόπιν και τις άλλες δύο ιδιοτιµές. 6. Να υπολογιστεί το ολοκλήρωµα ( + ) 3 d α) ακριβώς και χρησιµοποιώντας τους κανόνες ολοκλήρωσης (απλοί τύποι): β) ορθογωνίου, γ) τραπεζίου, δ) Smpson, και ε) 3/8. Συγκρίνετε τα αποτελέσµατα που παίρνετε. 7. Η µέθοδος Jacob για επίλυση του n n συστήµατος γραµµικών εξισώσεων A b µπορεί να διατυπωθεί στη µορφή: ( k ) b a a, k,, K (k ) όπου,,, n είναι η προσέγγιση για τον άγνωστο στο βήµα k. Το παρακάτω πρόγραµµα (συνάρτηση) Mathematca υλοποιεί τη διαδικασία αυτή: H Jacob teratve method for solvng the system A.b L Jacob@A_, b_, 0_, TOL_D : Module@8k, n,,, prev, Err, Errors<, H Intalzaton L n Length@0D; prev 0; Table@0, 8n<D; Err TOL; Errors 8<; Whle@Err TOL, H stop when attanng a relatve error less than TOL L Do@H Jacob step L H Delete@D ecludes dagonal entres of A L @@DD Hb@@DD Delete@A@@DD, D.Delete@prev, DL ê A@@, DD, 8,, n< D; H Check whether the procedure has converged L Err VecNorm@ prev, "nf"dê VecNorm@, "nf"d; Errors Append@Errors, 8k, Err<D; H Prepare for the net teraton L prev ; k k+ D; LstPlot@ErrorsD; H Plot evoluton of error sequence L Return@ N@ DDD 0 /5
Σταµατάει όταν η σχετική διαφορά µεταξύ δύο διαδοχικών προσεγγίσεων της λύσης είναι µικρότερη από TOL (όπου χρησιµοποιείται το -norm για να µετρήσουµε διανύσµατα): ( k ) < TOL. Στο τέλος, παριστάνεται γραφικά αυτή η ακολουθία των σχετικών διαφορών και επιστρέφεται η προσέγγιση της λύσης. Η συνάρτηση Delete εφαρµόζεται σε lst (δηλ. διάνυσµα) και εξαιρεί δοσµένο στοιχείο της. Παραπάνω χρησιµοποιείται για να ( δηµιουργήσει το διάνυσµα των, και το διάνυσµα των k ),. Στη συνέχεια a αυτά πολλαπλασιάζονται για να προκύψει το a. ( k ) Το norm διανύσµατος υπολογίζεται µε την εξής συνάρτηση Mathematca (δίνονται οι επιλογές, και ): H vector norms: cases, and nfnty are ncluded L VecNorm@_, p_d : H N@D functon s employed to ensure numercal results L Whch@p "", N@Sum@Abs@@@DDD, 8,, Length@D<DD,p "", N@ Sqrt@. DD,p "nf", N@ Ma@ Abs @ DDDD; Το παραπάνω πρόγραµµα θα εφαρµοζόταν ως εξής στο σύστηµα της Άσκησης : Jacob[{{3,8,},{5,-,},{3,3,9}},{5,-6,},{0,0,0},0^(-)] Η µέθοδος Gauss-Sedel διαφέρει από τη µέθοδο Jacob στο ότι η προσέγγιση για τον άγνωστο στο βήµα k χρησιµοποιεί για τους αγνώστους,, όχι τις προσεγγίσεις που υπολογίστηκαν στο προηγούµενο βήµα, αλλά αυτές που βρέθηκαν στο τρέχον: n ( k ) b a a a, k,, K + Τροποποιείστε το παραπάνω πρόγραµµα Jacob ώστε να υλοποιεί τη µέθοδο Gauss-Sedel. (Πλέον η συνάρτηση Delete δεν επαρκεί για να δηµιουργηθούν οι όροι στα παραπάνω αθροίσµατα. Μπορείτε αντίθετα να χρησιµοποιήσετε τη συνάρτηση Sum για να τα υπολογίσετε.) Ονοµάστε το πρόγραµµά σας GaussSedel. Εκτελέστε και τα δύο προγράµµατα στο σύστηµα της Άσκησης και συγκρίνετε τα αποτελέσµατά τους. 8. Ο παρακάτω αλγόριθµος υπολογίζει στο κάτω τριγωνικό τµήµα ενός ( k + ) ( k + ) πίνακα Q τις διαιρεµένες διαφορές µιας συνάρτησης µε βάση πίνακα τιµών της σε k + δοσµένα σηµεία. ίνεται το διάνυσµα των τετµηµένων, K και το διάνυσµα y των,, k + τεταγµένων y f ( ), y f ( ), yk + f ( k +), που αποτελεί και την πρώτη στήλη του Q. Αρχικά θέτουµε όλα τα στοιχεία του Q ίσα µε το µηδέν. Βήµα : Q, 0,,,, k + Βήµα : Q y,,, k +, Βήµα 3: Για,3, k + Για,3, Q, Q Q, + (k ) 3/5
Το παραπάνω έχει ως αποτέλεσµα να υπολογίζονται στη διαγώνιο του Q οι διαιρεµένες διαφορές όλων των τάξεων της συνάρτησης f στα δοσµένα σηµεία, δηλαδή Q f,, ]. Αυτές µπορούν στη συνέχεια να χρησιµοποιηθούν ως συντελεστές [ στο αντίστοιχο παρεµβολικό πολυώνυµο Newton. Γράψτε πρόγραµµα Mathematca που, δοσµένων των, y, να υπολογίζει και να επιστρέφει τον Q σύµφωνα µε τον παραπάνω αλγόριθµο. Εκτελέστε το πρόγραµµά σας για τα δεδοµένα της Άσκησης 4. 9. Το παρακάτω πρόγραµµα Mathematca υλοποιεί τον αλγόριθµο διχοτόµησης για εύρεση λύσης της εξίσωσης f ( ) 0 σε δοσµένο διάστηµα [α,β]. (* Bsecton method *) Bsecton[f_, _, a_, b_, TOL_] : Module[{k, prev, new, fa, fb, fpr, ak, bk, Err, Errors}, fa f /. -> a; fb f /. -> b; (* Check whether the nterval s acceptable and whether any of ts ends s a root of f *) Whch[ fa*fb > 0, Prnt["Wrong nterval!\n"]; Return[], fa 0, Return[a], fb 0, Return[b] ]; (* Intalzaton *) Errors {}; Err TOL; ak a; bk b; prev (a + b)/; (* Iteraton *) Whle[Err > TOL, (* Iterate untl Err s less than TOL *) fa f /. -> ak; fpr f /. -> prev; If[fpr 0, new prev; Break[]]; (* Root was found *) (* Bsecton step *) If[fa*fpr < 0, bk prev, ak prev]; new (ak + bk)/; Err Abs[new prev]; (* Prepare for net teraton *) k k + ; prev new; ErrorsAppend[Errors,{k,Err}]; ]; LstPlot[Errors]; (* Plot evoluton of errors *) Return[N[new]] (* Return result *) ] (Η έκφραση f/.->0 υπολογίζει την τιµή της στο.) f 0 Να πώς θα το εφαρµόζαµε για να βρούµε ρίζα του πολυωνύµου 3 P( ) 3 6 + 8 στο διάστηµα [0,3], µε ακρίβεια 0 : f[_]^3-3^-6+8 [Shft+Enter] Bsecton[f,,0,3,0^(-)] [Shft+Enter] Τροποποιείστε το παραπάνω πρόγραµµα ώστε να υλοποιεί τη µέθοδο εσφαλµένης θέσης. Ονοµάστε το πρόγραµµά σας RegulaFals. οκιµάστε και τα δύο προγράµµατα στην εξίσωση της Άσκησης 5 και συγκρίνετε τα αποτελέσµατά σας. 4/5
0. Γράψτε συνάρτηση στο Mathematca (ονοµάστε την Smpson) που να υλοποιεί το σύνθετο τύπο ολοκλήρωσης Smpson. Θα δέχεται ως παραµέτρους το διάνυσµα f των τιµών της συνάρτησης και το διάστηµα h. Σε περίπτωση που δίνεται άρτιος αριθµός τιµών, το πρόγραµµα να σταµατάει, µε κατάλληλο µήνυµα προς το χρήστη. οκιµάστε το πρόγραµµά σας για γνωστές σε σας συναρτήσεις και συγκρίνετε τα αποτελέσµατα µε τις γνωστές τιµές των ολοκληρωµάτων. Πειραµατιστείτε αυξάνοντας διαδοχικά το πλήθος των υποδιαστηµάτων (µε σταθερό διάστηµα ολοκλήρωσης). 5/5