使用 C 中的极限定义计算导数

Calculate derivative using limit definition in C

我应该编写一个函数,使用公式 (f(x+h)-f(x))/h.

计算 sin^2(x)/x+3 的导数

我在网上看了很多例子,但是都很复杂。我对编码不太了解,我应该只通过做一个函数来计算这个导数。

例如。

float deriv(float x,float h)

这个函数怎么写?

我认为一个很好的方法是使用一个函数根据该定义计算导数,以及一个函数实现该特定公式。

float deriv (float x, float h) {

     float dydx = (function(x+h) - function(x))/h;
     return dydx;
}

float function(float x) {
    // Implement your sin function here evaluated for the argument
}

请记住,导数的定义适用于 h->0 并且要获得 f'(x) 需要取消一些东西。我们这里有一个数值估计,它是一个美化的梯度方程。祝你好运!

添加到@mcfisty,你可以让导数函数接受一个指向将被操作的函数的指针,使导数函数更通用。

double deriv(double x, double (*func)(double))
{
    const double h = 0.0001;
    return (func(x+h) - func(x)) / h;
}

请注意,这是一个近似值。理想情况下,我们会在 h 接近 0 时找到极限,但如果不了解 func 的定义是什么,就不可能以编程方式做到这一点——我们希望使导数的定义尽可能通用。