Moim preferowanym sposobem przybliżenia pochodnej jest różnica centralna, jej dokładniejsza niż różnica do przodu lub różnica do tyłu, a ja jestem zbyt leniwy, aby przejść do wyższego rzędu. Ale główna różnica wymaga punktu danych po obu stronach ocenianego punktu. Zwykle oznacza to, że nie masz pochodnej w żadnym punkcie końcowym. Aby rozwiązać ten problem, chcę, abyś przełączył na różnicę do przodu i do tyłu na krawędziach:
W szczególności chcę, abyś użył różnicy do przodu dla pierwszego punktu, różnicy do tyłu dla ostatniego punktu i centralnej różnicy dla wszystkich punktów w środku. Możesz także założyć, że wartości x są równomiernie rozmieszczone i skupiać się tylko na y. Użyj tych wzorów:
Powodzenia, nie mogę się doczekać, aby zobaczyć, czy ktoś wymyśli prostą zasadę, która odtwarza wszystkie 3 pochodne we właściwych miejscach!
WEJŚCIE EX:
0.034 9.62 8.885 3.477 2.38
Użyję FD, CD i BD, aby określić, który algorytm użyć w którym miejscu, więc powyżej 5 punktów używa się do przybliżenia pochodnych za pomocą
FD CD CD CD BD
A następnie obliczone wartości byłyby:
9.586 4.4255 -3.0715 -3.2525 -1.097
Możesz założyć, że zawsze będą co najmniej 3 punkty wejściowe i możesz obliczyć używając pojedynczej lub podwójnej precyzji.
I jak zawsze, najkrótsza odpowiedź wygrywa.
[a,b,c,d,e] -> [b-a,(c-a)/2,(d-b)/2,(e-c)/2,e-d]. Czy może być mniej niż 3 punkty wejściowe?
