matlab线性拟合误差分析
如何用MATLAB实现生长曲线拟合,如用Logistic模型等?
如何用MATLAB实现生长曲线拟合,如用Logistic模型等?
这是某大学某同学提供的数据,要求用Logistic模型拟合其生长曲线实现方法:
1、自定义函数funinline(a(1)./(1 exp(-a(2)-a(3).*x)),a,x)
2、根据数据,使用nlinfit()函数来拟合Logistic模型的系数,b[000]%初值anlinfit(x,y,fun,b)3、运行结果
用MATLAB做曲线拟合时如何求相关系数?
[p,S,mu] polyfit(x,y,n),S和mu就是相关系数,具体可以在matlab help 找polyfit查看
不知道函数形式时如何用Matlab对数据拟合?
1、根据x,y值,用plot()函数画出图形,
x[...]
y[...]
plot(x,y,r-)
2、根据图形的趋势,确定拟合函数方程(一般可与已知的图形作对比),如
ya1*x^3 a2*x^2 a3*x a4
3、用inline()函数定义拟合函数
funcinline(a(1)*x^3 a(2)*x^2 a(3)*x a(4),a,x)
4、用nlinfit()函数或lsqcurvefit()函数,求拟合系数a,
a nlinfit(x,y,func,x0)
matlab拟合曲线求参数?
代码示例:
令x=(cos(k)./sin(k))./c,这个就是xdata向量
y252/(2.016129032*10^bai9)*a*x^b
取log得到
log(y)b*log(x) log(252/(2.016129032*10^9)*a)
所以log(y)与log(x)是线性关系,用ppolyfit(log(xdata),log(y),1)求出
bp(1);
aexp(p(2))/252*(2.016129032*10^9);
%
因为log(252/(2.016129032*10^9)*a)p(2)
所以最终程序是如下:
clear
all
c[2.7,2.8,2.9,3,3.1,3.2,3.45,3.7,3.95,4.2,4.45,4.7,4.95,5.2];
k[0,47,93,140,186,279,372,465,558,651];
y[18.98,27.35,34.86,38.52,38.44,37.73,38.43,43.87,42.77,46.22];
xdata(cos(k)./sin(k))./c;
ppolyfit(log(xdata),log(y),1);
bp(1);
aexp(p(2))/252*(2.016129032*10^9);