knrt.net
当前位置:首页 >> mAtlAB指数函数拟合 >>

mAtlAB指数函数拟合

拟合函数表达式y=a*exp(b+cx) 式中a=0.06154920769, b=-3.18125203, c=7.822374803 拟合度0.9725(相关系数)

需要转换一下:第一步,设一个中间变量,定义为对指数函数取对数.log(e^x),原来的指数就变成多项式了.第二步,用plotfit进行多项式拟合.

fun=inline('a(1)+a(2)*exp(-a(3)*t)','a','t'); %建立函数bai T=[14.57 6.05 4.57 3.54 2.89 2.45 2.12 1.89 1.7 1.55 0.4 0.41 0.43 0.44 0.43 0.43]; t=[0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75]; a=lsqcurvefit(fun,[0,0,0],t,T); %拟合du hold on;plot(t,T,'

用matlab指数函数拟合,可以按下列例子的步骤进行:t=0:1.25:25; x=[10.85,11.31,12.30,13.44,13.63,14.19,15.18,15.61,15.90,16.98,17.38,17.78,18.66,19.19,17.78,19.21,19.14,19.74,19.96,20.06,19.91]; myfun=@(k,t)(k(1).*(1-k(2).*exp(-k(3)*t)).^(1/(1-k(4)))); beta0 =[0.92181 0.73821 0.17627 0.40571] [k,r]=nlinfit(t,x,myfun,beta0)

x=0:0.1:10; %x的取值范围,可以为任意的.y=exp(x); %e指数函数 p=polyfit(x,y,5) %五次多项式去拟合e指数函数,得到的p是五次多项式的系数.

fun=inline('a(1)+a(2)*exp(-a(3)*t)','a','t'); %建立函数T=[14.57 6.05 4.57 3.54 2.89 2.45 2.12 1.89 1.7 1.55 0.4 0.41 0.43 0.44 0.43 0.43];t=[0 5 10 15 20 25 30 35 40 45 50 55

没有现成的办法,请预处理数据后再拟合 比方说 y=a*exp(b*x) 那么预处理数据为 ln y =ln a +b*x 这样就变成线性拟合问题了啊! LZ 这个注意转化问题啊!

x=[3 10 20 30 40];y=[780.8 696.8 669.6 639.2 585.6];f=@(a,x)780.8*exp(a*x);a=nlinfit(x,y,f,1)plot(x,y,'.');hold on;ezplot(@(x)f(a,x),[0,40])

这个建议你使用cftool进行拟合General model: f(x) = a*exp(m*x)-a*exp(n*x)Coefficients (with 95% confidence bounds): a = 114.4 (105.1, 123.8) m = -0.1855 (-0.2039, -0.1671) n = -2.008 (-2.325, -1.691)

(1) help fitted function(2) 出现一堆英文(3) 忽略英文,直接看示意图和表达式,找出含有指数的那个(4) ok.按照上面的例子重复一遍就ko了.ps:matlab的本意就是希望你按照上述步骤来操作

网站首页 | 网站地图
All rights reserved Powered by www.knrt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com