24小时热门版块排行榜    

查看: 655  |  回复: 8
【奖励】 本帖被评价3次,作者woshilsh增加金币 2.5
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

woshilsh

荣誉版主 (职业作家)


[资源] 【原创分享】曲线拟合简单操作!

%只考虑线性拟合                           
                                          
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
%原始数据                                 
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])
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dnp

荣誉版主 (知名作家)


汗,网络问题,重复了~~
5楼2008-11-28 10:09:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

lsf2000_2000

金虫 (著名写手)


★★★ 三星级,支持鼓励

我想问一下用polyfit拟合出来的结果中有1e+003*
-1.8524 0.7560 0.0079
上面这个1e+003*代表什么意思,具体的拟合多项式怎么写啊?谢谢
2楼2008-11-27 09:20:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

woshilsh

荣誉版主 (职业作家)


★ ★
csfn(金币+2,VIP+0):many thanks, 辛苦了
1e+003就是表示1000,具体的你和多项式需要根据具体情况来看,可以自己设置函数,然后用指针指向即可调用了!
3楼2008-11-27 10:25:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dnp

荣誉版主 (知名作家)


汗,网络问题,重复了~~

[ Last edited by dnp on 2008-11-28 at 10:09 ]
4楼2008-11-28 10:01:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见