Я хочу выполнить числовое интегрирование функции f, используя функцию qtrap, определенную в «Числовых рецептах в C».
double qtrap(double (*func)(double), double a, double b);
Как показано, это 1-я интеграция переменной типа double.
Но функция, которую я хочу интегрировать, имеет дополнительный параметр a:
double f(double x, int a)
{
return a + x * x;
}
Теперь я ищу способ интегрировать f для различных значений a.
Моя идея до сих пор:
typedef double (*fctp1_t)(double); //function pointer type for 1 arg
typedef double (*fctp2_t)(double, int); //function pointer type for 2 args
int a = 10;
fctp1_t = f1d;
f1d = reduceArgument(f, a);
qtrap(f1d, 0, 1);
с помощью ReductionArgument примерно так:
fctp1_t reduceArgument(fctp2_t f2d, int ia)
{
return f2d(x, ia);
}
Этот код приводит к ошибке: 'x' undeclared.
Спасибо за любые предложения.