Διακύμανση και τυπική απόκλιση δείγματος στη C++
Αν x είναι διάνυσμα τιμών τότε η διακύμανση ορίζεται ως
$$ s^2 = \frac{1}{N-1} \sum_{i=1}^N (x_i - \bar{x} )^ 2 $$
Ενώ η τυπική απόκλιση ως:
$$ s = \sqrt{\frac{1}{N-1} \sum_{i=1}^N (x_i - \overline{x})^2 $$
Παρακάτω δίνεται ένα απλό πρόγραμμα υπολογισμού διακύμανσης και τυπικής απόκλισης (του δείγματος με άγνωστες τις αντίστοιχες ποσότητες του πληθυσμού):
#include <iostream> #include <math.h> #define N 5 using namespace std; int main() { int i; double x[N] = {1.3, 2.2, 3.4, 4.3, 5.0}; double sumx=0, avex, std, var; for (i=0; i < N; i++) { sumx += x[i]; } avex = sumx / N; for (i=0; i < N; i++) { var += (x[i]-avex) * (x[i]-avex); } var *= (1.0/(N-1)); std = sqrt(var); cout << "var = " << var << endl; cout << "std = " << std << endl; return 0; }
Μεταγλώτιση και εκτέλεση:
astavrak@apollonia:~$ g++ progra.cpp astavrak@apollonia:~$ ./a.out var = 2.273 std = 1.50765
Συνδεθείτε για περισσότερες δυνατότητες αλληλεπίδρασης,
σχολιασμοί, εξωτερικοί σύνδεσμοι, βοήθεια, ψηφοφορίες, αρχεία, κτλ.
σχολιασμοί, εξωτερικοί σύνδεσμοι, βοήθεια, ψηφοφορίες, αρχεία, κτλ.
Εκπαιδευτικό υλικό από τον
Αθανάσιο Σταυρακούδη
σας παρέχετε κάτω από την άδεια
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License.
Σας παρακαλώ να ενημερωθείτε για κάποιους επιπλέον περιορισμούς
http://stavrakoudis.econ.uoi.gr/stavrakoudis/?iid=401.