第4讲拟合与回归分析课件.ppt

上传人:飞****2 文档编号:72167573 上传时间:2023-02-09 格式:PPT 页数:85 大小:2.38MB
返回 下载 相关 举报
第4讲拟合与回归分析课件.ppt_第1页
第1页 / 共85页
第4讲拟合与回归分析课件.ppt_第2页
第2页 / 共85页
点击查看更多>>
资源描述

《第4讲拟合与回归分析课件.ppt》由会员分享,可在线阅读,更多相关《第4讲拟合与回归分析课件.ppt(85页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、拟合与回归拟合与回归四川师范大学赵凌曲线拟合已知一组(二维)数据,即平面上已知一组(二维)数据,即平面上n个点(个点(xi,yi)i=1,n,寻求一个函数(曲线)寻求一个函数(曲线)y=f(x),使使f(x)在在某种准某种准则下与所有数据点最为接近,即曲线拟合得最好。则下与所有数据点最为接近,即曲线拟合得最好。+xy一、一、拟拟合合 实例:实例:下面数据是某次实验所得,希望得到X和 f之间的关系?问题:问题:给定一批数据点,需确定满足特定要求的曲线或曲面解决方案:解决方案:若不要求曲线(面)通过所有数据点,而是要求它反映对象整体的变化趋势,这就是数据拟合数据拟合,又称曲线拟合或曲面拟合。若要求

2、所求曲线(面)通过所给所有数据点,是插值问题插值问题;根据散点图或者经验公式,确定函数的形式。根据散点图或者经验公式,确定函数的形式。函数的形式分成两种:线性的(可化为线性的)和非线性的可化为线性的:确定一组函数 r1(x),r2(x),rm(x),设 y=a1r1(x)+a2r2(x)+amrm(x)其中 a1,a2,am 为待定系数。线性的:y=a1x1+a2x2+amxm,要求mn(样本容量)其中 a1,a2,am 为待定系数。非线性的:y=f(x)通常选择的六类曲线如下:通常选择的六类曲线如下:(7)多项式多项式线性化方法线性化方法两端取对数得:两端取对数得:lny=ln+x令:令:y

3、=lny,则有则有y=ln+x基本形式:基本形式:图像图像 q 指数函数指数函数线性化方法线性化方法两端取对数得:两端取对数得:lny=ln+/x令:令:y=lny,x=1/x,则有,则有y=ln+x基本形式:基本形式:图像图像q 负指数函数负指数函数 线性化方法线性化方法两端取对数得:两端取对数得:lg y=lg +lg x令:令:y=lgy,x=lg x,则则y=lg +x基本形式:基本形式:图像图像0 1 1=1-1 0 -1 =-1 q 幂函数幂函数线性化方法线性化方法令:令:y=1/y,x=1/x,则有则有y=+x基本形式:基本形式:图像图像 0q 双曲线函数双曲线函数线性化方法线性

4、化方法x=lgx,则有则有y=+x基本形式:基本形式:图像图像 0 F F ,拒绝拒绝H H0 0回归系数的区间估计不含原点,则此变量线性关性显著回归系数的区间估计不含原点,则此变量线性关性显著回归系数的点估计和区间估计、并检验回归模型:回归系数的点估计和区间估计、并检验回归模型:b,bint,r,rint,stats=regress(Y,X,alpha)回归系数的区间估计残差用于检验回归模型的统计量,有三个数值:相关系数r2、F值、与F对应的概率p置信区间 显著性水平(缺省时为0.05)回归系数的检验回归系数的检验t t检验检验1.线线性性关关系系检检验验通通过过后后,对对各各个个回回归归系

5、系数数有有选选择择地地进行一次或多次检验进行一次或多次检验2.应用应用t 检验统计量检验统计量回归系数的检验回归系数的检验(步骤)1.提出假设提出假设H0:i=0(自变量自变量xi与与因变量因变量y 没有线性关系没有线性关系)H1:i 0(自变量自变量xi与与因变量因变量y有线性关系有线性关系)2.计算检验的统计量计算检验的统计量t3.确定显著性水平确定显著性水平,并进行决策,并进行决策 t t t t,拒绝拒绝拒绝拒绝HH0 0;t t 0)k(0)模型假设模型假设1.1.机体看作一个房室,室内血药浓度均匀机体看作一个房室,室内血药浓度均匀一室模型一室模型模型建立模型建立 在此,在此,d=3

6、00mg,t及及c(t)在某些点处的值见前表,在某些点处的值见前表,需经拟合求出参数需经拟合求出参数k、v用线性最小二乘拟合用线性最小二乘拟合c(t)计算结果:计算结果:d=300;t=0.25 0.5 1 1.5 2 3 4 6 8;c=19.21 18.15 15.36 14.10 12.89 9.32 7.45 5.24 3.01;y=log(c);a=polyfit(t,y,1)k=-a(1)v=d/exp(a(2)程序:程序:给药方案给药方案 设计设计cc2c10t 设每次注射剂量D,间隔时间 血药浓度c(t)应c1 c(t)c2 初次剂量D0 应加大给药方案记为:给药方案记为:2、

7、1、计算结果:计算结果:给药方案:给药方案:c1=10,c2=25k=0.2347v=15.02故可制定给药方案:故可制定给药方案:即即:首次注射首次注射375mg,其余每次注射其余每次注射225mg,注射的间隔时间为注射的间隔时间为4小时。小时。估计水塔的流量估计水塔的流量2、解题思路解题思路3、算法设计与编程算法设计与编程1、问题问题 某居民区有一供居民用水的园柱形水塔,一般可以通过测量其水位来估计水的流量,但面临的困难是,当水塔水位下降到设定的最低水位时,水泵自动启动向水塔供水,到设定的最高水位时停止供水,这段时间无法测量水塔的水位和水泵的供水量通常水泵每天供水一两次,每次约两小时.水塔

8、是一个高12.2米,直径17.4米的正园柱按照设计,水塔水位降至约8.2米时,水泵自动启动,水位升到约10.8米时水泵停止工作表1 是某一天的水位测量记录,试估计任何时刻(包括水泵正供水时)从水塔流出的水流量,及一天的总用水量流量估计的解题思路流量估计的解题思路拟合水位拟合水位时间函数时间函数确定流量确定流量时间函数时间函数估计一天总用水量估计一天总用水量 拟合水位拟合水位时间函数时间函数 测量记录看,一天有两个供水时段(以下称第1供水时段和第2供水时段),和3个水泵不工作时段(以下称第1时段t=0到t=8.97,第2次时段t=10.95到t=20.84和第3时段t=23以后)对第1、2时段的

9、测量数据直接分别作多项式拟合,得到水位函数为使拟合曲线比较光滑,多项式次数不要太高,一般在36由于第3时段只有3个测量记录,无法对这一时段的水位作出较好的拟合 2、确定流量确定流量时间函数时间函数 对于第1、2时段只需将水位函数求导数即可,对于两个供水时段的流量,则用供水时段前后(水泵不工作时段)的流量拟合得到,并且将拟合得到的第2供水时段流量外推,将第3时段流量包含在第2供水时段内3、一天总用水量的估计一天总用水量的估计 总用水量等于两个水泵不工作时段和两个供水时段用水量之和,它们都可以由流量对时间的积分得到。算法设计与编程算法设计与编程1、拟合第拟合第1、2时段的水位,并导出流量时段的水位

10、,并导出流量2、拟合供水时段的流量拟合供水时段的流量3、估计一天总用水量估计一天总用水量4、流量及总用水量的检验、流量及总用水量的检验 1、拟合第拟合第1时段的水位,并导出流量时段的水位,并导出流量 设t,h为已输入的时刻和水位测量记录(水泵启动的4个时刻不输入),第第1时段时段各时刻的流量可如下得:1)c1=polyfit(t(1:10),),h(1:10),),3););%用3次多项式拟合第1时段水位,c1输出3次多项式的系数2)a1=polyder(c1););%a1输出多项式(系数为c1)导数的系数 3)tp1=0:0.1:9;x1=-polyval(a1,tp1);%x1输出多项式(

11、系数为a1)在tp1点的函数值(取负后边为正值),即tp1时刻的流量 4)流量函数为:流量函数为:2、拟合第拟合第2时段的水位,并导出流量时段的水位,并导出流量 设t,h为已输入的时刻和水位测量记录(水泵启动的4个时刻不输入),第第2时段时段各时刻的流量可如下得:1)c2=polyfit(t(10.9:21),h(10.9:21),3);%用3次多项式拟合第2时段水位,c2输出3次多项式的系数2)a2=polyder(c2);%a2输出多项式(系数为c2)导数的系数 3)tp2=10.9:0.1:21;x2=-polyval(a2,tp2);%x2输出多项式(系数为a2)在tp2点的函数值(取

12、负后边为正值),即tp2时刻的流量4)流量函数为:流量函数为:3、拟合供水时段的流量拟合供水时段的流量 在第1供水时段(t=911)之前(即第1时段)和之后(即第2时段)各取几点,其流量已经得到,用它们拟合第1供水时段的流量为使流量函数在t=9和t=11连续,我们简单地只取4个点,拟合3次多项式(即曲线必过这4个点),实现如下:xx1=-polyval(a1,8 9);%取第1时段在t=8,9的流量 xx2=-polyval(a2,11 12);%取第2时段在t=11,12的流量 xx12=xx1 xx2;c12=polyfit(8 9 11 12,xx12,3);%拟合3次多项式 tp12=

13、9:0.1:11;x12=polyval(c12,tp12);%x12输出第1供水时段 各时刻的流量拟合的流量函数为:拟合的流量函数为:在第2供水时段之前取t=20,20.8两点的流水量,在该时刻之后(第3时段)仅有3个水位记录,我们用差分得到流量,然后用这4个数值拟合第2供水时段的流量如下:dt3=diff(t(22:24));%最后3个时刻的两两之差 dh3=diff(h(22:24));%最后3个水位的两两之差 dht3=-dh3./dt3;%t(22)和t(23)的流量 t3=20 20.8 t(22)t(23);xx3=-polyval(a2,t3(1:2),dht3);%取t3各时

14、刻的流量 c3=polyfit(t3,xx3,3);%拟合3次多项式 t3=20.8:0.1:24;x3=polyval(c3,tp3);%x3输出第2供水时段 (外推至t=24)各时刻的流量拟合的流量函数为:拟合的流量函数为:3、一天总用水量的估计一天总用水量的估计 第1、2时段和第1、2供水时段流量的积分之和,就是一天总用水量虽然诸时段的流量已表为多项式函数,积分可以解析地算出,这里仍用数值积分计算如下:y1=0.1*trapz(x1);%第1时段用水量(仍按高 度计),0.1为积分步长 y2=0.1*trapz(x2);%第2时段用水量 y12=0.1*trapz(x12);%第1供水时

15、段用水量 y3=0.1*trapz(x3);%第2供水时段用水量 y=(y1+y2+y12+y3)*237.8*0.01;%一天总用水量()计算结果:计算结果:y1=146.2,y2=266.8,y12=47.4,y3=77.3,y=1250.4 4、流量及总用水量的检验流量及总用水量的检验 计算出的各各时时刻刻的的流流量量可用水位记录的数值微分来检验用水量y1可用第1时段水位测量记录中下降高度968-822=146来检验,类似地,y2用1082-822=260检验供供水水时时段段流流量量的一种检检验验方方法法如下:供水时段的用水量加上水位上升值260是该时段泵入的水量,除以时段长度得到水泵的

16、功率(单位时间泵入的水量),而两个供水时段水泵的功率应大致相等第1、2时段水泵的功率可计算如下:p1=(y12+260)/2;%第1供水时段水泵的功率 (水量仍以高度计)tp4=20.8:0.1:23;xp2=polyval(c3,tp4);%xp2输出第2供水时段 各时刻的流量 p2=(0.1*trapz(xp2)+260)/2.2;%第2供水时段水泵的功率 (水量仍以高度计)计算结果计算结果:p1=154.5 ,p2=140.1计算结果计算结果流量函数为:流量函数为:流量曲线见图流量曲线见图n=(3,4)n=(5,6)练习练习1 用给定的多项式,如y=x3-6x2+5x-3,产生一组数据(

17、xi,yi,i=1,2,n),再在yi上添加随机干扰(可用rand产生(0,1)均匀分布随机数,或用rands产生N(0,1)分布随机数),然后用xi和添加了随机干扰的yi作的3次多项式拟合,与原系数比较。如果作2或4次多项式拟合,结果如何?练习练习2、用电压V=10伏的电池给电容器充电,电容器上t时刻的电压为 ,其中V0是电容器的初始电压,是充电常数。试由下面一组t,V数据确定V0,。作业:农作物施肥效果分析电力市场的输电阻塞管理(题目)电力市场的输电阻塞管理(论文一)电力市场的输电阻塞管理(论文二)用非线性最小二乘拟合用非线性最小二乘拟合c(t)-用用lsqcurvefit2、主程序主程序

18、lihe2.m如下如下cleartdata=0.25 0.5 1 1.5 2 3 4 6 8;cdata=19.21 18.15 15.36 14.10 12.89 9.32 7.45 5.24 3.01;x0=10,0.5;x=lsqcurvefit(curvefun3,x0,tdata,cdata);f=curvefun3(x,tdata)x1 1、用、用M-M-文件文件curvefun3.m定义函数定义函数function f=curvefun3(x,tdata)d=300f=(x(1)d)*exp(-x(2)*tdata)%x(1)=v;x(2)=k 1.1.lsqcurvefitls

19、qcurvefit已知数据点数据点:xdataxdata=(xdata1,xdata2,xdataxdatan n),),ydataydata=(ydataydata1 1,ydataydata2 2,ydataydatan n)用用MATLAB作非线性最小二乘拟合作非线性最小二乘拟合 MatlabMatlab的提供了两个求非线性最小二乘拟合的函数:的提供了两个求非线性最小二乘拟合的函数:lsqcurvefitlsqcurvefit和lsqnonlinlsqnonlin。两个命令都要先建立两个命令都要先建立M-M-文件文件fun.mfun.m,在其中定义函数在其中定义函数f(x)f(x),但两

20、者定义但两者定义f(x)f(x)的方式是不同的的方式是不同的,可可参考例题参考例题.lsqcurvefitlsqcurvefit用以求含参量用以求含参量x x(向量)的向量值函数向量)的向量值函数F(x,xdataF(x,xdata)=)=(F F(x x,xdataxdata1 1),),F F(x x,xdataxdatan n)T T中的参变量中的参变量x(x(向量向量),),使得使得 输入格式为输入格式为:(1)x=lsqcurvefit(fun,x0,xdata,ydata);(2)x=lsqcurvefit(fun,x0,xdata,ydata,options);(3)x=lsqc

21、urvefit(fun,x0,xdata,ydata,options,grad);(4)x,options=lsqcurvefit(fun,x0,xdata,ydata,);(5)x,options,funval=lsqcurvefit(fun,x0,xdata,ydata,);(6)x,options,funval,Jacob=lsqcurvefit(fun,x0,xdata,ydata,);fun是一个事先建立的是一个事先建立的定义函数定义函数F(x,xdata)的的M-文件文件,自变量为自变量为x和和xdata说明:x=lsqcurvefit(fun,x0,xdata,ydata,opt

22、ions);迭代初值迭代初值已知数据点已知数据点选项见无选项见无约束优化约束优化 lsqnonlin用以求含参量用以求含参量x x(向量)的向量值函数向量)的向量值函数 f(x)f(x)=(f=(f1 1(x),f(x),f2 2(x),(x),f,fn n(x)(x)T T 中的参量中的参量x x,使得使得 最小。最小。其中其中 fi(x)=f(x,xdatai,ydatai)=F(x,xdatai)-ydatai 2.lsqnonlin已知数据点:已知数据点:xdataxdata=(xdata1,xdata2,xdataxdatan n)ydataydata=(ydataydata1 1,

23、ydataydata2 2,ydataydatan n)输入格式为:输入格式为:1)x=lsqnonlin(fun,x0);2)x=lsqnonlin(fun,x0,options);3)x=lsqnonlin(fun,x0,options,grad);4)x,options=lsqnonlin(fun,x0,);5)x,options,funval=lsqnonlin(fun,x0,);说明:x=lsqnonlinlsqnonlin(fun,x0,options););fun是一个事先建立的是一个事先建立的定义函数定义函数f(x)的的M-文件,文件,自变量为自变量为x迭代初值迭代初值选项见无

24、选项见无约束优化约束优化 例例2 用下面一组数据拟合用下面一组数据拟合 中的参数中的参数a,b,k该问题即解最优化问题:该问题即解最优化问题:1 1)编写编写M-M-文件文件 curvefun1.mcurvefun1.m function f=curvefun1(x,tdata)f=x(1)+x(2)*exp(-0.02*x(3)*tdata)%其中其中 x(1)=a;x(2)=b;x(3)=k;2)输入命令输入命令tdatatdata=100:100:1000=100:100:1000cdatacdata=1e-03*4.54,4.99,5.35,5.65,5.90,6.10,6.26,6.

25、39,*4.54,4.99,5.35,5.65,5.90,6.10,6.26,6.39,6.50,6.59;6.50,6.59;x0=0.2,0.05,0.05;x0=0.2,0.05,0.05;x=x=lsqcurvefitlsqcurvefit(curvefun1,x0,tdata,cdata)(curvefun1,x0,tdata,cdata)f=f=curvefun1(x,tdata)F(x,tdata)=,x=(a,b,k)解法解法1 1.用命令用命令lsqcurvefitlsqcurvefit3 3)运算结果为运算结果为:f=0.0043 0.0051 0.0056 0.0059

26、0.0061 f=0.0043 0.0051 0.0056 0.0059 0.0061 0.0062 0.0062 0.0063 0.0063 0.0063 0.0062 0.0062 0.0063 0.0063 0.0063 x=0.0063 -0.0034 0.2542 x=0.0063 -0.0034 0.25424)结论)结论:a=0.0063,b=-0.0034,k=0.2542 解法解法 2 用命令用命令lsqnonlin f(x)=F(x,tdata,ctada)=x=(a,b,k)1)编写编写M-M-文件文件 curvefun2.mcurvefun2.m function f=

27、curvefun2(x)tdata=100:100:1000;cdata=1e-03*4.54,4.99,5.35,5.65,5.90,6.10,6.26,6.39,6.50,6.59;f=x(1)+x(2)*exp(-0.02*x(3)*tdata)-cdata2)输入命令输入命令:x0=0.2,0.05,0.05;x=lsqnonlin(curvefun2,x0)f=curvefun2(x)函数函数curvefun2的自变量是的自变量是x,cdata和和tdata是已知参数,故应是已知参数,故应将将cdata tdata的值写在的值写在curvefun2.m中中3 3)运算结果为)运算结果

28、为 f=1.0e-003*(0.2322 -0.1243 -0.2495 -0.2413 f=1.0e-003*(0.2322 -0.1243 -0.2495 -0.2413-0.1668 -0.0724 0.0241 0.1159 0.2030 0.2792-0.1668 -0.0724 0.0241 0.1159 0.2030 0.2792 x=0.0063 -0.0034 0.2542 x=0.0063 -0.0034 0.2542可以看出可以看出,两个命令的计算结果是相同的两个命令的计算结果是相同的.4)结论)结论:即拟合得即拟合得a=0.0063 b=-0.0034 k=0.25420.0063 b=-0.0034 k=0.2542

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁