24小时热门版块排行榜    

查看: 293  |  回复: 0

jxnuhjj

新虫 (小有名气)

[交流] 正弦曲线拟合

各位高手,已知两列数据(t,r),如何将它们用MATLAB进行正弦曲线拟合呀?我用lsqcurvefit得到的结果不太好,程序如下:
f=4.74*10^14;V=0.5*10^-3;C=3*10^8;
a=100;b=1;c=50;d=1;delta=pi/3;deltb=1*pi/4;
t=0:0.0001:0.1;
fai=2*pi*V*f*t/C
r=atan((b.*sin(fai+delta))./(a+b.*cos(fai+delta)))+atan((d.*sin(fai+deltb))./(c+d.*cos(fai+deltb)));
a0=[0,0.03,15000,0];
option=optimset('MaxFunEvals',100)
[a, resnorm]=lsqcurvefit(@myfun, a0, t,r,[],[],option);
yy=a(1)+a(2)*cos(a(3)*(t-a(4)));
plot(t,r,'b',t,yy,'r')
不知是程序的问题,还是有其他更好的方法?还请各位高手指点一下。先谢谢了。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 jxnuhjj 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见