Рассчитать производную, используя определение предела в C - PullRequest
0 голосов
/ 04 декабря 2018

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

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

Например.

float deriv(float x,float h)

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

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Добавляя к @mcfisty, вы можете получить производную функцию, которая берет указатель на функцию, которой вы будете манипулировать, делая производную функцию более общей.

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

Обратите внимание, что это приблизительное значение.В идеале мы бы нашли предел, когда h приближается к 0, но это невозможно сделать программно, не зная, что такое определение func - и мы хотим сохранить определение производной как можно более общим.

0 голосов
/ 04 декабря 2018

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

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) требуется материал для отмены.Здесь мы имеем численную оценку, которая является прославленным уравнением градиента.Удачи!

...