ΗΥ213 Αριθμητική Ανάλυση Εργαστήριο 7 Οδηγίες για προετοιμασία Διαβάστε και εκτελέστε όλα τα προηγούμενα εργαστήρια. Μελετήστε την θεωρία που αφορά Επαναληπτικές Μεθόδους Επίλυσης Γραμμικών Συστημάτων. Κατά τη διάρκεια του εργαστηρίου Ανοίξτε τον chrome και επισκευτείτε το socrative.com (ROOM: HY213ΤΜΗΜΑ* με λατινικούς χαρακτήρες, ΝΑΜΕ: ΑΕΜ) ΗΥ213ΤΜΗΜΑ5 ΗΥ213ΤΜΗΜΑ1 ΗΥ213ΤΜΗΜΑ2 ΗΥ213ΤΜΗΜΑ3 ΗΥ213ΤΜΗΜΑ4 8:30 10:00 10:00-11:30 11:30 1:00 1:00-2:30 2:30 4:00 Ανοίξτε το αρχείο των γενικών οδηγιών και ακολουθείστε όλα τα βήματα με σωστό τρόπο. Δημιουργείστε αρχείο τύπου diary. Από την ιστοσελίδα του μαθηματος κατεβάστε το σημερινό εργαστήριο (lab07_test.zip). Αφού το κατεβάσετε, το αποθηκεύετε στον προσωπικό σας χώρο στο server, στο γενικό folder του μαθήματος (./CE213/lab07_test) που έχετε δημιουργήσει. Μελετείστε τον ημιτελή κώδικα στα αρχεία και συμπληρώστε τα ώστε να ικανοποιούνται όλες τις απαιτήσεις που γράφονται μέσα σε αυτό σε σχόλια. Αφού περάσετε τη φάση της διόρθωσης των συντακτικών σφαλμάτων και τρέχει ο κώδικάς σας, τρέξτε τα προγράμματα checkandgrade*(aem) στο ίδιο folder με την άσκηση σας και με όρισμα το ΑΕΜ σας. Σαν αποτέλεσμα θα πάρετε στην οθόνη, επιμέρους και τελικό βαθμό στην προσπάθειά σας και ένα κωδικό που θα δηλώσετε στο socrative μαζί με τα αποτελέσματά σας, πριν φύγετε από το εργαστήριο. Κάντε τις απαραίτητες διορθώσεις για να πάρετε σωστά αποτελέσματα και ξανατρέξτε τα checkandgrade* όσες φορές χρειαστεί. Βεβαιωθείτε ότι : - περάσατε στο socrative ότι σας ζητείται και τον κωδικό σας από την κάθε μια checkandgrade. - ανεβάσατε τη σημερινή δουλειά σας στο eclass (βλ. το αρχείο «γενικές οδηγίες».pdf) Άσκηση 1. Τεχνικές οδηγίες Συμπληρώστε τον κώδικα που λείπει. Μην τροποποιησετε συμππληρωμενο κώδικα. Για να βεβαιωθείτε ότι κάνετε σωστά τις πράξεις, δοκιμάστε να τρέξετε την συνάρτηση με αρχικές τιμές δίπλα σε ρίζες, ώστε να παρατηρείτε άμεσα ότι η λύση που υπολογίζετε είναι σωστή. Ωστόσο, η συνάρτηση πρέπει να τρέχει για γενικό και τυχαίο x0. Αφού περάσετε τη φάση της διόρθωσης των συντακτικών σφαλμάτων και τρέχει ο κώδικάς σας, τρέξτε το πρόγραμμα checkandgrade(aem) στο ίδιο folder με την άσκηση σας και με όρισμα το ΑΕΜ σας. Σαν αποτέλεσμα θα πάρετε στην οθόνη, επιμέρους και τελικό βαθμό στην προσπάθειά σας και ένα κωδικό που θα δηλώσετε στο socrative μαζί με τα αποτελέσματά σας, πριν φύγετε από το εργαστήριο. Κάντε τις απαραίτητες διορθώσεις για να πάρετε σωστά αποτελέσματα και ξανατρέξτε το checkandgrade όσες φορές χρειαστεί.
Βεβαιωθείτε ότι περάσατε στο socrative τα τελευταία αποτελέσματα από την συνάρτησή σας και την checkandgrade. Ουσιαστικές οδηγίες Η άσκηση έχει σκοπό να σας βοηθήσει να υλοποιήσετε σωστά τη Newton και να κατανοήσετε τη συμπεριφορά της για τη συνάρτηση f(x) = x 2 sin(x) η οποία έχει απλές και πολλαπλές ρίζες στο διάστημα [-2π, 2π]. Σχεδιάστε την συνάρτηση για να βεβαιωθείτε για το που βρίσκονται οι ρίζες τις. Υλοποιήστε τη συνάρτηση newton με ορίσματα εισαγωγής x0, tol, maxiter (με αυτή τη σειρά). Θα επιστρέφει xstar, fxstar, iter (με αυτή τη σειρά). Στη συνάρτησή σας θα πρέπει να πραγματοποιείτε όλους τους ελέγχους με χρήση των maxiter και tol. Δηλαδή: - Πλήθος επαναλήψεων <= maxiter - Διαφορά διαδοχικών προσεγγίσεων < tol - Τιμή της συνάρτησης στην τελευταία προσέγγιση < tol Οπου χρειαστείτε σύγκριση με 0, χρησιμοποιήστε το tol στη θέση του 0. Περισσότερες οδηγίες στο newton_m. Δοκιμάστε τη συνάρτησή σας χρησιμοποιώντας το main.m, με x0 = 0, 0.5, 2.3, 2.33, 5.0, 5.5 (διαφορετικές τιμές) tol = 1e-10 maxiter = 20 Σχήμα 1. Η γραφική παράσταση της συγκεκριμένης συνάρτησης
Σχήμα 1.1 Αρχική τιμή 5 (μαύρο τετράγωνο), ενδιάμεσες (πράσινα ο) και τελική προσέγγιση της ρίζας (κόκκινο*). x0 = 5 NEWTON: H riza -3.141593 vre8hke se 6 epanalhpseis. Σχήμα 1.2 Αρχική τιμή 0.5 (μαύρο τετράγωνο), ενδιάμεσες (πράσινα ο) και τελική προσέγγιση της ρίζας (κόκκινο*). x0 = 0.5 NEWTON: H riza 0.000330 vre8hke se 17 epanalhpseis.
Άσκηση 2 Τεχνικές οδηγίες Συμπληρώστε τον κώδικα που λείπει. Μην τροποποιησετε συμππληρωμενο κώδικα. Για να βεβαιωθείτε ότι κάνετε σωστά τις πράξεις, δοκιμάστε να τρέξετε την συνάρτηση σας με αρχικές τιμές δίπλα σε ρίζες, ώστε να παρατηρείτε άμεσα ότι η λύση που υπολογίζετε είναι σωστή. Ωστόσο, η συνάρτηση πρέπει να τρέχει για γενικό και τυχαίο x0 (στηλοδιάνυσμα στο Matlab). Αφού περάσετε τη φάση της διόρθωσης των συντακτικών σφαλμάτων και τρέχει ο κώδικάς σας, τρέξτε το πρόγραμμα checkandgrade2(aem) στο ίδιο folder με την άσκηση σας και με όρισμα το ΑΕΜ σας. Σαν αποτέλεσμα θα πάρετε στην οθόνη, επιμέρους και τελικό βαθμό στην προσπάθειά σας και ένα κωδικό που θα δηλώσετε στο socrative μαζί με τα αποτελέσματά σας, πριν φύγετε από το εργαστήριο. Κάντε τις απαραίτητες διορθώσεις για να πάρετε σωστά αποτελέσματα και ξανατρέξτε το checkandgrade2 όσες φορές χρειαστεί. Βεβαιωθείτε ότι περάσατε στο socrative τα τελευταία αποτελέσματα από την συνάρτησή σας και την checkandgrade2. Ουσιαστικές οδηγίες Συμπληρώστε σωστά την newton2.m έτσι ώστε να λύνει το σύστημα των μη γραμμικών εξισώσεων -4x + 2x 2 2y 3 = -1 4x 4 + 4y + 4y 4 = 4 Υλοποιήστε τη συνάρτηση newton2 με ορίσματα εισαγωγής x0, tol, maxiter (με αυτή τη σειρά). Θα επιστρέφει xstar, fxstar, iter (με αυτή τη σειρά). Στη συνάρτησή σας θα πρέπει να πραγματοποιείτε όλους τους ελέγχους με χρήση των maxiter και tol. Δηλαδή: - Πλήθος επαναλήψεων <= maxiter - Διαφορά διαδοχικών προσεγγίσεων < tol - Τιμή της συνάρτησης στην τελευταία προσέγγιση < tol Χρησιμοποιήστε το main2.m για να δοκιμάσετε τη συνάρτησή σας, με αρχική τιμή, μεταξύ άλλων, το [0.5 0.7] το [1.0-0.5] και [1.0-0.2]. Όπου χρειαστείτε σύγκριση με 0, χρησιμοποιήστε το tol στη θέση του 0. Όπου χρειαστείτε νόρμα, χρησιμοπιήστε την Ευκλείδια νόρμα. Τι ρίζες παίρνετε σε κάθε περίπτωση;
Σχήμα 2.0 Οι δυο συναρτήσεις των οποίων θέλουμε να βρούμε τις ρίζες. Αριστερά η συνάρτηση από την 1 η εξίσωση. Δεξιά η συνάρτηση από τη 2 η εξίσωση. Σχήμα 2.1 Ισοϋψείς καμπύλες των συναρτήσεων για τις τιμές - 1 (μπλε), 0 (πράσινο) και 1(κόκκινο). Η τομή των πράσινων καμπύλων υποδεικνύει τις ρίζες του συστήματος. >> [X,Y] = meshgrid(-2:.005:2); >> R = 1-4*X+2*X.*X-2*Y.^3; >> Z = -4 +4*X.^4+4*Y+4*Y.^4; >> contour(x,y,r,[-1 0 1]);hold on; [C,h] = contour(x,y,z,[-1 0 1]); >> set (h, 'ShowText','on','TextStep',get(h,'LevelStep')*1) >> grid
Σχήμα 3. Αρχική τιμή [0.5 0.7] (μαύρο ο*). Ενδιάμεσες (magenta + ). Τελική προσέγγιση με κόκκινο ο*. x0 =[0.5 0.7]'; NEWTON: H riza ( 0.061774 0.724486) vre8hke se 5 epanalhpseis. Σχήμα 4. Αρχική τιμή [1-0.5] (μαύρο ο*). Ενδιάμεσες (magenta + ). Τελική προσέγγιση με κόκκινο ο*. x0 =[1-0.5]'; NEWTON: H riza ( 1.087932-0.789588) vre8hke se 5 epanalhpseis.
Σχήμα 5. Αρχική τιμή [1-0.2] (μαύρο ο*). Ενδιάμεσες (magenta + ). Τελική προσέγγιση με κόκκινο ο*. x0 =[1-0.2]'; NEWTON: H riza ( 169.123505 37.310323) vre8hke se 20 epanalhpseis. (Η τελευταία προσέγγιση έχει απομακρυνθεί τόσο πολύ από την ρίζα που δεν φαίνεται στη γραφική παράσταση.)