Я хочу написать подпрограмму, которая вычисляет п-ю производную функции, заданной подпрограммой формы:Есть ли лучший способ найти n-ю производную от функции в C?
double func(double x)
{
// a mathematical expression representing a smooth curve
//returns the value of the function at x
}
я написал следующую подпрограмму:
double nthderive(double (*f)(double),double x0,int n)
{
const double delta=1.0e-8;
double x1=x0 - delta;
double x2=x0 + delta;
if(n==0) {
return f(x0);
}
else {
return (nthderive(f,x2,n-1)-nthderive(f,x1,n-1))/(2*delta);
}
}
Может кто-то предложить лучший алгоритм для нахождения n-й производной?
Обратите внимание, что/2 * delta должно быть/(2 * delta) –
Что сказал @Bob__. Я не удивлюсь, если именно поэтому вы продолжаете получать '0.0' – StoryTeller
Спасибо, что это сработало, но есть ли лучший способ вычисления n-й производной? Вот основная причина, по которой я задал этот вопрос –