x035.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <gsl/gsl_deriv.h>
4 #include <gsl/gsl_math.h>
5 #include <stdio.h>
6 
7 namespace nmx::apps::x035 {
8 
15 double f(double x, void *params) {
16  (void) (params); /* avoid unused parameter warning */
17  return pow(x, 1.5);
18 }
19 
23 inline void ex1() {
24  gsl_function F;
25  double result, abserr;
26 
27  F.function = &f;
28  F.params = nullptr;
29 
30  printf("f(x) = x^(3/2)\n");
31 
32  gsl_deriv_central(&F, 2.0, 1e-8, &result, &abserr);
33  printf("x = 2.0\n");
34  printf("f'(x) = %.10f +/- %.10f\n", result, abserr);
35  printf("exact = %.10f\n\n", 1.5 * sqrt(2.0));
36 
37  gsl_deriv_forward(&F, 0.0, 1e-8, &result, &abserr);
38  printf("x = 0.0\n");
39  printf("f'(x) = %.10f +/- %.10f\n", result, abserr);
40  printf("exact = %.10f\n", 0.0);
41 }
42 
43 } // namespace nmx::apps::x035
void ex1()
ex1
Definition: x035.h:23
double f(double x, void *params)
f
Definition: x035.h:15