gpt4 book ai didi

javascript - 有误差的线性曲线拟合

转载 作者:数据小太阳 更新时间:2023-10-29 04:43:29 24 4
gpt4 key购买 nike

我一直在寻找一种在 Javascript 中执行线性曲线拟合的方法。我找到了几个库,但它们不会传播错误。我的意思是,我有数据和相关的测量误差,例如:

x = [ 1.0 +/- 0.1, 2.0 +/- 0.1, 3.1 +/- 0.2, 4.0 +/- 0.2 ]
y = [ 2.1 +/- 0.2, 4.0 +/- 0.1, 5.8 +/- 0.4, 8.0 +/- 0.1 ]

我的符号 a +/- b 表示 { value : a, error : b }

我想将其放入 y = mx + b,并找到 mb 及其传播的错误。我知道我可以实现的最小二乘法算法,但它只会在 y 变量上出现错误,而且我在这两个方面都有明显的错误。

我也无法在 Javascript 中找到一个库来做到这一点;但如果有其他语言的开源库,我可以检查它以了解如何在 JS 中实现它。

Origin 或 plotly 之类的程序能够实现这一点,但我不知道如何实现。此示例数据集的结果是:

m = 1.93 +/- 0.11
b = 0.11 +/- 0.30

最佳答案

非常有用的书Numerical Recipes提供了一种将数据拟合成直线的方法,X 和 Y 坐标都具有不确定性。可以查到online在这两个版本中:

该方法基于最小化 χ2(卡方),类似于最小二乘法,但考虑了每个数据点的个体不确定性。当不确定性 σi 仅在 Y 轴上时,与 1/σi2 成正比的权重分配给计算中的点.当数据在 X 和 Y 坐标上有不确定性时,分别由 σxi 和 σyi 给定,对直线的拟合

y(x) = a + b · x

使用 χ2,其中每个点的权重与

1 / (σ2yi + b2 · σ2xi)

详细的方法和代码(C或Fortran)可以在书中找到。由于 copyright , 我不能在这里复制它们。

关于javascript - 有误差的线性曲线拟合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43548445/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com