紧急,在线等。matlab上的对数函数数据拟合。y=algx+b

实验数据:x=[5005506006507007508008509009501000];y=[62.469.275.482.270.468.475.277.871.675... 实验数据:
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.
展开
ser0326
2019-11-18 · TA获得超过1.4万个赞
知道答主
回答量:30
采纳率:100%
帮助的人:7286
展开全部

%求拟合系数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

参考资料来源:百度百科-对数函数

爱堕落
2019-11-15 · TA获得超过4118个赞
知道答主
回答量:54
采纳率:0%
帮助的人:1.4万
展开全部

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进行线性化处理:两边取对数。

参考资料;百度百科-函数

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
francy0527
推荐于2017-11-25 · TA获得超过260个赞
知道小有建树答主
回答量:118
采纳率:100%
帮助的人:103万
展开全部
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');
更多追问追答
追问
能求出a,b值吗?
追答
老大,里面不是有a, b值么,我还做了注释!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式