查看单个帖子
旧 2010-05-16, 11:55   #2
slgu
高级会员
 
注册日期: 2007-06-24
年龄: 70
帖子: 188
声望力: 21
slgu 正向着好的方向发展
默认 回复: 在饮酒驾车的离散模型中,如何用最小二乘法求参数k1,k2,v

请运行下列小程序:
clear,clc
x=[0.25, 0.5, 0.75, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0];
y=[55.0, 83.0, 97.0, 102.6, 101.9, 95.0, 88.0, 80.7, 73.3, 67.0, 61.0, 56.0, 46.7, 38.9, 32.0, 27.0, 22.5, 18.7, 15.6, 13.0, 10.0, 9.0, 7.5];
b=[0.0168483978389, 0.214620048639, 107.517916808, 0.0000692159359995, 0.112844163331];
fx=@(b,x)b(5)*b(1)*((1-b(2)*x/10).^b(3)-(1-b(1)*x/10).^b(3))./b(4)/(b(1)-b(2));
%[k1,k1,k,v,p]=b
b=lsqcurvefit(fx,b,x,y)
b=nlinfit(x,y,fx,b)
n=length(x)
SSy=var(y')*(n-1)
y1=fx(b,x);
q=(y-y1)*(y-y1)'
rsquare=(SSy-q)/SSy
figure(1),clf
plot(x,y,'o','markersize',10,'markerfacecolor','k')
hold on
x1=0.2:.1:16.5;
y1=fx(b,x1);
plot(x1,y1,'linewidth',2)
legend('data','fit','location','north')
axis tight
slgu 当前离线   回复时引用此帖