用给定模型进行曲线拟合的算法

时间:2015-03-26 05:07:02

标签: algorithm mathematical-optimization

假设我有一组(x,y)数据点,我被告知最能描述这些数据点的模型看起来像这样:

Equation

其中A,B,C和D是未知常数。目的是根据一些质量标准(例如the coefficient of determination)找到A,B,C和D的值,以创建“最佳拟合”函数。

许多程序可以采用一系列数据点并创建不同类型(多项式,指数等)的平滑最佳拟合函数。他们的算法求解给定(简单)模型中的系数,并且大多数这些曲线拟合算法都被合理地记录。但是,上述函数(通常表示“更复杂”的函数)在没有自定义编程的情况下无法适应数据。

我的问题是:这种模型拟合使用了哪些算法?

我所描述的一种算法是Particle Swarm Optimisation,这在计算上非常昂贵。虽然我并不是说这种问题会有“便宜”(时间复杂度)算法,但我很想知道其他算法(进化或其他)是什么。

1 个答案:

答案 0 :(得分:1)

如果我必须使用最小二乘拟合像你这样的函数,我可能会尝试http://en.wikipedia.org/wiki/Gauss%E2%80%93Newton_algorithm。如果您查看该页面的“注释”部分,您可以看到它等于您尝试使用线性函数拟合的函数。那里的帐户说无法保证收敛,这是事实。从点x开始,它可以步入x',这甚至更糟。但是,如果x不是局部最优值,则x,Ax'附近会有一些点。 +(1-A)x哪个更好,你可以尝试从A = 1/2开始并反复将其减半。

为了最大限度地减少完全非结构化的数学函数,我可能会依赖于Torczon单纯形算法,因为有一个合理可以理解的证据表明它在相当弱的假设下收敛。 http://en.wikipedia.org/wiki/Pattern_search_%28optimization%29末尾的引用指向了这个指针。