回 帖 发 新 帖 刷新版面

主题:[原创]曲线拟合问题,希望大虾可以帮忙

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版本

回复列表 (共2个回复)

沙发

y=b(1)*t.^2+b(2)*t+b(3)*exp(-b(4)*t)
b=[.2485050605e-5, .3832154501e-1,  -.3194655190, .2747654361e-1]
lsqcurvefit 也是非线性拟合的命令。

板凳

能否说的清楚点,楼上面的你的那个结果是在哪个版本上做出来的,直接可以拟合我给的那个数据吗?能否把你的代码也一同附上去.

我来回复

您尚未登录,请登录后再回复。点此登录或注册