2019-07-17 14:56发布
zhihuizhou 发表于 2011-10-20 16:06 见下例: x=[-.3000, 0., .3000, .6000, .9000, 1.200, 1.500, 1.800, 2.100, 2.400, 2.700, 3., 3.300, 3. ...
mopeipei 发表于 2011-10-20 16:10 我想要拟合一曲线,原始数据是: yt=[ 521.486755 161.973785 130.258820 120.327599 90.597206 51.03395 ...
最多设置5个标签!
然后你可以用lsqcurvefit这个函数去拟合出这两个参数a和b,具体用法自己研究一下。
这位大哥能与小妹联系下吗,想请您在数据拟合方面帮个忙呢!
我想要拟合一曲线,原始数据是:
yt=[ 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=0.2:0.2:4.8
想要把它拟合成自定义的函数形式:
(1)M-P分布: yt=a*exp(-b*x)
(2)Gamma分布: yt=a*x^b*exp(-c*x)
想写出m文件画出这两条拟合曲线,并且在图上给出拟合公式,不知道拟合后的相关系数能不能也做出来啊?在做的时候总是遇到很多的问题,所以想麻烦您帮忙下咯
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)
一周热门 更多>