Q2:matlab 有公式的曲线拟合
x=[0 46.01 92.64 187.16 387.53 780.50];
y=[0 0.506 0.887 1.252 1.755 1.981];
f=@(p,x)p(1)*p(2)*x./((p(3)-x).*(1+(p(2)-1)*x/p(3))) ; p=nlinfit(x,y,f,[1 1 1])%p=[a b c] plot(x,y,ro)
hold on
ezplot(@(x)f(p,x),[-10 800])
另外你也可以利用可视化工具cftool进行手动拟合对于matlab7以前版本,不支持@定义函数的用下面的程序
x=[0 46.01 92.64 187.16 387.53 780.50];
y=[0 0.506 0.887 1.252 1.755 1.981];
f=inline(p(1)*p(2)*x./((p(3)-x).*(1+(p(2)-1)*x/p(3))),p,x);
p=nlinfit(x,y,f,[1 1 1])%p=[a b c]
plot(x,y,ro)
hold on
xx=-10:800;
yy=f(p,xx);
plot(xx,yy)
xlim([-10,800])