拟合曲线的基本思路是把函数用某种算子展开,比如fourierreihe就是用harmonische  Schwingung展开。楼主用到的polynom拟合是用泰勒级数展开,用二阶polynom即是用一条可上下左右移动并形状可变的抛物线来近似实际值,移动目的是使误差平方最小(最小二乘法)。用来拟合的抛物线不一定要有实数解!

针对楼主y=a(X-b)^2 的规定其实已经限定了抛物线只能左右移动(b),形状可变(a),但不可上下移动而且与横轴有且只有一个交点(因为没有常数项),这个规定大大限制了结果的准确性,因为只能用特定的抛物线来拟合,加了这个条件导致了五楼所说的方程组ueberbestimmt。 可能针对楼主的应用没有常数项也可以。不过就我个人接触过的应用,没有常数项,不论用泰勒级数还是fouriereihe,都没法得到可以通用的拟合算法。不是通用算法,估计也就没有已经写好的matlab命令。

至于最小二乘法命令的问题,以前做DA的时候也碰到过这样的问题,找了半天最后觉得还是自己写个matlab function比较保险,反正最小二乘法的数学推导也不是很麻烦。而且自己编程序可以自由选择加什么样的gewichtung。matlab命令对不重要的应用还成,不过做大程序的时候如果没搞清楚matlab具体算法总是会出些小问题。

[ 本帖最后由 一溜烟 于 2008-8-18 12:23 编辑 ]

TOP

最新版的matlab里面好像有curvenfit的工具箱,我做DA的时候用过。似乎可以选择公式和参数。

TOP

TOP