t = [ 22, 50, 73, 78, 104, 131, 156, 179, 204, 228, 251, 31, 64, 94, 125, 152, 178, 203, 228, 253]
y = [ .7857143, 1.785714, 2.785714, 3.785714, 4.785714, 5.785714, 6.785714, 7.785714, 8.785714, 9.785714, 10.78571, .9393939, 1.939394, 2.939394, 3.939394, 4.939394, 5.939394, 6.939394, 7.939394, 8.939394]
%上面为数组,下面为拟合代码
myfunc=inline('beta(1)*t^2+beta(2)*t+b(3)*exp(-beta(4)/t)','beta','t');
beta=nlinfit(t,y,myfunc,[1 1 1 1])
a=beta(1),k1=beta(2),k2=beta(3),m=beta(4)
%test the model
tt=0:1:255
yy=a*tt^2+k1*tt+k2*exp(-m/tt)
plot(t,y,'o',tt,yy,'r')
拟合总是出错,是不是我的拟合模型选择有问题,还是我的代码写的有问题,希望大虾们可以附上代码,另外对于非线性拟合还有什么好的拟合函数可以多建议几个,我的7.0版本 |