Мой предпочтительный способ аппроксимации производной - это центральная разница, более точная, чем прямая или обратная разница, и я слишком ленив, чтобы перейти на более высокий порядок. Но для центрального различия требуется точка данных по обе стороны от точки, которую вы оцениваете. Обычно это означает, что у вас не будет производной в любой конечной точке. Чтобы решить эту проблему, я хочу, чтобы вы переключились на прямую и обратную разность по краям:
В частности, я хочу, чтобы вы использовали прямую разницу для первой точки, обратную разницу для последней точки и центральную разницу для всех точек в середине. Кроме того, вы можете предположить, что значения x расположены равномерно и фокусироваться только на y. Используйте эти формулы:
Удачи, я с нетерпением жду встречи, если кто-то придумает простое правило, которое воспроизводит все 3 производных в правильных местах!
EX INPUT:
0.034 9.62 8.885 3.477 2.38
Я буду использовать FD, CD и BD, чтобы указать, какой алгоритм использовать в каком месте, поэтому более 5 баллов используются для аппроксимации производных с использованием
FD CD CD CD BD
И тогда рассчитанные значения будут:
9.586 4.4255 -3.0715 -3.2525 -1.097
Вы можете предположить, что всегда будет как минимум 3 входные точки, и вы можете рассчитывать с одинарной или двойной точностью.
И как всегда, самый короткий ответ выигрывает.
[a,b,c,d,e] -> [b-a,(c-a)/2,(d-b)/2,(e-c)/2,e-d]
. Может ли быть меньше, чем 3 точки ввода?