1 const size_t enso_N = 168;
2 const size_t enso_P = 9;
4 double enso_x0[9] = { 10.0, 3.0, 0.5, 44.0, -1.5, 0.5, 26.0, 0.1, 1.5 };
18 double enso_sumsq = 7.8853978668E+02;
20 double enso_sigma[9] = {
32 double enso_F[168] = {
205 enso_f (const gsl_vector * x, void *params, gsl_vector * f)
210 for (i = 0; i < 9; i++)
212 b[i] = gsl_vector_get(x, i);
215 for (i = 0; i < 168; i++)
217 double t = (i + 1.0);
220 y += b[1] * cos(2*M_PI*t/12);
221 y += b[2] * sin(2*M_PI*t/12);
222 y += b[4] * cos(2*M_PI*t/b[3]);
223 y += b[5] * sin(2*M_PI*t/b[3]);
224 y += b[7] * cos(2*M_PI*t/b[6]);
225 y += b[8] * sin(2*M_PI*t/b[6]);
227 gsl_vector_set (f, i, enso_F[i] - y);
234 enso_df (const gsl_vector * x, void *params, gsl_matrix * df)
239 for (i = 0; i < 9; i++)
241 b[i] = gsl_vector_get(x, i);
244 for (i = 0; i < 168; i++)
246 double t = (i + 1.0);
248 gsl_matrix_set (df, i, 0, -1.0);
249 gsl_matrix_set (df, i, 1, -cos(2*M_PI*t/12));
250 gsl_matrix_set (df, i, 2, -sin(2*M_PI*t/12));
251 gsl_matrix_set (df, i, 3,
252 -b[4]*(2*M_PI*t/(b[3]*b[3]))*sin(2*M_PI*t/b[3])
253 +b[5]*(2*M_PI*t/(b[3]*b[3]))*cos(2*M_PI*t/b[3]));
254 gsl_matrix_set (df, i, 4, -cos(2*M_PI*t/b[3]));
255 gsl_matrix_set (df, i, 5, -sin(2*M_PI*t/b[3]));
256 gsl_matrix_set (df, i, 6,
257 -b[7] * (2*M_PI*t/(b[6]*b[6])) * sin(2*M_PI*t/b[6])
258 +b[8] * (2*M_PI*t/(b[6]*b[6])) * cos(2*M_PI*t/b[6]));
259 gsl_matrix_set (df, i, 7, -cos(2*M_PI*t/b[6]));
260 gsl_matrix_set (df, i, 8, -sin(2*M_PI*t/b[6]));
267 enso_fdf (const gsl_vector * x, void *params,
268 gsl_vector * f, gsl_matrix * df)
270 enso_f (x, params, f);
271 enso_df (x, params, df);