MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
ot_statistique.cpp
Aller à la documentation de ce fichier.
1 //####//------------------------------------------------------------
2 //####//------------------------------------------------------------
3 //####// MAGiC
4 //####// Jean Christophe Cuilliere et Vincent FRANCOIS
5 //####// Departement de Genie Mecanique - UQTR
6 //####//------------------------------------------------------------
7 //####// MAGIC est un projet de recherche de l equipe ERICCA
8 //####// du departement de genie mecanique de l Universite du Quebec a Trois Rivieres
9 //####// http://www.uqtr.ca/ericca
10 //####// http://www.uqtr.ca/
11 //####//------------------------------------------------------------
12 //####//------------------------------------------------------------
13 //####//
14 //####// ot_statistique.cpp
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:54:00 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 
23 #pragma hdrstop
24 
25 #include "ot_statistique.h"
26 #pragma package(smart_init)
27 
28 
29 double OT_STATISTIQUE::moyenne (double * x, int n)
30 {
31  int i;
32  double moyenne_x = 0;
33  for (i=0;i<n;i++)
34  moyenne_x += x[i];
35  moyenne_x /= n;
36  return moyenne_x;
37 }
38 
39 double OT_STATISTIQUE::ecart_type (double * x, int n)
40 {
41  int i;
42  double moyenne_x = moyenne(x,n);
43 
44  double moyenne_x2 = 0;
45  for (i=0;i<n;i++)
46  moyenne_x2 += x[i]*x[i];
47  moyenne_x2 /= n;
48 
49  return sqrt(moyenne_x2-moyenne_x*moyenne_x);
50 }
51 
52 double OT_STATISTIQUE::covariance (double * x, double * y, int n)
53 {
54  int i;
55 
56  double moyenne_xy = 0;
57  for (i=0;i<n;i++)
58  moyenne_xy += x[i]*y[i];
59  moyenne_xy /= n;
60 
61  double moyenne_x = 0;
62  for (i=0;i<n;i++)
63  moyenne_x += x[i];
64  moyenne_x /= n;
65 
66  double moyenne_y = 0;
67  for (i=0;i<n;i++)
68  moyenne_y += y[i];
69  moyenne_y /= n;
70 
71  return moyenne_xy - moyenne_x * moyenne_y;
72 }
73 
74 double OT_STATISTIQUE::variance (double * x, int n)
75 {
76  int i;
77 
78  double moyenne_carres = 0;
79  for (i=0;i<n;i++)
80  moyenne_carres += x[i]*x[i];
81  moyenne_carres /= n;
82 
83  double moyenne = 0;
84  for (i=0;i<n;i++)
85  moyenne += x[i];
86  moyenne /= n;
87 
88  return moyenne_carres - moyenne*moyenne;
89 }
90 
91 void OT_STATISTIQUE::regression_lineaire(double *x, double *y, int n, double *pente, double *valY0)
92 {
93  int i;
94 
95  // coef directeur de la droite
96  double a = variance(y,n) / covariance(x,y,n);
97 
98  // b = valeur de y (0) par moindre carr�s
99  double b = 0;
100  for (i=0; i<n; i++)
101  b += y[i] - a*x[i];
102  b /= n;
103 
104  *pente = a;
105  *valY0 = b;
106 }
107 
108 double OT_STATISTIQUE::max(double *x, int n)
109 {
110  if (n==0)
111  return 0;
112 
113  double max_x = x[0];
114  for (int i=0;i<n;i++)
115  if (x[i] > max_x)
116  max_x = x[i];
117 
118  return max_x;
119 }
120 
121 double OT_STATISTIQUE::min(double *x, int n)
122 {
123  if (n==0)
124  return 0;
125 
126  double min_x = x[0];
127  for (int i=0;i<n;i++)
128  if (x[i] < min_x)
129  min_x = x[i];
130 
131  return min_x;
132 }
ot_statistique.h
a
#define a(i, j)
OT_STATISTIQUE::covariance
static double covariance(double *x, double *y, int n)
Definition: ot_statistique.cpp:52
OT_STATISTIQUE::ecart_type
static double ecart_type(double *x, int n)
Definition: ot_statistique.cpp:39
OT_STATISTIQUE::moyenne
static double moyenne(double *x, int n)
Definition: ot_statistique.cpp:29
OT_STATISTIQUE::min
static double min(double *x, int n)
Definition: ot_statistique.cpp:121
sqrt
double2 sqrt(double2 &val)
Definition: ot_doubleprecision.cpp:345
OT_STATISTIQUE::max
static double max(double *x, int n)
Definition: ot_statistique.cpp:108
OT_STATISTIQUE::variance
static double variance(double *x, int n)
Definition: ot_statistique.cpp:74
OT_STATISTIQUE::regression_lineaire
static void regression_lineaire(double *x, double *y, int n, double *pente, double *valY0)
Definition: ot_statistique.cpp:91