Anonymous
`np.gradient` имеет высокую дисперсию для неравномерного интервала.
Сообщение
Anonymous » 14 янв 2025, 15:02
Я столкнулся с высокой дисперсией np.gradient для относительно гладких данных.
Предположим, мы хотим вычислить dx/dt:
Код: Выделить всё
import numpy as np
import matplotlib.pyplot as plt
x = np.array([13.11149679, 13.2141427 , 13.37743691, 13.3934357 , 13.56163066,
13.60207566, 13.69304133])
t = np.array([0.73065159, 0.74012055, 0.75911018, 0.7607452 , 0.77811468,
0.78031837, 0.79046324])
x_grad = np.gradient(x, t)
plt.plot(t[1:], np.diff(x) / np.diff(t), 'xb', label="findiff")
plt.plot(t, x_grad, 'or', label = 'np.gradient')
plt.plot(t, x, '+g', label = "x")
plt.xlabel('t')
plt.ylabel('x')
plt.legend()
plt.show()
Шум в данные, похоже, значительно увеличены. Как нам с этим справиться?
Подробнее здесь:
https://stackoverflow.com/questions/773 ... rm-spacing
1736856164
Anonymous
Я столкнулся с высокой дисперсией np.gradient для относительно гладких данных. Предположим, мы хотим вычислить dx/dt: [code]import numpy as np import matplotlib.pyplot as plt x = np.array([13.11149679, 13.2141427 , 13.37743691, 13.3934357 , 13.56163066, 13.60207566, 13.69304133]) t = np.array([0.73065159, 0.74012055, 0.75911018, 0.7607452 , 0.77811468, 0.78031837, 0.79046324]) x_grad = np.gradient(x, t) plt.plot(t[1:], np.diff(x) / np.diff(t), 'xb', label="findiff") plt.plot(t, x_grad, 'or', label = 'np.gradient') plt.plot(t, x, '+g', label = "x") plt.xlabel('t') plt.ylabel('x') plt.legend() plt.show() [/code] [img]https://i.sstatic.net/0wBId.png[/img] Шум в данные, похоже, значительно увеличены. Как нам с этим справиться? Подробнее здесь: [url]https://stackoverflow.com/questions/77356258/np-gradient-has-high-variance-for-non-uniform-spacing[/url]