Εκτίμηση του π με τη μέθοδο Leibnitz στη C++
Το βίντεο έχει διάρκεια 28:29, πιθανά να χρειάζεται λίγος χρόνος για την προβολή του.
Η μέθοδος στηρίζεται στον τύπο:
$$ \frac{\pi}{4} = 1 - \frac{1}{3} + \frac{1}{5} - \frac{1}{7} + \frac{1}{9} - \cdots = \sum_{n=0}^\infty \frac{(-1)^n}{2n+1} $$
Ο παραπάνω τύπος μπορεί να χρησιμοποιηθεί ως εξής για την εκτίμηση της τιμής του π (μεγαλύτερο Ν δίνει καλύτερη εκτίμηση):
#include <stdio.h> #include <math.h> using namespace std; int main() { int N = 5000; int i; double pi = 0; for (int i=0; i<=N; i++) { pi += (double) pow(-1.0, i) / (2*i+1); } pi *= 4; printf("PI value with %d elements: ", N); printf ("pi = %12.10f\n", pi); return 0; }
Μεταγλώττιση και εκτέλεση:
astavrak@apollonia:~$ g++ program.cpp astavrak@apollonia:~$ ./a.out Estimated PI value with 5000 elements of Leibnitz series: pi = 3.1413926536
Εναλλακτικός τρόπος που βασίζεται σε βρόγχο με δεδομένη ακρίβεια υπολογισμού:
#include <stdio.h> #include <math.h> using namespace std; int main() { double h = 1e-5; double pi = 0; double d; unsigned long int i = 0; do { d = (double) pow(-1.0, i) / (2*i+1); pi += d; ++i; } while (fabs(d) > h); pi *= 4; printf ("pi = %12.10f\n", pi); return 0; }
Μεταγλώττιση και εκτέλεση:
astavrak@apollonia:~$ g++ program.cpp astavrak@apollonia:~$ ./a.out pi = 3.1415926736
Δοκιμάστε την εκτέλεση του προγράμματος με διαφορετικές τιμές h, πχ 1e-4, 1e-6, 1e-10 και ερμηνεύστε το αποτέλεσμα.
Δείτε επίσης Εκτίμηση του π με τη μέθοδο Leibnitz με το Excel/Calc
σχολιασμοί, εξωτερικοί σύνδεσμοι, βοήθεια, ψηφοφορίες, αρχεία, κτλ.
Εκπαιδευτικό υλικό από τον
Αθανάσιο Σταυρακούδη
σας παρέχετε κάτω από την άδεια
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License.
Σας παρακαλώ να ενημερωθείτε για κάποιους επιπλέον περιορισμούς
http://stavrakoudis.econ.uoi.gr/stavrakoudis/?iid=401.