登录论坛

查看完整版本 : 要求使用三角函数对其进行拟合


luckeey
2009-04-23, 13:20
下面是一个离散时间序列的样本数据:
40、5、6、8、3、2、3、1、2、1、3、3、13、7、18、4、9、11、3、56、20、64、6、29、17、9、2、23、6、2、29、13、4、2、3、11、15、12、2、8、29、19、12、9、1、25、14、30、5、9、1、15、13、5、15、23、21、7、18、13、44、46
要求使用三角函数对其进行拟合,按要求采用 f(x)=a*sin(b*n+w)+c 对其进行拟合,n 为数据序列的序号(1、2、3、4、5 ……62 )建立如下方程组

40=a*sin(b*1+w)+c+E1
5=a*sin(b*2+w)+c+E 2
6=a*sin(b*3+w)+c+E 3
8=a*sin(b*4+w)+c+E 4
3=a*sin(b*5+w)+c+E 5
2=a*sin(b*6+w)+c+E 6
……
44=a*sin(b*61+w)+c+E 61
46=a*sin(b*62+w)+c+E 62

求解系数a、b、w ,c 使得 E1至E62的平方和(e1平方+e2平方+……+e62平方)最小.

哪位同学能帮我解啊

anbcjys
2009-04-25, 08:49
下面是一个离散时间序列的样本数据:
40、5、6、8、3、2、3、1、2、1、3、3、13、7、18、4、9、11、3、56、20、64、6、29、17、9、2、23、6、2、29、13、4、2、3、11、15、12、2、8、29、19、12、9、1、25、14、30、5、9、1、15、13、5、15、23、21、7、18、13、44、46
要求使用三角函数对其进行拟合,按要求采用 f(x)=a*sin(b*n+w)+c 对其进行拟合,n 为数据序列的序号(1、2、3、4、5 ……62 )建立如下方程组

40=a*sin(b*1+w)+c+E1
5=a*sin(b*2+w)+c+E 2
6=a*sin(b*3+w)+c+E 3
8=a*sin(b*4+w)+c+E 4
3=a*sin(b*5+w)+c+E 5
2=a*sin(b*6+w)+c+E 6
……
44=a*sin(b*61+w)+c+E 61
46=a*sin(b*62+w)+c+E 62

求解系数a、b、w ,c 使得 E1至E62的平方和(e1平方+e2平方+……+e62平方)最小.

哪位同学能帮我解啊

用遗传算法吗 .

大学生
2009-04-25, 14:36
应该不太难的一道题嘛,目标函数已知,约束就是等式约束,对a、b、w、c进行编码,按遗传算法正常操作就可以了。

luckeey
2009-06-01, 07:32
我等了这么久还没有答案啊!急急!

jianxia174
2009-06-06, 13:35
直接用matlab带的gatool工具箱就可以实现了,先转换出E1至E62的平方和的表达式,作为fitness,直接进行求解就可以了呀!

zhaishaozhuo
2009-07-10, 01:03
我初步试了一下数据,发现根本不符合你给的三角函数规律,无论怎么计算效果都很差,你给的函数有问题(或许应该用这样的三角函数拟合a1*sin(x)+a2*sin(2x)+...),建议你先对数据进行FFT看一下频域分布再确定如何拟合。:confused:

luckeey
2009-11-06, 15:36
对于这样的序列数据,有什么最好的拟合办法,:mad::confused:
请各位仁兄高抬贵手,帮个忙。

greensim
2010-03-06, 16:42
此问题直观上看是一个非线性超定方程组,可以把它看做优化问题,用相应的算法求解(如遗传算法),也可将其看做非线性参数估计,用相应的算法求解,如泰勒级数展开最小二乘。