Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2009-04-23
年龄: 51
帖子: 4
声望力: 0 ![]() |
![]()
下面是一个离散时间序列的样本数据:
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平方)最小. 哪位同学能帮我解啊 |
![]() |
![]() |
![]() |
#2 | |
高级会员
注册日期: 2008-09-14
年龄: 43
帖子: 351
声望力: 24 ![]() |
![]() 引用:
__________________
qq604443022 |
|
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2008-11-25
年龄: 39
帖子: 16
声望力: 17 ![]() |
![]()
应该不太难的一道题嘛,目标函数已知,约束就是等式约束,对a、b、w、c进行编码,按遗传算法正常操作就可以了。
|
![]() |
![]() |
![]() |
#4 |
初级会员
注册日期: 2009-04-23
年龄: 51
帖子: 4
声望力: 0 ![]() |
![]()
我等了这么久还没有答案啊!急急!
|
![]() |
![]() |
![]() |
#5 |
初级会员
注册日期: 2009-06-06
帖子: 3
声望力: 0 ![]() |
![]()
直接用matlab带的gatool工具箱就可以实现了,先转换出E1至E62的平方和的表达式,作为fitness,直接进行求解就可以了呀!
|
![]() |
![]() |
![]() |
#6 |
初级会员
注册日期: 2009-02-04
年龄: 36
帖子: 1
声望力: 0 ![]() |
![]()
我初步试了一下数据,发现根本不符合你给的三角函数规律,无论怎么计算效果都很差,你给的函数有问题(或许应该用这样的三角函数拟合a1*sin(x)+a2*sin(2x)+...),建议你先对数据进行FFT看一下频域分布再确定如何拟合。
![]() |
![]() |
![]() |
![]() |
#7 |
初级会员
注册日期: 2009-04-23
年龄: 51
帖子: 4
声望力: 0 ![]() |
![]()
对于这样的序列数据,有什么最好的拟合办法,
![]() ![]() 请各位仁兄高抬贵手,帮个忙。 |
![]() |
![]() |
![]() |
#8 |
普通会员
注册日期: 2008-10-06
年龄: 25
帖子: 53
声望力: 18 ![]() |
![]()
此问题直观上看是一个非线性超定方程组,可以把它看做优化问题,用相应的算法求解(如遗传算法),也可将其看做非线性参数估计,用相应的算法求解,如泰勒级数展开最小二乘。
__________________
算法设计、代写程序,欢迎访问GreenSim团队主页→ http://blog.sina.com.cn/greensim |
![]() |
![]() |