【问题标题】:fit a curve with Math.Net that pass through origin用穿过原点的 Math.Net 拟合曲线
【发布时间】:2016-04-27 12:12:01
【问题描述】:

我有一组 (Xi,Yi) 点,应该由通过零的 3 次多项式函数拟合。

我考虑使用 MathNet.Numerics 来完成这项任务,但在 documentation 中没有看到 强制拟合函数通过原点的选项。如果不支持此选项,请建议使用最新版本 MathNet.Numerics 中包含的函数的解决方案。

【问题讨论】:

    标签: curve-fitting mathnet-numerics


    【解决方案1】:

    我假设您知道这是在 Math.Net 中拟合某些数据的方式

    Func<Double, Double> MyFunc = Fit.PolynomialFunc(xDataArr, yDataArr, 3);
    

    至于强制它通过原点,我从未见过这样的选择。我认为唯一真正的解决方案是将点 (0, 0) 放入您的数据集中并希望获得最好的结果?

    您可以尝试的一些在数学上完全没有意义的方法是将点 (0, 0) 多次放入您的数据集中。

    【讨论】:

    • 感谢您的快速回复。使用 Math.Net 拟合数据非常简单。将 (0,0) 添加到数据中并不等同于将绘图限制为通过 (0,0)。我只是想知道我是否可以在当前版本中解决这个限制。
    • 我已经通过Fit 几次了,我从未见过允许这种约束的东西。是的,我知道在数据中添加(0, 0) 并不会严格限制它。 // 您可能有的另一个选择是获取函数系数而不是 Func,然后根据需要修改系数?
    • 直通原点相当于Excel中的“Set Intercept=0”。这里有两种方法可以用 Matlab 解决这个问题:mathworks.com/matlabcentral/answers/…mathworks.com/matlabcentral/fileexchange/35401-polyfitzero
    猜你喜欢
    • 2023-03-25
    • 2014-08-11
    • 1970-01-01
    • 2019-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-02
    相关资源
    最近更新 更多