Рассчитать производную, используя определение предела в C

Я должен написать функцию, которая вычисляет производную sin^2(x)/x+3 используя формулу (f(x+h)-f(x))/h,

Я прочитал много примеров в Интернете, но они были сложными. Я не очень разбираюсь в кодировании, я должен вычислять эту производную только путем создания функции.

Например

float deriv(float x,float h)

Как мы можем написать эту функцию?

2 ответа

Решение

Я думаю, что хороший способ сделать это с помощью одной функции, которая вычисляет производную на основе этого определения, а также с одной функцией, которая реализует эту конкретную формулу.

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 есть - и мы хотим сохранить определение производной как можно более общим.

Другие вопросы по тегам