THMMY.gr

Μαθήματα Βασικού Κύκλου => Δομημένος Προγραμματισμός => Topic started by: George_RT on May 06, 2015, 22:39:39 pm



Title: [Δομημένος Προγραμματισμός] Άσκηση E (Hμ/νία λήξης :17/05/2015)
Post by: George_RT on May 06, 2015, 22:39:39 pm
Άσκηση Ε

Να γραφεί το πρόγραμμα στο οποίο να ορίζεται η συνάρτηση nroot(…) η οποία, μέσα από μια αναδρομική (recursive)  διαδικασία, υπολογίζει μια πραγματική ρίζα της εξίσωσης f(x)=0 προσεγγίζοντας την με την αναδρομική σχέση  xi+1=xi-f(xi)/f’(xi). Από τη σχέση αυτή παράγεται μία ακολουθία τιμών η οποία, κάτω από ορισμένες προϋποθέσεις, συγκλίνει προς μια πραγματική ρίζα της f(x)=0. Σε διαφορετική περίπτωση η ακολουθία αποκλίνει ή οι τιμές της παλινδρομούν. Ως αρχική τιμή για το x0 δίνεται ένας τυχαίος αριθμός.  

Στο ίδιο πρόγραμμα να οριστεί και η συνάρτηση froot(…) η οποία να υπολογίζει, μέσα από μια αναδρομική (recursive) διαδικασία, μια πραγματική ρίζα της εξίσωσης f(x)=0 προσεγγίζοντας την με την αναδρομική σχέση xi+1 = xi-(xi-xi-1)f(xi)/(f(xi-f(xi-1)). Από τη σχέση αυτή παράγεται μία ακολουθία τιμών η οποία, κάτω από ορισμένες προϋποθέσεις, συγκλίνει προς μια πραγματική ρίζα της f(x)=0. Σε διαφορετική περίπτωση η ακολουθία αποκλίνει ή οι τιμές της παλινδρομούν.

 Και για τις δύο συναρτήσεις η διαδικασία σταματά όταν θα ισχύει η σχέση |xi+1-xi |<e, όπου e ένας πολύ μικρός θετικός αριθμός που δηλώνει την ακρίβεια της μεθόδου. Ως αρχικές τιμές για το  x0 και  το x1 δίνονται τυχαίοι αριθμοί.

Για να συγκριθούν οι ταχύτητες σύγκλησης προς τη ρίζα των δύο συναρτήσεων, η συνάρτηση main του προγράμματος να τις καλεί για να υπολογίσουν, η κάθε μια χωριστά, τη ρίζα μιας εξίσωσης. Η main να τυπώνει τη ρίζα και τον αριθμό των επαναλήψεων που έκανε η κάθε συνάρτηση για να την προσεγγίσει με την ίδια ακρίβεια e. Η main να τυπώνει ακόμη και τα κατάλληλα μηνύματα στις περιπτώσεις που, για τη συγκεκριμένη εξίσωση, δε μπορεί να εφαρμοστεί ο αλγόριθμός ή η αντίστοιχη ακολουθία δε συγκλείνει προς τη ρίζα.

 

Βοηθητικές παρατηρήσεις:

Να μη χρησιμοποιηθούν πουθενά γενικές μεταβλητές.

Οι συναρτήσεις να μη διαβάζουν δεδομένα και να μην εκτυπώνουν μηνύματα ή αποτελέσματα

Επειδή  στην περίπτωση πού δε μπορεί να υπολογιστεί μια πραγματική ρίζα από τις πιο πάνω αναδρομικές σχέσεις η διαδικασία θα συνεχίζεται επ’ άπειρο, να διαβάζεται ένας μέγιστος αριθμός επαναλήψεων για την εφαρμογή του κάθε αλγόριθμου.

Η έκφραση f’(xi) είναι η παράγωγος της f(x) για x ίσον με xi