Παράδειγμα #3 ΡΙΖΕΣ ΕΞΙΣΩΣΕΩΝ ΕΠΙΜΕΛΕΙΑ: ΓΙΑΝΝΗΣ ΛΥΧΝΑΡΟΠΟΥΛΟΣ

Σχετικά έγγραφα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ - ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ, 3 Ο ΕΞΑΜΗΝΟ, ΔΙΔΑΣΚΩΝ: Δρ Ιωάννης Αθ.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ - ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ, 3 Ο ΕΞΑΜΗΝΟ, ΔΙΔΑΣΚΩΝ: Δρ Ιωάννης Αθ.

ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ, 3 Ο ΕΞΑΜΗΝΟ, ΔΙΔΑΣΚΩΝ: Δρ Ιωάννης Αθ. Σταυράκης

5269: Υπολογιστικές Μέθοδοι για Μηχανικούς. Εύρεση Ριζών.

i. Επιλύστε με απαλοιφή Gauss μερικής οδήγησης το σύστημα:

ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ, , 3 ο ΕΞΑΜΗΝΟ ΑΠΑΝΤΗΣΕΙΣ ΕΡΓΑΣΙΑΣ #1: ΑΡΙΘΜΗΤΙΚΗ ΚΙΝΗΤΗΣ ΥΠΟ ΙΑΣΤΟΛΗΣ ΚΑΙ ΡΙΖΕΣ ΕΞΙΣΩΣΕΩΝ ΕΠΙΜΕΛΕΙΑ: Σ.

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ - ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ, 3 Ο ΕΞΑΜΗΝΟ, ΔΙΔΑΣΚΩΝ: Δρ Ιωάννης Αθ.

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

Παράδειγμα #1 ΑΡΙΘΜΗΤΙΚΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ ΕΠΙΜΕΛΕΙΑ: Ι. Λυχναρόπουλος

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 4)

Αριθμητική Ανάλυση και Εφαρμογές

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Άσκηση 1. Α. Υπολογίστε χωρίς να εκτελέσετε κώδικα FORTRAN τα παρακάτω: Ποιά είναι η τελική τιμή του Z στα παρακάτω κομμάτια κώδικα FORTRAN:

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Παράδειγμα #5 EΠΙΛΥΣΗ ΜΗ ΓΡΑΜΜΙΚΩΝ ΑΛΓΕΒΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΜΕΘΟΔΟ NEWTON ΕΠΙΜΕΛΕΙΑ: Ν. Βασιλειάδης. ( k ) ( k)

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ

ΜΕΜ251 Αριθμητική Ανάλυση

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 6)

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 5)

Oι εντολές COMMON και PARAMETER

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Άσκηση εφαρμογής της μεθόδου Newton Raphson

την κεντρώα έκφραση πεπερασμένων διαφορών 2 ης τάξης και για τη παράγωγο f την ανάδρομη έκφραση πεπερασμένων διαφορών 2 ης τάξης xxx

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

Σχολή Μηχανολόγων Μηχανικών ΕΜΠ 4 ο Εξάμηνο ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ. Πρώτη Ενότητα Αριθμητική Επίλυση Μη-Γραμμικών Εξισώσεων

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Αριθμητική Λύση Μη Γραμμικών Εξισώσεων Η ΜΕΘΟ ΟΣ ΤΗΣ ΙΧΟΤΟΜΙΣΗΣ 01/25/05 ΜΜΕ 203 ΙΑΛ 2 1

Παράδειγμα #2 ΑΡΙΘΜΗΤΙΚΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ ΚΑΙ ΡΙΖΕΣ ΕΞΙΣΩΣΕΩΝ. ΕΠΙΜΕΛΕΙΑ: Σ. Βαρούτης

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

Παράδειγμα #4 EΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΑΛΓΕΒΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΜΕΘΟΔΟΥΣ ΕΠΙΜΕΛΕΙΑ: Ν. Βασιλειάδης

Μέθοδοι πολυδιάστατης ελαχιστοποίησης

f x και τέσσερα ζευγάρια σημείων

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ιαφάνειες παρουσίασης #6

Non Linear Equations (2)

ΘΕΜΑ 2ο. Άσκηση εφαρµογής της µεθόδου Newton Raphson

Επαναληπτικές μέθοδοι

Κεφ. 7: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών

Κεφάλαιο 5ο: Εντολές Επανάληψης

ΜΕΜ251 Αριθμητική Ανάλυση

Α. Η γραφική παράσταση της συνάρτησης 2. f(x) = α x 2 + β x + γ, α 0. f (x) x. Παράδειγμα. Περιοδικό ΕΥΚΛΕΙΔΗΣ Β Ε.Μ.Ε.

ΜΕΜ251 Αριθμητική Ανάλυση

Κεφ. 6Β: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών

f στον κόμβο i ενός πλέγματος ( i = 1, 2,,N

Κεφ. 2: Επίλυση συστημάτων αλγεβρικών εξισώσεων. 2.1 Επίλυση απλών εξισώσεων

1η Οµάδα Ασκήσεων. ΑΣΚΗΣΗ 1 (Θεωρία)

( ) ( ) ( ) ( ) ενώ η εξίσωση της παραβολής είναι η

1η Οµάδα Ασκήσεων. ΑΣΚΗΣΗ 1 (Θεωρία)

ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ, 5 Ο ΕΞΑΜΗΝΟ, ΠΕΡΙΕΧΟΜΕΝΑ ΠΑΡΑΔΟΣΕΩΝ. Κεφ. 1: Εισαγωγή (διάρκεια: 0.5 εβδομάδες)

πεπερασμένη ή Η αναλυτική λύση της διαφορικής εξίσωσης δίνεται με τη βοήθεια του Mathematica: DSolve u'' r 1 u' r 1, u 1 0, u' 0 0,u r,r

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

T = 425 K P = 1, 10, 20, 30, 40 atm A = , B = , a = , b = , c =

Κεφ. 2: Επίλυση συστημάτων εξισώσεων. 2.1 Επίλυση εξισώσεων

T = 425 K P = 1, 10, 20, 30, 40 atm A = , B = , a = , b = , c =

ΛΟΓΙΣΜΟΣ ΕΝΟΤΗΤΑ 10: ΕΥΡΕΣΗ ΤΟΠΙΚΩΝ ΑΚΡΟΤΑΤΩΝ

n sin 1 n. 2 n n+1 6 n. = 1. = 1 2, = 13 4.

Οι ασκήσεις βασίζονται στο αξιόλογο φυλλάδιο του Μαθηματικού Μιλτ. Παπαγρηγοράκη, από τις σημειώσεις του για το 4ο Γενικό Λύκειο Χανίων [ <

15 εκεµβρίου εκεµβρίου / 64

Κεφ. 2: Επίλυση συστημάτων αλγεβρικών εξισώσεων. 2.1 Επίλυση απλών εξισώσεων

Κεφάλαιο 2. Πραγματικές ρίζες μη γραμμικών συναρτήσεων

Αξιοποίηση Η/Υ και Πληροφορικής στην Μηχανική

ΚΕΦΑΛΑΙΟ 3ο: ΔΙΑΦΟΡΙΚΟΣ ΛΟΓΙΣΜΟΣ ΕΝΟΤΗΤΑ 3: ΕΦΑΠΤΟΜΕΝΗ [Κεφάλαιο 2.1: Πρόβλημα εφαπτομένης του σχολικού βιβλίου]. ΠΑΡΑΔΕΙΓΜΑΤΑ ΘΕΜΑ Β

ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ, , 5 Ο ΕΞΑΜΗΝΟ ΔΙΔΑΣΚΩΝ: Δ. Βαλουγεώργης Απαντήσεις: ΠΡΟΟΔΟΣ 1, Επιμέλεια λύσεων: Γιώργος Τάτσιος

Εισαγωγή στον Προγραµµατισµό. Ανάλυση (ή Επιστηµονικοί Υπολογισµοί)

x από το κεντρικό σημείο i: Ξεκινάμε από το ανάπτυγμα Taylor στην x κατεύθυνση για απόσταση i j. Υπολογίζουμε το άθροισμα:

Αριθµητική Ανάλυση. ιδάσκοντες: Τµήµα Α ( Αρτιοι) : Καθηγητής Ν. Μισυρλής, Τµήµα Β (Περιττοί) : Επίκ. Καθηγητής Φ.Τζαφέρης. 25 Μαΐου 2010 ΕΚΠΑ

8 FORTRAN 77/90/95/2003

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ «ΠΛΗΡΟΦΟΡΙΚΗ» ΜΑΘΗΜΑΤΙΚΑ Ι (ΘΕ ΠΛΗ 12) ΕΡΓΑΣΙΑ 4

ΛΤΕΙ ΣΩΝ ΑΚΗΕΩΝ ΜΕ ΣΟΝ ΟΡΙΜΟ ΣΗ ΠΑΡΑΓΩΓΟΤ

Αριθμητική Ανάλυση και Εφαρμογές

Β ΜΕΡΟΣ: ΕΦΑΡΜΟΓΗ ΤΟΥ MATLAB ΣΤΗΝ ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ

Ιστοσελίδα : Εργαστήριο 3 Απαντήσεις. Επίλυση Μη Γραμμικών Εξισώσεων και Συστημάτων

ΘΕΩΡΗΜΑ ROLLE. τέτοιο ώστε. στο οποίο η εφαπτομένη είναι παράλληλη στον άξονα χχ. της γραφικής παράστασης της f x με. Κατηγορίες Ασκήσεων

17. Εισαγωγή σε αριθμητικές μεθόδους για μηχανικούς και αλγορίθμους

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

ΜΑΣ 371: Αριθμητική Ανάλυση ΙI ΑΣΚΗΣΕΙΣ. 1. Να βρεθεί το πολυώνυμο Lagrange για τα σημεία (0, 1), (1, 2) και (4, 2).

(6,5 μονάδες) Θέμα 1 ο. Τμήμα Πολιτικών Μηχανικών Σχολή Τεχνολογικών Εφαρμογών Διεθνές Πανεπιστήμιο Ελλάδος ΟΝΟΜΑΤΕΠΩΝΥΜΟ

Κεφάλαιο 3 ΠΑΡΑΓΩΓΟΣ. 3.1 Η έννοια της παραγώγου. y = f(x) f(x 0 ), = f(x 0 + x) f(x 0 )

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ, 2004, 3 Ο ΕΞΑΜΗΝΟ ΕΡΓΑΣΙΑ #5: ΑΡΙΘΜΗΤΙΚΗ ΟΛΟΚΛΗΡΩΣΗ

Κοιλότητα. Διαφορικός Λογισμός μιας μεταβλητής Ι

Επιμέλεια απαντήσεων: Ιωάννης Λυχναρόπουλος

2.1 Αριθμητική επίλυση εξισώσεων

Συστήµατα Μη-Γραµµικών Εξισώσεων Μέθοδος Newton-Raphson

1 Σύντομη επανάληψη βασικών εννοιών

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 5: Μαθηματικές εφαρμογές

3 η ΕΝΟΤΗΤΑ ΜΗ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ ΚΡΙΤΗΡΙΟΥ

y 1 (x) f(x) W (y 1, y 2 )(x) dx,

ΠΑΝΕΛΛΗΝΙΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΓΕΝΙΚΩΝ ΛΥΚΕΙΩΝ. f ( x) 0 0 2x 0 x 0

Εφαρμοσμένα Μαθηματικά ΙΙ 7ο Σετ Ασκήσεων (Λύσεις) Ορίζουσες Επιμέλεια: Ι. Λυχναρόπουλος

Εισαγωγή στην Αριθμητική Ανάλυση

Αριθµητική Ανάλυση. Ενότητα 5 Προσέγγιση Συναρτήσεων. Ν. Μ. Μισυρλής. Τµήµα Πληροφορικής και Τηλεπικοινωνιών,

Πρόλογος Εισαγωγή στη δεύτερη έκδοση Εισαγωγή... 11

Transcript:

Παράδειγμα # ΡΙΖΕΣ ΕΞΙΣΩΣΕΩΝ ΕΠΙΜΕΛΕΙΑ: ΓΙΑΝΝΗΣ ΛΥΧΝΑΡΟΠΟΥΛΟΣ ) Να βρεθεί µία πραγµατική ρίζα της εξίσωσης, x xx µε τις µεθόδους α) της διχοτόµησης β) της γραµµικής παρεµβολής γ) των διαδοχικών επαναλήψεων δ) Newton και ε) να εξετασθεί αν ο αλγόριθµος ( n ) ( ) ( ) x ( ) x n F( x n ) βελτιώνει το ρυθµό σύγκλισης. Να βρεθεί η τιµή του ω που οδηγεί στον ελάχιστο αριθµό επαναλήψεων. Σχετικό σφάλµα 0.0%. Απάντηση: Αρχικά κάνουμε τη γραφική παράσταση της συνάρτησης για να βρούμε στο περίπου την τιμή της ρίζας. Με τη χρήση της Mathematica παίρνουμε το παρακάτω διάγραμμα: Plot[x+x^x-,{x,0.,4},AxesOrigin->{0,0}] 50 5-5 4-50 -75 - Και μεγενθύνοντας την περιοχή.5 4 παίρνουμε: Plot[x+x^x-,{x,.5,4}] 50 5 75 50 5.5.6.7.8.9 Άρα η ρίζα είναι κοντά στο.6 Με τη βοήθεια της συνάρτησης FindRoot (η οποία βρίσκει την αριθμητική τιμή της ρίζας χρησιμοποιώντας τον αλγόριθμο Newton) παίρνουμε: FindRoot[x+x^x-,{x,.5}] {x.588}

Αρ. Ανάλυση: Εργασία # Α) Μέθοδος Διχοτόμησης Το πρόγραμμα σε Fortran είναι το παρακάτω: program bisection doubleprecision xl,xr,rel,xold,xm,err integer i,found,maxi! Η συνάρτηση που μας ενδιαφέρει F(x) = x + x**x - print*, ' Enter xl:' read*, xl print*, ' Enter xr:' read*, xr print*, ' Enter desired relative error % :' read*, rel print*, ' Enter the maximum number of iterations:' read*, maxi err=. i= found=0 xold=xl! Αυθαίρετα do while (i/=maxi.and. found==0.and. err>rel) xm=(xl+xr)/ prod=f(x)*f(xm) print*, i,xl,xm,xr,f(xl),f(xm),f(xr) if (f(xm)==0) then found= print*, 'The root found is:',xm print*,'the number of iteration is:',i else if (prod<0) then xr=xm else xl=xm end if if (xm/=0.) then err = abs((xm - xold)/xm) *. endif print*, err end if xold=xm i=i+ end do

Αρ. Ανάλυση: Εργασία # if (err<rel) then print*, 'The root found is:',xm print*, 'The percentage relative error =',err print*,'the number of iteration is:',i- elseif (err>=rel.and. found==0) then print*, 'The root is not reached within the error limit after the prescribed number of iterations.' print*, 'The approximate root =',xm print*, 'The percentage relative error =',err end if end Το οποίο για το αρχικό διάστημα (, 4) και σχετικό σφάλμα 0.0% δίνει τα παρακάτω αποτελέσματα n xl xm xr f(xl) f(xm) f(xr) err.0 0.50 4. -70. -6.88 60. 4.857485 74.5 0.75 4. -6.88 45.85758 60. 6.6666666666 6667.5 0.650.75-6.88 0.598 45.85758.44875860 6897 4.5 0.565.650-6.88-4.0474 0.598.754859649 8 5.565 0.5975.650-4.0474.79 0.598 0.8695657 904 6.565 0.57850.5975-4.0474-0.6975.79 0.46687 0744 7.5785 0.585975.5975-0.6975.04.79 0.786497 4777 8.5785 0.58050.585975-0.6975 0.6687.04 0.0905540 894 9.5785 0.58785.58050-0.6975-0.64684 0.6687 5.45557704 0987E- 0.5878 5.58054687 5.58050-0.64684-4.857644E- 0 0.6687.7704859 585E-.5805468 75.5854968 750.58050-4.857644E- 0 5.9057545E- 0 0.6687.66567 750E-.5805468 75.589888 5.5854968 750-4.857644E- 0 5.4868E- 0 5.905754 5E-0 6.87097799 7886E- Άρα τελικά ο αλγόριθμος συγκλίνει στη ρίζα:.5898885 με σχετικό σφάλμα 6.870977997886E-% μετά από επαναλήψεις

Αρ. Ανάλυση: Εργασία # Β) Γραμμική Παρεμβολή Το πρόγραμμα είναι το ίδιο με το προηγούμενο. Το μόνο που αλλάζει είναι ο υπολογισμός του xm o οποίος γίνεται: xm= xl - (F(xl) * (xr - xl)/(f(xr) - F(xl))) n xl xm xr f(xl) f(xm) f(xr) err.0 0.04478 608696 4. -70. -44.78699 60. 9.0565789 47.04478 608696.456487 7997 4. -44.78699 -.8059 60. 4.405609667 4.456487 7997.568699 9578 4. -.8059 -.476 60..995659077 9 4.5686999 578.5579444 5578 4. -.476-5.08 60. 0.878504 5 5.55794445 578.57454 8640965 4. -5.08 -.696 60. 0.75765495 6 6.574548 640965.577069 6947 4. -.696-0.986 60. 0.598788866 69 7.5770696 947.5794909 46469 4. -0.986-0.94458 60. 6.7804047 894E- 8.57949094 6469.580598 454590 4. -0.94458-0.6649 60..87597744 70E- 9.5805984 54590.5809554 50459 4. -0.6649-7.04466E- 0 60..68907486 076E- 0.5809554 50459.5897 8705 4. -7.04466E- 0 -.98E- 0 60. 5.487980670 95E- Άρα τελικά ο αλγόριθμος συγκλίνει στη ρίζα:.58978705 με σχετικό σφάλμα 5.48798067095E-% μετά από 0 επαναλήψεις Γ) Διαδοχικές Επαναλήψεις Από την () παίρνουμε διαδοχικά: x x x xx x xln x ln( x) xln xln( x) ln( x) x ln x Άρα θα χρησιμοποιήσουμε τον επαναληπτικό τύπο: ln( x ) x ln( x ) 4

Αρ. Ανάλυση: Εργασία # Το πρόγραμμα σε Fortran είναι το παρακάτω: program Simple_Iterations doubleprecision F,Der,x,x0,xold,xnew,rel,err integer maxi,i! Function F(x) x=f(x) F(x) = log(-x)/log(x)! First Derivative of Function F(x) Der(x)=-(Log( - x)/(x*log(x)**)) - /(( - x)*log(x)) print*, 'Enter initial guess x0:' read*, x0 print*, ' Enter desired relative error % :' read*, rel print*, ' Enter the maximum number of iterations:' read*, maxi print*, 'i','x' err =. print*, 0, x0, F(x0),Der(x0),err i = xold=x0 do while ((i/=maxi).and.(err>=rel)) xnew = F(xold) if (xnew/=0.) then err = abs((xnew - xold)/xnew) *. endif print*, i,xnew,f(xnew),der(xnew),err xold = xnew i = i + end do print*,'---------------------------------------------- --------' if (err<rel) then print*, 'The root found is:',xold,' With % relative error: ',err print*,'the number of iteration performed before achieving acceptable error limit is:',i - 5

Αρ. Ανάλυση: Εργασία # else print*, 'The root is not reached within the error limit after the prescribed number of iterations.' print*, 'The approximate root =',xold print*, 'The percentage relative error =',err endif print*,'---------------------------------------------- --------' stop end Τρέχοντας το πρόγραμμα και δίνοντας σαν x 0 =.5, Σχετικό σφάλμα = 0.0 και μέγιστο πλήθος επαναλήψεων = παίρνουμε: n x (n) f(x (n) ) f (x (n) ) err 0.50.6475790566799-0.84067998480..6475790566799.59980487607-0.7558684890598 4.04575777888.59980487607.6659805-0.88784480.040898.6659805.5489757098545-0.7694448877.558057997 4.5489757098545.607549748-0.8060584550.0768979474 5.607549748.5609658959675-0.77757760550.68880 6.5609658959675.59747764409-0.8069708080869.97094669976 7.59747764409.56856480567-0.7897709989.049885095 8.56856480567.59469860-0.799689996785 0.85748809 9.59469860.57644507889-0.78698584049 0.67908645 0.57644507889.5876779094-0.796555045059 0.508688989984.5876779094.576470569-0.78846804755 0.46507976.576470569.585649404-0.79485955498 0.850940099.585649404.5780698-0.7897507666740 0.55048496 4.5780698.587766788807-0.79788967 0.99666095060 5.587766788807.579956578604-0.79058896909 0.5786779476 6.579956578604.58849746487-0.795794 0.598509 7.58849746487.58888444-0.795994448 9.906995664E- 8.58888444.585909756-0.7970460647 7.8547695E- 9.585909756.58049609080997-0.7944547480 6.4057679E- 0.58049609080997.5889979-0.7944455 4.99668757E-.5889979.5807864458994-0.79657540647.8979449858997E-.5807864458994.586658677-0.7978078808.08807640959E-.586658677.5809685746775-0.79787969755.445690948E- 4.5809685746775.58579966-0.797498997870.97077457598E- 5.58579966.5808880747-0.79864077874.58886846809E- 6.5808880747.5847476-0.790589585.5075698676E- 7.5847476.5854504754-0.79954897047 9.685908888580E- Άρα τελικά ο αλγόριθμος συγκλίνει στη ρίζα:.5847476 9.685908888580E-% μετά από 7 επαναλήψεις με σχετικό σφάλμα 6

Αρ. Ανάλυση: Εργασία # Με τα παρακάτω βήματα στην Μathematica παίρνουμε γραφικά τον τρόπο σύγκλισης της μεθόδου των διαδοχικών επαναλήψεων: Log x gx_ : Logx data=nestlist[g,.5, 0]; data=flatten[table[{data[[i]],data[[i]]},{i,length[dat a]}]]; data=partition[data,,]; data[[,]]=0;p=graphics[line[data]]; Plot[{x,g[x]},{x,.4,.8}].8.7.6.5 Show[{%,p}].8.7.6.5.4..5.6.7.8.5.6.7.8 Δ) Μέθοδος Newton program Newton doubleprecision F,DER,x,x0,xnew,rel,err,xold integer maxi,i!function F(x) F(x)=0 F(x) = x**x + x -! First Derivative of Function F(x) DER(x) = + x**x*( + Log(x)) 7

Αρ. Ανάλυση: Εργασία # print*, 'Enter initial guess x0:' read*, x0 print*, ' Enter desired relative error % :' read*, rel print*, ' Enter the maximum number of iterations:' read*, maxi err =. i = xold=x0 print*, 0,xold,F(xold),DER(xold),err do while ((i/=maxi).and.(err>=rel).and.(der(xold)/=0.)) xnew = xold - (F(xold)/DER(xold)) if (xnew/=0.) then err = abs((xnew - xold)/xnew) *. endif print*, i,xnew,f(xnew),der(xnew),err xold = xnew i = i + end do if ((err<rel).and.(der(xold)/=0.)) then print*, 'The root within the prescribed error limit is:',xold print*, 'The percentage relative error =',err print*,'the number of iteration performed before achieving' print*,'acceptable error limit is:',i - elseif((err>rel).and.(der(xold)/=0.)) then print*, 'The root is not reached within the error limit after prescribed number of iteration.' print*, 'The approximate root =',xold print*, 'The percentage relative error =',err elseif(der(xold)==0.) then print*, 'Newton''s method fails...derivative equal to zero.' endif end 8

Αρ. Ανάλυση: Εργασία # n x (n) f(x (n) ) f (x (n) ) err 0.50-6.8897706 8.69886904..589644457.868056980 4.87686654.497058758566.58587070.85795444E- 0.46565979988 0.699878997.5875.87574479746E-6 0.4905059.0546564878E- Άρα τελικά ο αλγόριθμος συγκλίνει στη ρίζα:.5875 με σχετικό σφάλμα.0546564878e- μετά από επαναλήψεις Ε) Μέθοδος απλών επαναλήψεων με παράμετρο χαλάρωσης Από τη θεωρία γνωρίζουμε πως το βέλτιστο w δίνεται από τον τύπο: w f '( x) Το υπολογίζουμε για x = x 0. (Μπορούμε βέβαια να το υπολογίζουμε σε κάθε επανάληψη, αν κρίνεται σκόπιμο) Το αντίστοιχο πρόγραμμα σε Fortran είναι το ακόλουθο: program Simple_Iterations_with_Relaxation doubleprecision F,Der,x,x0,xold,xnew,rel,err,w integer maxi,i! Function F(x) x=f(x) F(x) = log(-x)/log(x)! First Derivative of Function F(x) Der(x)=-(Log( - x)/(x*log(x)**)) - /(( - x)*log(x)) print*, 'Enter initial guess x0:' read*, x0 print*, ' Enter desired relative error % :' read*, rel print*, ' Enter the maximum number of iterations:' read*, maxi w=/(-der(x0)) print*,'w = ',w err =. print*, 0, x0,f(x0),der(x0),err i = xold=x0 9

Αρ. Ανάλυση: Εργασία # do while ((i/=maxi).and.(err>=rel)) xnew =(-w)*xold+w*f(xold) if (xnew/=0.) then err = abs((xnew - xold)/xnew) *. endif print*, i,xnew,f(xnew),der(xnew),err xold = xnew i = i + end do if (err<rel) then print*, 'The root found is:',xold,' With % relative error: ',err print*,'the number of iteration performed before achieving acceptable error limit is:',i - else print*, 'The root is not reached within the error limit after the prescribed number of iterations.' print*, 'The approximate root =',xold print*, 'The percentage relative error =',err endif end Tο οποίο δίνει για x 0 =.5 και σχετικό σφάλμα=0.0% w = 0.54498884098 n x (n) f(x (n) ) f (x (n) ) err 0.50.6475790566799-0.84067998480..58094985557.58098599-0.796806655.996407574.58470909.58977579-0.790749048847.97664884669E-.5874897577.5875707058-0.79586 7.685860756E-4 Άρα τελικά ο αλγόριθμος συγκλίνει στη ρίζα:.5874897577 με σχετικό σφάλμα 7.685860756E-4% μετά από επαναλήψεις Συνοψίζοντας τα αποτελέσματα έχουμε τον παρακάτω πίνακα: Μέθοδος Επαναλήψεις Διχοτόμηση Γραμμική Παρεμβολή 0 Διαδοχικές Επαναλήψεις 7 Newton Διαδοχικές Επαναλήψεις με χαλάρωση 0

Αρ. Ανάλυση: Εργασία # ) Να βρεθούν µε επαναληπτική µέθοδο και µε ακρίβεια τεσσάρων σηµαντικών ψηφίων οι πρώτες 5 θετικές ρίζες της εξίσωσης: h xtan( x), x0 g όπου g=9.8067, h=5m και ω=rad/sec. ικαιολογείστε την επιλογή σας ως προς την µέθοδο που θα εφαρµόστε και βρείτε το ρυθµό σύγκλισης της µεθόδου. Απάντηση: Δημιουργούμε τη γραφική παράσταση της συνάρτησης στη Mathematica και παίρνουμε: f[x_]:=x Tan[x]-4 5 /9.8067; Plot[f[x],{x,0,0}] 50 50-50 5 0 5 0 - -50 Θα χρησιμοποιήσουμε τη μέθοδο Newton γιατί είναι μία γρήγορη, ως προς τη σύγκλιση, μέθοδος επίλυσης εξισώσεων. Θα πρέπει όμως η αρχική προσέγγιση της ρίζας να είναι κοντά στην πραγματική. Φυσικά θα πρέπει να ικανοποιείται και το κριτήριο σύγκλισης: f ''( x) f '( x) Επειδή ζητείται ακρίβεια τεσσάρων σηµαντικών ψηφίων θα πρέπει να έχουμε σχετικό σφάλμα μικρότερο του 0.0 ή 0.0%. Έχουμε λοιπόν: Πρώτη ρίζα Ξεκινάμε με αρχική προσέγγιση το x 0 = n x (n) f(x (n) ) f ' (x (n) ) 0..096776 89.086 6.087978 48 4.087657 7059-0.48040568 4.98965 4546966 9.8094797858E 7.696-98578.7095087546E 6.88754-7776.858866490906E 6.8077555-6 409.455666870E 6.8077466-0 66584 f''(x) f'(x).758090546.08764677086 88.00506470 78.0047886804 499.0047759 70 err. 8.809455087.557904549809.6697668099659E-.96545896654E-5

Αρ. Ανάλυση: Εργασία # Η ρίζα βρέθηκε σε 4 επαναλήψεις και είναι η:.0876577059 με σχετικό σφάλμα.96545896654e-5 f ''( x) Σημείωση: Παρατηρούμε ότι αν και, εντούτοις έχουμε σύγκλιση και f '( x) μάλιστα γρήγορη!! Δεύτερη ρίζα Ξεκινάμε με αρχική προσέγγιση το x 0 = n x (n) f(x (n) ) f ' (x (n) ) 0..84548575 09.688950 59.6570658 49 4.658477 595 5.658078 4 -.46706664440.98477 5.40945079 7.46978874 674 0.6595684987 5.60578686 7 05.74995450 5.54454454 5E- 778.979755 5.488069 6E-6 8455 5.54484607 5.4880556 6E-0 8498 f''(x) f'(x) 0.05555049 5 0.9869894 6 0.7775984488 7 0.74666897599 4 0.745549559487 6 0.74554908 Err..985699757 4.455804796 0.890470.979466799 E- 9.84494075458 E-6 Τρίτη ρίζα Ξεκινάμε με αρχική προσέγγιση το x 0 =5.5 n x (n) f(x (n) ) f ' (x (n) ) 0 5.50 6.5488664 477 6.605746 8709 6.589708 644 4 6.58584647 7885 f''(x) f'(x) -7.554965 9.955947775405 0.89545597 04 -.67775 6.508440489 0.04058 6 0.055986557976 7.76754066779 0.469685787 8.5098687584 7.57496508469 0.44987504695 0E- 87.6866049467665 7.558459856 0.446646764 0E-7 0 err..068075695665 5.86590854 0.4048866907659 5.056796670 E- Η ρίζα βρέθηκε σε 4 επαναλήψεις και είναι η: 6.585846477885 με σχετικό σφάλμα 5.056796670E-

Αρ. Ανάλυση: Εργασία # Τέταρτη ρίζα Ξεκινάμε με αρχική προσέγγιση το x 0 =9 n x (n) f(x (n) ) f ' (x (n) ) 0 9. 9.5884796 45 9.69780 49 9.6498 850-6.06970957 0.8898944 5447-0.4589050686 0.0556 076 5.978668675 0.80560 E- 995.05899667950 0.7685698 E-6 640 f''(x) f'(x) 0.56059909446 9 0.64704866 8 0.09577595485 89 0.09947905 7 err. 6.4476686 0.475784789664 5.99974879668 E- Η ρίζα βρέθηκε σε επαναλήψεις και είναι η: 9.6498850 με σχετικό σφάλμα 5.99974879668E- Πέμπτη ρίζα Ξεκινάμε με αρχική προσέγγιση το x 0 = n x (n) f(x (n) ) f ' (x (n) ) 0..59608 907.77878 06.75868 6709 4.7584580 786-9.6697479565 6.595457 8685 -.6679484.675569 67.7477845509.8409567 E- 46.04585456684.408 E-5 864 7.459664578550.98580 E-0 765 f''(x) f'(x) 0.5749468 7645 0.090778904 088 0.84795594 67 0.59550 89056 0.595864 0660 err. 4.747998056.080504794.4795660950 E-.685857489 E-5 Η ρίζα βρέθηκε σε 4 επαναλήψεις και είναι η:.7584580786 με σχετικό σφάλμα.685857489e-5 Συνοψίζοντας έχουμε τις 5 πρώτες θετικές ρίζες της δοθείσας εξίσωσης:.0876576.6580784 6.585846477885 9.6498850.7584580786

Αρ. Ανάλυση: Εργασία # Για τον ρυθμό σύγκλισης της πρώτης ρίζας κάνοντας το διάγραμμα του σχετικού σφάλματος ανά επανάληψη παρατηρούμε από την κλήση του γραφήματος ότι έχουμε τετραγωνική (τουλάχιστον) σύγκλιση: a={8.809455087,.557904549809,.6697668099659 0^-,.96545896654 0^-5}; ListPlot[a,PlotStyle{Thickness[0.0],RGBColor[,0,0]},Plot JoinedTrue,PlotRange{0,9}] 8 6 4.5.5.5 4 Κάνοντας Zoom στο διάστημα [0,] για το y έχουμε: ListPlot[a,PlotStyle{Thickness[0.0],RGBColor[,0,0]},Plot JoinedTrue,PlotRange{0,}].75.5.5 0.75 0.5 0.5.5.5.5 4 Κάνοντας επιπλέον Zoom στο διάστημα [0,0.5] για το y έχουμε: ListPlot[a,PlotStyle{Thickness[0.0],RGBColor[,0,0]},Plot JoinedTrue,PlotRange{0,0.5}] Με όμοιο τα τρόπο βρίσκουμε ότι και ο ρυθμός σύγκλισης και στις άλλες ρίζες είναι τετραγωνικός (τουλάχιστον) 4

Αρ. Ανάλυση: Εργασία # Δεύτερη ρίζα: 0 5 0 5 5 4 0.5 0.4 0. 0. 0. 4 5 4 5 4 5 Διάστημα y: [0,] Διάστημα y: [0,5] Διάστημα y: [0,0.5] Τρίτη ρίζα: 0 8 6 4.75.5.5 0.75 0.5 0.5 0.5 0.4 0. 0. 0..5.5.5 4.5.5.5 4.5.5.5 4 Διάστημα y: [0,] Διάστημα y: [0,] Διάστημα y: [0,0.5] Τέταρτη ρίζα: 6 5 4.75.5.5 0.75 0.5 0.5 0.7 0.6 0.5 0.4 0. 0. 0..5.5.5.5.5.5 Διάστημα y: [0,6] Διάστημα y: [0,] Διάστημα y: [0,0.75] Πέμπτη ρίζα: 4.75.5.5 0.75 0.5 0.5 0.5 0. 0.5 0. 0.05.5.5.5 4.5.5.5 4.5.5.5 4 Διάστημα y: [0,5] Διάστημα y: [0,] Διάστημα y: [0,0.5] 5

Αρ. Ανάλυση: Εργασία # ) ίδεται ο επαναληπτικός αλγόριθµος ' ( n ) ( n '' ) ' f x ( ) ( ) f x f x n n x x f x f x Προσδιορίστε τη σύγκλιση της µεθόδου. Απάντηση: Αρχικά θα αποδείξουμε τον τύπο και στη συνέχεια θα προσδιορίσουμε τη σύγκλισή του. Απόδειξη τύπου Θα βασιστούμε στο ανάπτυγμα Taylor γύρω από το σημείο x 0 ( x x0 ) f( x) f( x0) ( xx0) f '( x0) f ''( x0)... ()! Έστω ξ μια αναλυτική ρίζα της εξίσωσης και ˆx η αντίστοιχη αριθμητική ρίζα τότε αν σ είναι το σφάλμα θα έχουμε: ξ = ˆx + σ () Αναπτύσσοντας το f(ξ) σε σειρά Taylor γύρω από το σημείο ˆx έχουμε: ( xˆ ) f( ) f( xˆ) ( xˆ) f '( xˆ)! f ''( xˆ)... () Από () και () παίρνουμε: f( ) f( xˆ) f '( xˆ) f ''( xˆ)...! (4) Επειδή η ξ είναι λύση της f(x)=0 θα την επαληθεύει. Άρα: f(ξ) = 0 (5) Κρατούμε από την (4) τους όρους μέχρι δεύτερης τάξης και παίρνουμε: f( ) f( xˆ) f '( xˆ) f ''( xˆ) 0! f ''( xˆ ) f '( xˆ) f( xˆ) 0 (6) Λύνοντας την δευτεροβάθμια εξίσωση (6) ως προς σ παίρνουμε δύο ρίζες από τις οποίες κρατάμε την πιο μικρή δηλ: ˆ ˆ ˆ ˆ f '( x) [ f '( x)] f ''( x) f( x) (7) f ''( xˆ ) Από την (7) μετά από πράξεις παίρνουμε διαδοχικά: 6

Αρ. Ανάλυση: Εργασία # ˆ ˆ ˆ ˆ ˆ ˆ ˆ f '( xˆ) [ f '( x)] f ''( x) f( x) f '( xˆ) f '( x) [ f '( x)] f ''( x) f( x) f ''( xˆ) f ''( xˆ) f ''( xˆ) f '( xˆ) f ''( xˆ) f '( xˆ) [ f '( xˆ)] f ''( xˆ) f( xˆ) f '( xˆ) [ f '( xˆ)] f ''( xˆ) f( xˆ) f ''( xˆ) f '( xˆ) f ''( xˆ ) f '( xˆ ) f '( xˆ) f( xˆ) f ''( xˆ) f ''( xˆ ) f '( xˆ ) Στον τελευταίο τύπο επειδή το f(x) είναι μικρό μπορούμε να διώξουμε την τετραγωνική ρίζα αν χρησιμοποιήσουμε το ανάπτυγμα Taylor για τη συνάρτηση vz ( ) z γύρω από το σημείο 0, οπότε έχουμε κρατώντας μέχρι τους όρους δευτέρας τάξης τον παρακάτω τύπο: v ''(0) vz ( ) v(0) v'(0) z z... 0 z z... /! 0 4( 0) z z vz ( ) 8 (9) (8) Στην (8) προσεγγίζουμε την ποσότητα: έχουμε: f ( xˆ) f ''( xˆ) f '( xˆ ) με τον τύπο (9), οπότε fxf ( ˆ) ''( xˆ) fxf ( ˆ) ''( xˆ) f'( xˆ) f( xˆ) f''( xˆ) f'( xˆ) f'( xˆ ) f'( xˆ ) f''() xˆ f'( xˆ ) f''() xˆ 8 f'( xˆ) f( xˆ) f''( xˆ) f( xf ˆ) '( xf ˆ) ''( xˆ) fx ( ˆ) f'( xˆ) f''( xˆ) 4 f''( xˆ ) f xˆ f xˆ f'( xˆ) f''( xˆ) f'( xˆ) f''( xˆ) fx () ˆ f''() xˆ 4 '( ) '( ) ˆ fx () ˆ f''() xˆ ˆ f'( x) fx () f'( x) ˆ Σε όλους τους παραπάνω υπολογισμούς έχουμε υποθέσει ότι f '( xˆ ) 0 και f ''( xˆ ) 0 f( xˆ ) f ( xˆ) f ''( xˆ) Άρα από την () παίρνουμε: xˆ απ όπου προκύπτει ο f '( xˆ ) f '( xˆ ) επαναληπτικός τύπος: (0) 7

Αρ. Ανάλυση: Εργασία # x ' ( n ) ( n '' ) ' f x f x f x x f x f x () Σύγκλιση: Πρέπει να βρούμε τον τρόπο με τον οποίο μεταδίδεται το σφάλμα από επανάληψη σε επανάληψη: x f f x f '' x Θέτουμε: gx ( ) x f ' x f ' x Οπότε o τύπος () γίνεται: x gx ( ) () ( ) ( ) ( ) Τότε n n x g( x n ) (4) Επειδή η ξ είναι ρίζα της f(x) θα επαληθεύει τη σχέση (). Άρα ξ=g(ξ) (5) Υποθέτουμε ότι το σημείο x (n) βρίσκεται κοντά στην αναλυτική ρίζα ξ της εξίσωσης f(x) = 0. Τότε αναπτύσσοντας την g(x (n) ) σε σειρά Taylor γύρω από το σημείο ξ και λαμβάνοντας υπόψη τις (4) και (5) έχουμε: Δουλεύοντας με το Mathematica βρίσκουμε τις παραγώγους g (ξ), g (ξ) και g (ξ), λαμβάνοντας υπόψη ότι f(ξ)=0. () ( x ) ( x ) gx ( ) g( ) ( x ) g'( ) g''( ) g'''( )...!! ( ) ( ) g'( ) g''( ) g'''( )... 6 ( ) ( ) g'( ) g''( ) g'''( )... 6 ( ) ( ) g'( ) g''( ) g '''( )... 6 (6) Αρχικά ορίζουμε την g(x): gx_ : x fx f'x fx f''x f'x Οπότε η εντολή: g'[x] //FullSimplify δίνει την πρώτη παράγωγο της g[x]: fx f x f x f x f x 4 8

Αρ. Ανάλυση: Εργασία # Αντίστοιχα η δεύτερη παράγωγος είναι η: fx fx f x f x f x 9fx f x f x f x f x 6f x fx f 4 x f x 5 Και η τρίτη η: f x 660 fx f x 4 f x 5 f x7fx f xf x f xf x 4 6f x 4fxf 4 x fxf x 4f x fxf x 4fxf xf 4 x fxf x 4f xf xfxf 5 x Θέτουμε f[ξ]=0 και ζητάμε την g [ξ] η οποία είναι 0. Όμοια η g [ξ] είναι και αυτή 0, ενώ η g [ξ] είναι: f f f f η οποία γενικώς είναι διάφορη του μηδενός. Άρα από την (6) κρατώντας τους όρους μέχρι τρίτης τάξης παίρνουμε: ( ) ( ) g g g 6 g '''( ) ( ) 6 '( ) ''( ) '''( ) Άρα ο αλγόριθμος δίνει σύγκλιση τουλάχιστον ης τάξης (Αν g (ξ)=0 τότε μπορούμε να πάρουμε και μεγαλύτερη τάξη). (7) 9

Αρ. Ανάλυση: Εργασία # 4) Να βρεθούν µε τις µεθόδους Newton και Muller οι ρίζες της f( x) x 5x 7x 0 Σε περίπτωση διπλής ρίζας να εξεταστεί η σύγκλιση της µεθόδου Newton και να εφαρµοστούν εναλλακτικοί αλγόριθµοι. Αρχικά δημιουργούμε τη γραφική παράσταση της συνάρτησης με τη βοήθεια της Mathematica fx_ : x 5x 7x Plotfx, x,, 4, AxesOrigin 0, 0-4 - - - Στη συνέχεια προσπαθούμε να λύσουμε την εξίσωση: Solve[f[x]==0,x] {{x},{x},{x}} Μέθοδος Newton Για x 0 = 0.5 και σχετικό σφάλμα = 0.0 έχουμε: n x (n) f(x (n) ) f ' (x (n) ) err 0 0.5-0.65.75. 0.77777777-0.690458855.404958677686.50 0.8559766784-4.4505459489E- 0.6860848688865 5.06405 0.9566987669 -.47796754E- 0.40767497 7.540787887 4 0.96540849099 -.989944685E- 0.5568460947790.79764999090 5 0.98090645-7.6866589075E-4 7.7487084446E-.94467 6 0.9904065507 -.849590766986E-4.865069555E- 0.959585790887 7 0.995975586-4.649607996706E-5.907656557E- 0.480850495 8 0.997599979850 -.606777757E-5 9.645890460954E- 0.4070679407 9 0.998795776088954 -.956768604E-6 4.84609866895E- 0.04866974 0 0.9999770698754-7.57495490908E-7.40605577947E- 6.096070604E- 0.9996988084565 -.8460897485E-7.05095688666E-.09965597E- 0.999849975707-4.56858604E-8 6.049704848586E-4.50607789585E- 0.99994695 -.455588856E-8.0488466045E-4 7.5064674888895E- 0

Αρ. Ανάλυση: Εργασία # Παρατηρούμε ότι το σχετικό σφάλμα σε κάθε επανάληψη είναι περίπου το μισό της προηγούμενης! Αυτό δείχνει ότι η σύγκλιση είναι πρώτης τάξης και όχι δευτέρας όπως θα περιμέναμε. Άρα πρέπει η ρίζα 0.99994695 να είναι πολλαπλή. Από την θεωρία γνωρίζουμε ότι σε ρίζα πολλαπλότητας m ο τύπος του Newton έχει ρυθμό σύγκλισης α= -/m Οπότε ½=-/m => /m=/ => m=. Άρα η ρίζα 0.99994695 είναι διπλή. Για x 0 = 4 και σχετικό σφάλμα = 0.0 έχουμε: n x (n) f(x (n) ) f ' (x (n) ) err 0 4. 9. 5.0..40.099999999999 7.67999999999999 7.6470588594.0 0.440999999999999 4.80 9.67749548870.86956579.5085767880447E- 4.069790604949.04680809485 4.74640799.985854507808E-4 4.05974049 0.8759896568 5.055706.849584845798E-8 4.4456499.48784068476E- Άρα η ρίζα είναι η:.055706 Μέθοδος Muller Το αντίστοιχο πρόγραμμα σε Fortran είναι: program Muller doubleprecision F,DER,x,xini,xnew,rel,err integer maxi,i!function 'F(x)=0' F(x) = x**-5*x**+7*x- print*, ' Enter x0:' read*, x0 print*, ' Enter x:' read*, x print*, ' Enter x:' read*, x print*, ' Enter acceptable relative % error, rel:' read*, rel print*, ' Maximum number of iteration, maxi:' read*, maxi err =. i = do while ((i/=maxi).and.(err>rel)) h0=x-x0 h=x-x d0=(f(x)-f(x0))/(x-x0)

Αρ. Ανάλυση: Εργασία # d=(f(x)-f(x))/(x-x) a=(d-d0)/(h+h0) b=a*h+d c=f(x) if (b**-4*a*c>=0) then xnew= (-b-sqrt(b**-4*a*c)+*a*x)/(*a) xnew= (-b+sqrt(b**-4*a*c)+*a*x)/(*a) else print*, 'H f(x) exei migadikes lyseis!' stop end if!κρατούμε τη ρίζα που βρίσκεται πιο κοντά στην x if (abs(xnew-x) <= abs(xnew-x)) then xnew=xnew else xnew=xnew end if if (xnew/=0.) then err = abs((xnew - x)/xnew) *. endif print*, i,h0,h,d0,d,a,b,c,xnew,err x0= x x= x x= xnew i = i + end do if (err<rel) then print*, 'The root within the prescribed error limit is:',xnew print*, 'The percentage relative error =',err print*,'the number of iteration performed before achieving' print*,'acceptable error limit is:',i - elseif(err>rel) then print*, 'The root is not reached within the error limit after prescribed number of iteration.' print*, 'The approximate root =',xnew print*, 'The percentage relative error =',err endif end

Αρ. Ανάλυση: Εργασία # Για αρχικές τιμές x 0 =.5, x =, x =.5 και σχετικό σφάλμα = 0.0% έχουμε: n h 0 H δ 0 δ a b c R Err 0.50 0.5 0 -.5-0.5.0 0 0.50 -.50.4405 550845 7.889670 607 0.50 0.940 6-0.5.99675.94 6.77.6499.9446470 77457 6.9404790 568 0.9406-0.4985 5.99675 5.758.887 648.787 960-0.0955.9970855 78906.74964966 84 4-0.49855 5.4849 8E-0 5.758.77064 4.84 74 4.0 09 -.6764 E-0.99998 57055 9.6569405 687E- 5 5.48498 E-0.896785 7E-0.77064.98880.94 77.999 699-7.0570655 E-05. 5.88099678 854E-4 Άρα η ρίζα είναι η:. Για αρχικές τιμές x 0 =.5, x =, x =.5 και σχετικό σφάλμα = 0.0% έχουμε: n h 0 h δ 0 δ a b c r Err -0.50-0.50 0-0.50 -.5. -.750 0-0.750 0.069995 647084 4.7666794 797-0.50-0.90 4 -.5 -.65-0.9 04 -.079-0.595 6.549857 85484.658098 88-0.904-0.50 8 -.6 5-0.75808 -.08 05-0.6 8-4.48 7E-0.068 078708 8.746 076 4-0.508-8.687 578E-0-0.758 08-0.406984 -.469 90-0.79 87-8.968 8E-0.0706 068089.980897656 74 5-8.687578 E-0-4.089 60E-0-0.4069 84-0.84 -.749 680-0. 884 -.4675 5E-0.8959 08408.8494495 7549 6-4.08960 E-0 -.804 706E-0-0.84-7.0986 E-0 -.895 750 -.6508 7E-0 -.5877 8E-04.47 555 0.65759799 40484 7 -.804706 E-0-6.590 08E-0-7.09 86E-0 -.75578 E-0 -.96 59-9.4466 84E-0 -.07959 E-05.04594 609 0.86448 05 8-6.598 E-0 -.865 678E-0 -.755 78E-0-5.56587 E-0 -.988 -.858 7E-0-4.059 66E-07.69 450488.9646545 6784E- 9 -.865678 E-0 -.9649 E-04-5.5658 7E-0 -.044506 E-0 -.997 5 -.5654 8E-04-7.96 8E-09.54 867 5.74585648 6E- Άρα η ρίζα είναι η:.54867 Εναλλακτικοί τύποι για την προσέγγιση της διπλής ρίζας (x=) Α) f( x ) x x m f '( x ), όπου m= η πολλαπλότητα της ρίζας Το αντίστοιχο πρόγραμμα σε Fortran είναι μικρή τροποποίηση του προγράμματος Newton Για x 0 =0.5 και σχετικό σφάλμα = 0.0% έχουμε:

Αρ. Ανάλυση: Εργασία # n x (n) f(x (n) ) f ' (x (n) ) err 0 0.5-0.65.75. 0 0.954545454545455-4.64575507964E- 0.8806589 47.69047690476 569 0.99954995506-4.996876590E-.9987505 4.4977544840 7 45E- 0.9999999764809-7.7756776096E-.49406779 4.9948789444E- 05 067E-7 4 0.999999999968679-6.6684775099E- 06.58958 407E- 6.06964455084E-6 Άρα η ρίζα είναι η : 0.999999999968679 f( x ) f '( x ) B) x x [ f '( x )] f ( x ) f ''( x ) Το αντίστοιχο πρόγραμμα σε Fortran είναι μικρή τροποποίηση του προγράμματος Newton Για x 0 =0.5 και σχετικό σφάλμα = 0.0% έχουμε: n x (n) f(x (n) ) f ' (x (n) ) err 0 0.5-0.65.75..095686745 -.0544705577E- -0.5494948096 5.886794580.099998779 -.980785440877E- -.5999977E-.884940648 7.99944 -.086446895048E- 05 -.599779444478E- 7.9987986776088E - 4.09648 0.E+ 0-8.7859554660894E- 9.779695996496E -6 Άρα η ρίζα είναι η :.09648 Γ) x ' ( n ) ( n '' ) ' f x f x f x x f x f x Το αντίστοιχο πρόγραμμα σε Fortran είναι μικρή τροποποίηση του προγράμματος Newton 4

Αρ. Ανάλυση: Εργασία # Για x 0 =0.5 και σχετικό σφάλμα = 0.0% έχουμε: n x (n) f(x (n) ) f ' (x (n) ) err 0 0.5-0.65.75. 0 0.79077565-9.4555560794898E- 0.95648478 6.94974 0.98650504547 -.77888649894E- 0.4558946.67679549 4479 0.96889067659074 -.965687988E- 0.7406664 5.85459498 7940 4 0.9884444059 -.780606657E- 4.7476986.95876995974 4 954E- 5 0.9955786789475 -.985880484E-.774984495 0.76706804446 5 504E- 6 0.998407467806-5.54605076064E- 6.6475664805 0.766086957755 6 004E- 7 0.9997707646-7.757688445E-.4997889 0.07778905 7 54E- 8 0.9997664597666 -.09840977E- 7 9.44796065 70E-4.897458466E- 9 0.9999450668 -.54898798696E- 8.506586608 8E-4.4597974759E- 0 0.999967549449 -.5764068786E- 9.845670 86E-4 5.4746680E- Άρα η ρίζα είναι η : 0.999967549449 Συνοψίζοντας ειδικά για τη διπλή ρίζα έχουμε τα εξής: Μέθοδος Αριθμός Επαναλήψεων Απόσταση από την αναλυτική ρίζα Newton 0.75065 Muller 9 0.54867 Εναλλακτική Α 4.09 0 Εναλλακτική Β 4 0.09648 Εναλλακτική Γ 0 0.845 Άρα τα καλύτερα αποτελέσματα έδωσε ο τύπος: συγκεκριμένο x 0!) f( x ) x x m f x (για το '( ) 5