MATLAB中文论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 456|回复: 4|关注: 0

[已答复] 遇到正弦曲线数据拟合的问题,请赐教。

[复制链接]

新手

7 麦片

财富积分


050


7

主题

20

帖子

0

最佳答案
发表于 2016-4-4 21:38:41 | 显示全部楼层 |阅读模式
我在做毕设,遇到正弦曲线数据拟合的问题,请赐教。
x=1:28;
y=[4.5188 9.2881 12.5279 14.4541 15.6471 16.2829 16.0078 16.0000 16.6522 16.0000 16.0000 15.3445 15.0000 15.0000 15.6534 15.0000 15.0000 15.0000 15.0000 15.0000 15.1910 15.0000 14.7034 14.5809 14.3650 13.6158 10.9952 8.8910];


用cftool工具箱做二个正弦曲线数据拟合结果如图(效果很好):
得出曲线方程为:     f(x) =  a1*sin(b1*x+c1) + a2*sin(b2*x+c2);



但是我用lsqcurvefit函数拟合结果差好多呢,求大神赐教!!!
        beta0=[1,1,1,1,1,1]';   
        abc=lsqcurvefit(@myfun,beta0,x,y)
        yy= myfun(abc,aa) ;



其中myfun文件代码为:
function yy= myfun( beta,x)

yy=beta(1).*sin(beta(2).*x+beta(3)) + beta(4).*sin(beta(5).*x+beta(6));

end

拟合结果如下图,简直差太多了


cftool拟合结果

cftool拟合结果

isqcurvefit函数拟合结果

isqcurvefit函数拟合结果

新手

7 麦片

财富积分


050


7

主题

20

帖子

0

最佳答案
 楼主| 发表于 2016-4-4 21:47:06 | 显示全部楼层
帮我看看吧。。。真不知道哪里错了。。有没有关于正弦曲线拟合的matlab函数啊,像polyfit一样简单的

新手

7 麦片

财富积分


050


7

主题

20

帖子

0

最佳答案
 楼主| 发表于 2016-4-4 23:10:04 | 显示全部楼层
我写了一个循环,对多个不同数据进行多次拟合,设置初值为[1 1 1 1 1 1'.]第一个拟合效果还不错,后面的就拟合的效果不好,是不是跟初始值有很大关系。。那初值到底该怎么设置呢

论坛优秀回答者

入门

492 麦片

财富积分


50500


5

主题

1132

帖子

110

最佳答案
  • 关注者: 11
发表于 2016-4-5 01:39:38 | 显示全部楼层
guangming09 发表于 2016-4-4 23:10
我写了一个循环,对多个不同数据进行多次拟合,设置初值为[1 1 1 1 1 1'.]第一个拟合效果还不错,后面的就 ...

fit函数            

新手

5 麦片

财富积分


050


1

主题

4

帖子

0

最佳答案
发表于 2016-5-4 14:21:35 | 显示全部楼层
你好!!我想问问,你的这个正炫用CFtool怎么做出来的呢?我用你上面给的数据,做出来的不一样。因为我是第一次用这个软件,求赐教!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系我们|版权保护|小黑屋|Archiver|手机版|MATLAB中文论坛 ( 苏ICP备08100737号

GMT+8, 2017-3-2 04:09 , Processed in 0.247902 second(s), 67 queries , XCache On.

Powered by Discuz! X3.3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表