Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2008-12-01, 16:33   #10
slgu
高级会员
 
注册日期: 2007-06-24
年龄: 70
帖子: 188
声望力: 22
slgu 正向着好的方向发展
默认 回复: 各位大侠请帮助小弟:怎样用一个周期的正弦函数去拟合40多个点

clear,clc
x=0.2:0.2:4.8;
y=[ 521.486755 161.973785 130.258820 120.327599 90.597206 51.033958 29.523090 19.248325 11.156927 10.221434 4.437991 3.455873 2.075573 1.551129 1.744870 0.761403 0.754921 0.532298 0.324880 0.587357 0.236039 0.227544 0.132627 2.709515];
x=x(;y=y(;
SSy=var(y)*(length(y)-1)
fx1=@(b,x)b(1)*exp(-b(2)*x);
fx2=@(b,x)b(1)*x.^b(2).*exp(-b(3)*x);
b=rand(1,2)
for l=1:5
b=lsqcurvefit(fx1,b,x,y)
b=nlinfit(x,y,fx1,b)
end
figure(1)
y1=fx1(b,x);
RSS=(y-y1)'*(y-y1)
R12=(SSy-RSS)/SSy
hold off
plot(x,y,'o')
x1=0:.1:5;
y1=fx1(b,x1);
hold on
plot(x1,y1)
b=rand(1,3)
for l=1:5
b=lsqcurvefit(fx2,b,x,y)
b=nlinfit(x,y,fx2,b)
end
y2=fx2(b,x);
RSS=(y-y2)'*(y-y2)
R22=(SSy-RSS)/SSy
figure(2)
hold off
plot(x,y,'o')
y1=fx2(b,x1);
hold on
plot(x1,y1)
slgu 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 03:01


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.