You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在原子力显微镜曲线中识别低区域斜率?

原子力显微镜力-距离曲线线性区域斜率识别问题

我有原子力显微镜的距离(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

我曾参考图中给出的部分斜率值设置过斜率阈值,示例预期曲线图如下:
1st graph
Second Graph

数据文件:sample.txt(存储于GitHub仓库)

内容的提问来源于stack exchange,提问作者LeCroissant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 12:04:57