Εκτίμηση του π με τη μέθοδο 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.