Как найти наклон нижней области любой кривой?Python

Программы на Python
Anonymous
Как найти наклон нижней области любой кривой?

Сообщение Anonymous »

Ссылка Github на txt-файл. Итак, у меня есть проект, данные которого взяты из атомно-силовой микроскопии. У меня есть два значения d = расстояние и f = сила, нанесенные на обычный график xy. Таким образом, будут кривые немного разных форм и значений, но они будут выглядеть одинаково.
Я использую numpy и использую метод скользящего окна, к сожалению, он не работает, как сказал мне профессор в одной кривой. точки данных увеличиваются, а с другой стороны, точки данных уменьшаются. Мой пример кода:

Код: Выделить всё

def find_linear_part(d, f, window_size=120, min_slope=0.01):
slope = 0
intercept = 0
fit = 0
min_residual = float('inf')

for i in range(len(d) - window_size + 1):
d_window = d[i:i + window_size]
f_window = f[i:i + window_size]
slope, intercept = np.polyfit(d_window, f_window, 1)
y_fit = slope * d_window + intercept
residual = np.sum((f_window - y_fit) ** 2)
if residual < min_residual:
min_residual = residual
fit = (d_window, f_window)
new_slope = slope
new_intercept = intercept

return fit, new_slope, new_intercept

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

Изображение


Подробнее здесь: https://stackoverflow.com/questions/787 ... -any-curve

Вернуться в «Python»