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