1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| public static void main(String[] args) {
int[] y = {31134,31288,31175,31318,31177,31368,31240,31363,31278,31434,31284,31463,31375,31511,31366,31527,31411,31589,31444,31601,31501,31653,31523,31702,31574,31734,31594,31767,31643,31814};
int N = y.length-2;
int Sx = N*(N+1)/2;
int Sxx = N*(N+1)*(2*N+1)/6;
int Sy = 0, Sxy = 0;
for (int i = N; i >= 1; i--) {
Sy += median(y[i-1],y[i],y[i+1]);
Sxy += Sy;
}
double a = (double)(N*Sxy - Sx*Sy) / (N*Sxx - Sx*Sx);
double b = (Sy-a*Sx)/N;
System.out.printf("y = %.2f.x + %.2f",a,b);
}
static int median(int a,int b,int c) {
if (a<b && b<c) return b;
if (a>b && b>c) return b;
if (b<a && a<c) return a;
if (b>a && a>c) return a;
return c;
} |
Partager