(Примечание: это вики-сайт сообщества.)
Предположим, у меня есть набор точек xi = {x0, x1, x2, ... xn} и соответствующие значения функции fi = f (xi) = {f0, f1, f2 , ..., fn}, где f (x), как правило, неизвестная функция. strong > (В некоторых ситуациях мы можем знать f (x) заранее, но мы хотим сделать это в целом, так как мы часто не em> знать f (x) заранее.) Какой хороший способ аппроксимировать производную от f (x ) в каждой точке xi? То есть как я могу оценить значения dfi == d / d x em > fi == d f (xi) / d x в каждой из точек xi < / em>?
К сожалению, в MATLAB нет очень хорошей универсальной программы численного дифференцирования. Отчасти причина этого, вероятно, в том, что выбор хорошего распорядка дня может быть трудным!
Итак, какие существуют методы? Какие процедуры существуют? Как выбрать подходящий распорядок для решения конкретной проблемы?
При выборе способа различения в MATLAB следует учитывать несколько факторов:
- У вас есть символическая функция или набор точек?
- Ваша сетка расположена равномерно или неравномерно?
- Ваш домен периодический? Можете ли вы предположить периодические граничные условия?
- Какой уровень точности вы ищете? Вам нужно вычислить производные в пределах заданного допуска?
- Имеет ли значение для вас, что ваша производная оценивается в тех же точках, что и ваша функция?
- Вам нужно рассчитать несколько заказов деривативов?
Как лучше всего продолжить?