紧急,在线等。matlab上的对数函数数据拟合。y=algx+b
x=[500 550 600 650 700 750 800 850 900 950 1000];
y=[62.4 69.2 75.4 82.2 70.4 68.4 75.2 77.8 71.6 75.6 72.2];
图中既有曲线也有数据点,最好能求出a,b. 展开
%求拟合系数a,b,c
a= nlinfit(x,y,func,a0),
c=a(3),b=a(2),a=a(1),
当0<a<1, b>1时,y=logab<0;
当a>1, 0<b<1时,y=logab<0。
两边对x求导:y'/y=ln a,y'=yln a=a^xln a,
特殊地,当a=e时,y'=(a^x)'=(e^x)'=e^xln e=e^x。
eº=1,
[a,r] = nlinfit(x,y,func,a0) %a拟合系数,r差值,
当r比较小(接近于零),说明拟合结果是合理的。
扩展资料:
fix(x):无论正负,舍去小数至相邻整数
floor(x):下取整,即舍去正小数至相邻整数
ceil(x):上取整,即加入正小数至相邻整数
rat(x):将实数x化为多项分数展开
rats(x):将实数x化为分数表示
sign(x):符号函数(Signum function)。
当x<0时,sign(x)=-1
当x=0时,sign(x)=0;
当x>0时,sign(x)=1。
如果ax =N(a>0,且a≠1),那么数x叫做以a为底N的对数,记作x=logaN,读作以a为底N的对数,其中a叫做对数的底数,N叫做真数。
一般地,函数y=logaX(a>0,且a≠1)叫做对数函数,也就是说以幂(真数)为自变量,指数为因变量,底数为常量的函数,叫对数函数。
其中x是自变量,函数的定义域是(0,+∞),即x>0。它实际上就是指数函数的反函数,可表示为x=ay。因此指数函数里对于a的规定,同样适用于对数函数。
参考资料来源:百度百科-MATLAB
参考资料来源:百度百科-对数函数
x=[500 550 600 650 700 750 800 850 900 950 1000];y=[62.4 69.2 75.4 82.2 70.4 68.4 75.2 77.8 71.6 75.6 72.2];f = fittype('a*log10(x)+b'); % 拟合函数的形式
fit1 = fit(x',y',f,'StartPoint',[x(1) y(1)]);a = fit1.a; % a的值b = fit1.b; % b的值fdata = feval(fit1,x'); % 用拟合函数来计算yfigureplot(x,y); hold onplot(x,fdata','r'); hold offlegend('Ori data',' Fitting data');
x=[500 550 600 650 700 750 800 850 900 950 1000];
y=[62.4 69.2 75.4 82.2 70.4 68.4 75.2 77.8 71.6 75.6 72.2];
f = fittype('a*log10(x)+b'); % 拟合函数的形式
fit1 = fit(x',y',f,'StartPoint',[x(1) y(1)]);
a = fit1.a; % a的值
b = fit1.b; % b的值
fdata = feval(fit1,x'); % 用拟合函数来计算y
figure
plot(x,y); hold on
plot(x,fdata','r'); hold off
legend('Ori data',' Fitting data');
扩展资料
x=[500 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000]; y=[11.4635 13.2981 15.2614 17.4575 18.5784 19.4151 20.9937 23.0329 23.4717 24.6887 25.5164];
若按照:y=a.*x.^b对数据进行数据拟合,求系数a,b?是不是先得对y=a.*x.^b进行线性化处理:两边取对数。
参考资料;百度百科-函数
y=[62.4 69.2 75.4 82.2 70.4 68.4 75.2 77.8 71.6 75.6 72.2];
f = fittype('a*log10(x)+b'); % 拟合函数的形式
fit1 = fit(x',y',f,'StartPoint',[x(1) y(1)]);
a = fit1.a; % a的值
b = fit1.b; % b的值
fdata = feval(fit1,x'); % 用拟合函数来计算y
figure
plot(x,y); hold on
plot(x,fdata','r'); hold off
legend('Ori data',' Fitting data');
能求出a,b值吗?
老大,里面不是有a, b值么,我还做了注释!