ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ, 005-06, 3 ο ΕΞΑΜΗΝΟ ΑΠΑΝΤΗΣΕΙΣ ΕΡΓΑΣΙΑΣ #: ΑΡΙΘΜΗΤΙΚΗ ΚΙΝΗΤΗΣ ΥΠΟ ΙΑΣΤΟΛΗΣ ΚΑΙ ΡΙΖΕΣ ΕΞΙΣΩΣΕΩΝ ΕΠΙΜΕΛΕΙΑ: Σ. Βαρούτης. Πως ορίζεται και τι σηµαίνει ο όρος lop στους επιστηµονικούς υπολογισµούς. Ο όρος lop (loating point operation) συναντάται αρκετά συχνά στα υπολογιστικά µαθηµατικά και έχει καθιερωθεί ως µονάδα µέτρησης των πράξεων στους αλγορίθµους. Αντιπροσωπεύει τον χρόνο που απαιτείται για την εκτέλεση της πράξης y a + y Οι πράξεις που γίνονται είναι: i. η εύρεση και ανάσυρση των σταθερών α,, y, από την µνήµη του υπολογιστή. ii. ο πολλαπλασιασµός και η πρόσθεση του δεύτερου µέλους. iii. αποθήκευση της νέας τιµής της µεταβλητής y. Έτσι το σχήµα Horner για τον υπολογισµό της τιµής σε ένα σηµείο ενός πολυωνύµου p βαθµού Ν απαιτεί Ν lops. α. Βιβλίο Ν. Μ. Βραχάτη σελ. 67, Άσκηση.4 (4 σηµαντικά ψηφία) -7.0045-7.00-79.830-79.8 73448 7.340 6 3 7 0.765-0.053 9 8 -.667 3
β. Βιβλίο Ν. Μ. Βραχάτη σελ. 67, Άσκηση.5 a) Στρογγυλοποίηση σε 3 σηµαντικά ψηφία: -9397.0045-93900 0.08330 0.0833-0.08765 0.0877 0.06735 0.0674-0.8375005 0.838 b) Στρογγυλοποίηση σε 3 δεκαδικά ψηφία: -9397.0045-9397.004 0.08330 0.083-0.08765-0.088 0.0675 0.067-0.8375005-0.838 γ. Βιβλίο Ν. Μ. Βραχάτη σελ. 68, Άσκηση. ίνεται η συνάρτηση 3. Η ακριβής τιµή είναι 0. 307 ενώ η + προσεγγιστική τιµή µε στρογγυλοποίηση σε τρία σηµαντικά ψηφία είναι 0.3. Σφάλµα αποκοπής: ε α g ( 0. 307) ( 0. 307) 0. 3 0. 84. 59 0 Σφάλµα διάδοσης: ε δ g ( ) g ( 0. 3) ( 0. 307) 0. 77538 0. 3. 84 0 Παραχθέν σφάλµα: ε π g ( ) g( ) ( 0. 3) ( 0. 3) 0. 3 0. 77538. 84 0 Ολικό σφάλµα: ε 0 ε π + ε δ + ε α. 84 0. 84 0 +. 59 0. 59 0
3. Οι ρίζες της αλγεβρικής εξίσωσης + 6. 0 + 0 είναι 0. 06073 και 6.08390. Στην παραπάνω εξίσωση b >> 4ac και ο υπολογισµός του προϋποθέτει την αφαίρεση ανάµεσα σε περίπου ίσους αριθµούς. Έστω ότι οι υπολογισµοί γίνονται σε Η/Υ που αποθηκεύονται 4 σηµαντικά ψηφία. Να βρεθούν τα και και να υπολογισθεί το σχετικό σφάλµα. Στην συνέχεια να υπολογισθούν πιο ακριβή αποτελέσµατα εφαρµόζοντας τον αναγωγικό τύπο b a ( b 4ac) ( b b 4ac ) Οι ακριβείς λύσεις της εξίσωσης είναι: 0 06073 και 6 08390.. Οι ρίζες του πολυωνύµου δίνονται από την σχέση ( 6. 0) 4 6. 0 ± ( 6. 0) b ± D 6. 0 ±, a δηλαδή προκύπτει ότι 0 05 και 6 09.... Τα σχετικά σφάλµατα για τις δύο προσεγγιστικές ρίζες αντίστοιχα είναι: 0. 06073 + 0. 05 ε 6. 87 0 0. 06073 και 6. 08390 + 6. 09 ε 9. 85 0 6. 08390 5 4 6. 0 ± 6. 07 Εποµένως, ενώ οι πράξεις είναι ακρίβειας 4 σηµαντικών ψηφίων το παραγόµενο σχετικό σφάλµα είναι µόλις σηµαντικών ψηφίων και οφείλεται στην διάδοση του σφάλµατος κατά την πράξη της πρόσθεσης αφαίρεσης. Αντίθετα, κάνοντας χρήση του εναλλακτικού τύπου για την ρίζα προκύπτει 6. 0 ( 6. 0) b a mod. ενώ το σχετικό σφάλµα 0 06 4 ( b 4ac) ( b b 4ac ) mod ε. 7 0 0. 06073 0. 06073 + 0. 06 3
4. Η εξίσωση 3 + 4 0 0 έχει µια ρίζα στο διάστηµα [,]. Να υπολογισθεί η ρίζα της εξίσωσης µε ακρίβεια 7 σηµαντικών ψηφίων εφαρµόζοντας τις µεθόδους: i. ιχοτόµηση ii. iii. iv. γραµµικής παρεµβολής απλής αντικατάστασης µε αναγωγικούς τύπους 3 4 + 0 4 / 3 ( 0 ) / 0 4 + / 0 3 + 4 0 3 + 8 Newton v. τέµνουσας. Η εξίσωση 3 + 4 0 0 έχει µια ρίζα στο διάστηµα [, ]. Η γραφική της παράσταση απεικονίζεται στο Σχήµα. 50 40 30 0 0-0 0.5.5.5 3 Σχήµα : Γραφική παράσταση πολυωνύµου στο [,]. 4
i) Μέθοδος διχοτόµησης Κώδικας: program NumAnal_4i implicit none real(8)::,,3,,3,d,tol integer::maiter,i print,'give let and right limits' read,, tol.0e-09 maiter000 3(+)/ dabs(-) do i,maiter 3+4()-0 333+4(3)-0 i (3<0) then 3 3(+3)/ else i (3>0) then 3 3(+3)/ else print,3 eit end i dabs(-) write(,00)i,,3, i (abs(.-/3)<tol.and.abs(.-/)<tol) eit end do 00 ormat(i,,'',f0.8,3,'3',f0.8,3,'',f0.8) end Αποτελέσµατα: Αριθµός ιχοτοµήσεων X X X 3 0.00000000.50000000.00000000.00000000.5000000.50000000.5000000.37500000.50000000 3.5000000.350000.37500000 4.350000.34375000.37500000 5.34375000.35937500.37500000 6.35937500.3678750.37500000 7.35937500.36385.3678750 8.36385.3653438.3678750 9.36385.364578.3653438 0.364578.36474609.3653438.36474609.3649903.3653438.3649903.36530.3653438 3.36530.3657334.3653438 5
4.3657334.3650386.3653438 5.3650386.3659.3653438 6.3659.365675.3653438 7.365675.3653056.3653438 8.365675.365865.3653056 9.365865.36596.3653056 0.36596.3653008.3653056.36596.365985.3653008.365985.365996.3653008 3.365996.365300.3653008 4.365996.365999.365300 5.365999.365300.365300 6.365300.365300.365300 7.365300.365300.365300 8.365300.365300.365300 9.365300.365300.365300 30.365300.365300.365300 Σύγκλιση σε 7 σηµαντικά µετά από 0 διχοτοµήσεις ii) Μέθοδος γραµµικής παρεµβολής Κώδικας: program NumAnal_4ii implicit none real(8)::,,3,,,3,d,tol integer::i,maiter print,'give let and right limits' read,, maiter000 tol.0e-09 do i,maiter 3+4()-0 3+4()-0 3-(((-))/(-)) dabs(-3) 333+4(3)-0 i (3<0) then 3 write(,00)i,,3, else i (3>0) then write(,00)i,,3, 3 else print,3 eit end i i (abs(.-/3)<tol.and.abs(.-/)<tol) then eit endi end do 00 ormat(i,,'',f0.8,3,'3',f0.8,3,'',f0.8) end program NumAnal_4ii 6
Αποτελέσµατα: Αριθµός γραµµικών παρεµβολών X X X 3.00000000.635789.00000000.635789.3388784.00000000 3.3388784.35854634.00000000 4.35854634.36354744.00000000 5.36354744.36480703.00000000 6.36480703.36537.00000000 7.36537.3650330.00000000 8.3650330.365330.00000000 9.365330.365833.00000000 0.365833.365959.00000000.365959.36599.00000000.36599.365999.00000000 3.365999.365300.00000000 4.365300.365300.00000000 5.365300.365300.00000000 6.365300.365300.00000000 7.365300.365300.00000000 8.365300.365300.00000000 9.365300.365300.00000000 0.365300.365300.00000000.365300.365300.00000000.365300.365300.00000000 3.365300.365300.00000000 4.365300.365300.00000000 5.365300.365300.00000000 6.365300.365300.00000000 Σύγκλιση σε 7 σηµαντικά µετά από 0 διχοτοµήσεις iii) Απλή αντικατάσταση µε αναγωγικούς τύπους Για την σύγκλιση της µεθόδου ( n+ ) F πρέπει ' F <. Επιλέγουµε σαν αρχικό σηµείο το ( 0).5. Εποµένως: A. Αν + 3 4 + 0 F συνεπάγεται ' (. 5 ) 7. 75 > F. Αυτό σηµαίνει ότι δεν αναµένεται η µέθοδος να συγκλίνει στο διάστηµα [,]. 0 / B. Αν 4 F συνεπάγεται ' (. 5). 7 > F. Αυτό σηµαίνει ότι δεν αναµένεται η µέθοδος να συγκλίνει στο διάστηµα [,]. 3 / C. Αν ( 0 ) F συνεπάγεται ' (. 5) 0. 6556 < F. Ο αναγωγικός τύπος αναµένεται να συγκλίνει στο διάστηµα [,]. 7
0 4 + / D. Αν F συνεπάγεται ' (. 5) 0. 075 < F. Ο αναγωγικός τύπος αναµένεται να συγκλίνει στο διάστηµα [,]. 3 + 4 0 3 + 8 E. Αν F συνεπάγεται ' (. 5) 0. 48 < F. Ο αναγωγικός τύπος αναµένεται να συγκλίνει στο διάστηµα [,]. Αποτέλεσµα για περιπτώσεις C, D, E είναι: C D E.4436.359040 3.36608 4.36597 5.36548 6.36584 7.36530 8.365300.5000000.869538 3.405408 4.3454584 5.375703 6.360094 7.3678470 8.3638870 9.365967 0.364878.36540.365378 3.36577 4.365059 5.36544 6.36537 7.365333 8.36584 9.365309 0.36596.36530.4545455.3689004 3.365366 4.365300 5.365300 Σηµειώνεται ότι ο απαιτούµενος αριθµός επαναλήψεων ώστε να επιτευχθεί σύγκλιση σε 7 σηµαντικά ψηφία είναι διαφορετικός για κάθε αναγωγικό τύπο της µεθόδου και εξαρτάται άµεσα από το κριτήριο σύγκλισης. Επίσης σηµειώνεται ότι έχουµε επιλέξει για λόγους συντοµίας να εξετάσουµε το κριτήριο σύγκλισης µόνο για την αρχική τιµή. Εκτίµηση του κριτηρίου και στις επόµενες τιµές του πιθανόν να αιτιολογήσει το γεγονός ότι ο αναγωγικός τύπος D απαιτεί περισσότερες επαναλήψεις από τον αναγωγικό τύπο E. iv) Μέθοδος Newton Εξετάσουµε την σύγκλιση του σχήµατος και υπολογίζουµε το λόγο '' ' σε ένα ενδιάµεσο σηµείο του διαστήµατος [,] π.χ. για.5. Τότε θα παρατηρήσουµε ότι 8
'' (. 5) ' (. 5) 0. 453 <. Αυτό σηµαίνει ότι η µέθοδος Newton αναµένεται να συγκλίνει στο διάστηµα [,]. Κώδικας: program NumAnal_4iv implicit none real::old,new,tol,l integer::iter,maiter parameter(tol.0e-6) print,'give initial value between <0<' read,old maiter00 do iter,maiter newold-f(old)/df(old) i(abs(.-(old/new)).le.tol)then goto 00 endi oldnew enddo 00 print,'the root is ',new print,'in',iter,' iterations' contains real unction F() result(y) real, intent(in):: Y(3)+4.()-0. end unction F real unction DF() result(y) real, intent(in):: Y3.()+8. end unction DF end program NumAnal_4iv Αποτελέσµατα: Αριθµός επαναλήψεων Ρίζα εξίσωσης 0.50000000.37333333.365603 3.365996 4.365996 Σύγκλιση σε 7 σηµαντικά µετά από 3 επαναλήψεις!!! iv) Μέθοδος τέµνουσας (τροποποιηµένη Newton) Κώδικας: program NumAnal_4v 9
implicit none real(8)::0,,,d,tol integer::i,maiter maiter000 tol.0e-9 print,'give 0 and ' read,0, do i,maiter -((3+4-0)/(((3+4-0)& -(03+40-0))/(-0))) dabs(-) write(,00)i, i (abs(.-/)<tol) eit 0 end do 00 ormat(i,4,'',f0.8) End Αποτελέσµατα: Αριθµός επαναλήψεων Ρίζα εξίσωσης.635789.3388784 3.3666639 4.36590 5.3653000 6.365300 7.365300 Σύγκλιση σε 7 σηµαντικά µετά από 4 επαναλήψεις. 4 3 5. Βρείτε αριθµητικά τις ρίζες του πολυωνύµου P 0 + 35 50 4 4 + Οι ρίζες του συγκεκριµένου πολυωνύµου είναι οι,, 3 3 και 4 4, όπως προκύπτει από το Σχήµα. 5.5 0 7.5 5.5-4 6 Σχήµα : Γραφική παράσταση πολυωνύµου. 0
Θα εφαρµόσουµε την µέθοδο Newton, ( n+ ) ( n ) ' ' 3 4 30 + 70 50., όπου P και 4 Κώδικας: program NumAnal_5 implicit none real::old,new,tol integer::iter,maiter print,'give initial value>0' read,old tol.0e-6 maiter00 do iter,maiter newold-f(old)/df(old) i (abs(.-(old/new)).le.tol)then goto 00 endi oldnew enddo 00 print,'the root is ',new print,'in',iter,' iterations' contains real unction F() result(y) real, intent(in):: Y(4)-0.(3)+35.()-50.+4. end unction F real unction DF() result(y) real, intent(in):: Y4.(3)-30.()+70.-50. end unction DF end program NumAnal_5 ίνοντας διαφορετικές αρχικές συνθήκες µπορούν να προκύψουν οι τέσσερεις παραπάνω ρίζες. Έτσι για κριτήριο τερµατισµού του σχετικού σφάλµατος ( n+ ) 0 6 προκύπτουν: Εάν 00.5 τότε προκύπτει η ρίζα. 0 Εάν. 6 0. 3 τότε προκύπτει η ρίζα. Εάν. 7 0 3. 4 τότε προκύπτει η ρίζα 33. Εάν 3.7 < 00 τότε προκύπτει η ρίζα 44. 0
6α. Βιβλίο Ν. Μ. Βραχάτη σελ. 35, Άσκηση 5.3 Εάν έχουµε τον αριθµό βρίσκοντας την ρίζα της εξίσωσης A, τότε ο αντίστροφος του µπορεί να βρεθεί αριθµητικά A 0, όπου επαναληπτική διαδικασία Newton θα συγκλίνει εφόσον ' και '' 3 είναι ο αντίστροφος. Η A '' '. Αντικαθιστώντας βρίσκουµε ότι θα πρέπει Η ανισότητα ισχύει για < ή >. '' 3 <. ' Προτείνεται να γίνει αριθµητική επαλήθευση του θεωρητικού αποτελέσµατος. <, όπου 6β. Βιβλίο Ν. Μ. Βραχάτη σελ. 35, Άσκηση 5.4 Εάν είναι η αναλυτική ρίζα τάξης m τότε ( m ) ' ( ) 0 και Εάν και σ ( ) 0. η αριθµητική λύση και το απόλυτο σφάλµα µετά από n επαναλήψεις τότε εφαρµόζοντας το ανάπτυγµα Taylor της αναλυτική ρίζα προκύπτει ότι m ( ) ( m ) n ( ) ( m ) γύρω από την m m ( ) ( ) n n m m + ' + + ( ) + n! m! m! για κάποιο ξ n µεταξύ ( ) ( m ) m και. Ανάλογα για την πρώτη παράγωγο προκύπτει ' ξ n!
για κάποιο ξ n µεταξύ ( n+ ) ( ) ' γράφεται στην µορφή: ( ) m ( ) ( m ) ( ) ( m ) και. Συνεπώς η επαναληπτική σχέση Newton ( ξn) n n+ n m! ( n+ ) n m m n! n ( n ) + ( n+ ) ( ) σ σ m m n ( ξn) Καθώς ο αριθµός των επαναλήψεων αυξάνει και η απόσταση ανάµεσα στα σηµεία και ελαττώνεται ο λόγος πολλαπλότητα m, το σφάλµα ( ξn) ( n ) σ + n n τείνει στην µονάδα. Εποµένως για ως προς το σφάλµα σ µεταβάλλεται γραµµικά και όχι τετραγωνικά όπως έχουµε αποδείξει για την περίπτωση m. Αντίθετα εφαρµόζοντας τον αναγωγικό τύπο n+ n m το σφάλµα ' διαδίδεται τουλάχιστον τετραγωνικά από επανάληψη σε επανάληψη αφού εύκολα m ξn αποδεικνύεται ότι σ. m ξ n 7. Επιλύονται επιλεκτικά οι 7α και 7γ: 7α. Η εξίσωση που περιγράφει την παραµόρφωση µιας ελαστικής δοκού που παραλαµβάνει ένα γραµµικά µεταβαλλόµενο φορτίο είναι w0 y 0EIL 5 3 4 ( + L L ) Να βρεθεί το σηµείο µέγιστης παραµόρφωσης και στην συνέχεια η τιµή της (Ε50.000 kn/cm, I30.000 cm 4, L450 cm, w 0.75 kn/cm). Για την εύρεση του σηµείου µέγιστης παραµόρφωσης αρκεί να βρεθούν οι ρίζες που µηδενίζουν την πρώτη παράγωγο της συνάρτησης παραµόρφωσης y. Έτσι 3
y w w 0EIL 0EIL ( 5 L 3 L 4 ) ( 5 4 6L L 4 ) 0 0 + + Οι αναλυτικές λύσεις της διτετράγωνης εξίσωσης είναι 5, ± L και 3, 4 ±L. 5 5 Για ±L η παραµόρφωση είναι y 0 ενώ για ± L η παραµόρφωση είναι 5 y 0. 4 cm. Για την αριθµητική επίλυση χρησιµοποιούµε την µέθοδο Newton. Παραθέτουµε µόνο 0 τις συναρτήσεις που χρησιµοποιούνται διότι το κυρίως πρόγραµµα δίδεται στην Άσκηση 5. Το κριτήριο τερµατισµού είναι ( n+ ) real unction F() result(y) real, intent(in):: Y-5.(4)+6.(L)()-(L4) end unction F real unction DF() result(y) real, intent(in):: Y(-0.)(3)+.(L) end unction DF 6 0. real unction Anal_F() result(y) real, intent(in):: real::w0,e,i parameter(e5.0e+4,i3.0e+4,w0.75) Y(w0/(0EIL))(-5+(L)(3)-(L4)) end unction Anal_F Αποτελέσµατα: Αρχική εκτίµηση Ρίζα Επαναλήψεις Παραµόρφωση 50 0.46 4-0.406-50 -0.46 4 0.406-500 -450 6 0 500 450 6 0 4
7iii. Στη µηχανική ρευστών ο συντελεστής τριβής δίδεται από τη εξίσωση 4log ( Re ) 0. 4 Υπολογίστε τον συντελεστή τριβής και Re300.000. Η επίλυση θα γίνει µε την µέθοδο Newton. Παραθέτουµε µόνο τις συναρτήσεις που χρησιµοποιούνται διότι το κυρίως πρόγραµµα δίδεται στην Άσκηση 5. Το κριτήριο τερµατισµού είναι ( n+ ) 6 0. real unction F() result(y) real, intent(in):: Y / -4Log(Re)+0.4 end unction F real unction DF() result(y) real, intent(in):: Y-(/) - 4/ end unction DF real unction Anal_F() result(y) real, intent(in):: Y0.4 + /Sqrt() -4Log(Sqrt()Re) end unction Anal_F Αποτέλεσµα: Αρχική εκτίµηση Ρίζα Επαναλήψεις 0.0 0.07979 7 5