ros*_*mcm 3 delphi pascal regression curve-fitting polynomial-math
我有一组XY值(即散点图),我想要一个Pascal例程来生成适合这些点的N阶多项式的系数,就像Excel一样.
War*_* P 10
我使用了David J Taylor的Polyfit示例(curvefit.zip),它实现了最小二乘曲线拟合算法(也称为线性回归)David的网站就在这里,但请继续阅读,因为我的版本更好.(见下文).
大卫正在使用的算法的起源是一本关于Pascal程序员的科学数学的书籍,Allen Miller的曲线拟合程序,来自"科学家和工程师的Pascal程序"一书,于1982年10月由Juergen Loewner打印并提交给MTPUG,并更正并由Jeff Weiss改编为Turbo Pascal.
您可以直接从到位桶抢curvefit.zip 这里.(您可以使用Mercurial/TortoiseHG克隆源代码,或从bitbucket下载ZIP)
hg clone https://bitbucket.org/wpostma/curvefit curvefit
它运行在任何delphi版本5及更高版本,无论是否为Unicode,甚至是Delphi 10 Berlin.它在演示中有一个小图表,由我添加.我还添加了一种通过原点强制结果的方法,这是一种常用技术,您希望最适合所有值,而不是常数项,应该强制为零,或者实验得出的平均值.强制"空白减法"设置为等于一系列分析"零样本"的平均值,在某些类型的分析化学中与某些类型的仪器一起使用时很常见,而在其他科学案例中,它可能更多比最佳拟合更有用,因为您可能希望最小化原点周围的误差,而不是最小化距离原点最远的曲线区域的误差.
我还应该澄清,出于线性回归的目的,"曲线"也可以是一条线,这是我用于分析化学目的的情况,并且任何直线(y = mx + b)的方程也称为"校准曲线".一阶曲线拟合是一条线(y = mx + b),二阶曲线拟合(如图所示)是一条抛物线(y = nX ^ 2 + mX + b).正如您可能猜到的,此算法从第一个顺序扩展到您可能希望的任何级别.我没有测试它超过8个术语.
这是一个截图:

Bitbucket项目链接:
https://bitbucket.org/wpostma/curvefit/overview
尝试 TPMath http://tpmath.sourceforge.net/ - 我多年来一直在使用它来拟合山丘回归并且可以推荐它。