【发布时间】:2017-05-08 17:30:03
【问题描述】:
我一直在寻找可以进行非线性总最小二乘拟合的 Matlab 函数,基本上可以将自定义函数拟合到在所有维度上都有错误的数据。最简单的情况是 x 和 y 数据点在 x 和 y 中具有不同的给定标准偏差,对于每个单点。这是所有自然科学中非常常见的情况,仅仅因为大多数人只知道如何对 y 中的误差进行最小二乘拟合并不意味着它不会非常有用。我知道这个问题比简单的 y 误差要复杂得多,这可能就是为什么大多数人(甚至不是像我这样的物理学家)学会了如何正确处理多维误差的原因。
我希望像 matlab 这样的软件可以做到这一点,但除非我不擅长阅读其他最有用的帮助页面,否则我认为即使是“完整的”Matlab 许可证也无法提供这种合适的功能。例如,Origin、Igor、Scipy 等其他工具使用免费提供的 fortran 包“ODRPACK95”。关于文件交换的总最小二乘或戴明拟合的贡献很少,但它们仅用于线性拟合,这对我来说用处不大。
任何可以帮助我的提示我都会很高兴
亲切的问候
【问题讨论】:
-
首先,我建议坚持使用 Matlab。那里肯定有算法。
-
也许this FEX submission 和this accompanying paper 会有所帮助。
-
嗯...我认为应该在 Matlab 中实现一个算法来考虑 x 和 y 错误,但我没有找到任何东西。我查看了 FileExchange 上可用的内容,但线性拟合只有两种实现。不过,我需要能够拟合非线性模型。
标签: matlab optimization curve-fitting least-squares