请问在matlab中,曲线的指数形式拟合怎么实现?

浏览:510875 回答:2
在很多的matlab书籍中都只提到了曲线的线性拟合和多项式拟合,但对指数拟合很少有提到,请各位大虾指教下指数形式的拟合该怎么实现,谢谢先~~~
邀请回答 我来回答

全部回答

(2)
默认 最新
skyboyliu
谢谢版主的指点~~~
也谢谢那位兄弟的分享~~~~
2006年8月29日
评论 点赞
IF_THEN




%%这是一个网友给出的一个总结。但已记不起他的名字,特表示感谢。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%只考虑线性拟合

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%原始数据
t = [0 .3 .8 1.1 1.6 2.3]';
y = [0.5 0.82 1.14 1.25 1.35 1.40]';

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%多项式拟合


p=polyfit(t,y,2)

%利用左除
X = [ones(size(t)) t t.^2];
a = X\y

%regress函数
X = [ones(size(t)) t t.^2];
b=regress(y,X)

%lsqcurvefit函数
fun=inline('x(1)*t.^2+x(2)*t+x(3)','x','t');
x=lsqcurvefit(fun,[0,0,0],t,y)

%Curve Fitting Toolbox
fit1= fit(t,y,'poly2')

%Curve Fitting Toolbox(自定义多项式)
mymodel = fittype('a*t^2+b*t+c','independent','t');
%mymodel = fittype('a*x^2+b*x+c');
fit1= fit(t,y,mymodel,'start',[0,0,0])

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%指数形式的拟合


X = [ones(size(t)) exp(-t) t.*exp(-t)];
a = X\y


%lsqcurvefit函数
fun=inline('x(1)+x(2)*exp(-t)+x(3).*t.*exp(-t)','x','t');
x=lsqcurvefit(fun,[0,0,0],t,y)


%Curve Fitting Toolbox
mymodel = fittype('a+b*exp(-t)+c*t*exp(-t)','independent','t');
%mymodel = fittype('a+b*exp(-x)+c*x*exp(-x)');
fit1= fit(t,y,mymodel,'start',[0,0,0])

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%不含常数项的多项式拟合
%利用左除
X = [t t.^2];
a = X\y


%regress函数
X = [t t.^2];
b=regress(y,X)


%lsqcurvefit函数
fun=inline('x(1)*t.^2+x(2)*t','x','t');
x=lsqcurvefit(fun,[0,0],t,y)


%Curve Fitting Toolbox
mymodel = fittype('a*t^2+b*t','independent','t');
%mymodel = fittype('a*x^2+b*x');
fit1= fit(t,y,mymodel,'start',[0,0])

2006年8月28日
评论 点赞

没解决?试试专家一对一服务

换一批
    App下载
    技术邻APP
    工程师必备
    • 项目客服
    • 培训客服
    • 平台客服

    TOP