插值和拟合讲义优秀PPT.ppt
《插值和拟合讲义优秀PPT.ppt》由会员分享,可在线阅读,更多相关《插值和拟合讲义优秀PPT.ppt(77页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、插值和拟合讲义你现在浏览的是第一页,共77页11一维插值一维插值22二维插值二维插值你现在浏览的是第二页,共77页你现在浏览的是第三页,共77页你现在浏览的是第四页,共77页你现在浏览的是第五页,共77页注:Hermite插值(略)你现在浏览的是第六页,共77页Runge现象你现在浏览的是第七页,共77页你现在浏览的是第八页,共77页你现在浏览的是第九页,共77页用用MATLAB作插值计算作插值计算一维插值函数:一维插值函数:yi=interp1(x,y,xi,method)插值方法插值方法被插值点被插值点插值节点插值节点xi处的插处的插值结果值结果nearest 最邻近插值;最邻近插值;li
2、near 线性插值线性插值(缺省);缺省);spline 三次样条插值;三次样条插值;cubic 立方插值;立方插值;缺省时缺省时 分段线性插值分段线性插值 注注意意:所所有有的的插插值值方方法法都都要要求求x是是单单调调,并并且且xi不能够超过不能够超过x的范围的范围你现在浏览的是第十页,共77页例例1.用三次样条插值选取用三次样条插值选取11个基点计算插值个基点计算插值x0=linspace(-5,5,11);y0=1./(1+x0.2);x=linspace(-5,5,100);y=interp1(x0,y0,x,spline);x1=linspace(-5,5,100);y1=1./(
3、1+x1.2);plot(x1,y1,k,x0,y0,+,x,y,r)此例,可以看出插值函数得到的函数图像与原函数很接近。此例,可以看出插值函数得到的函数图像与原函数很接近。你现在浏览的是第十一页,共77页 例例2 2:从:从1 1点点1212点点的的1111小时内,每隔小时内,每隔1 1小时测量一次小时测量一次温度,测得的温度的数值依次为:温度,测得的温度的数值依次为:5 5,8 8,9 9,1515,2525,2929,3131,3030,2222,2525,2727,2424试估计每隔试估计每隔1/101/10小时的小时的温度值温度值hours=1:12;temps=5 8 9 15 2
4、5 29 31 30 22 25 27 24;h=1:0.1:12;t=interp1(hours,temps,h,spline);%(直接输出数据将是很多的)plot(hours,temps,+,h,t,b,hours,temps,r:)%作图xlabel(Hour),ylabel(Degrees Celsius)你现在浏览的是第十二页,共77页xy机翼下轮廓线例例3.3.已知飞机下轮廓线上数据如下,求已知飞机下轮廓线上数据如下,求x每改变每改变0.1时的时的y值值你现在浏览的是第十三页,共77页x0=0 3 5 7 9 11 12 13 14 15;y0=0 1.2 1.7 2.0 2.1
5、 2.0 1.8 1.2 1.0 1.6;x=0:0.1:15;y1=interp1(x0,y0,x);y2=interp1(x0,y0,x,spline);subplot(2,1,1)plot(x0,y0,k+,x,y1,r)gridtitle(piecewise linear)subplot(2,1,2)plot(x0,y0,k+,x,y2,r)gridtitle(spline)你现在浏览的是第十四页,共77页你现在浏览的是第十五页,共77页你现在浏览的是第十六页,共77页你现在浏览的是第十七页,共77页你现在浏览的是第十八页,共77页 要求要求x0,y0单调;单调;x,y可取为矩阵,或可
6、取为矩阵,或x取行向量,取行向量,y取取为列向量,为列向量,x,y的值分别不能超出的值分别不能超出x0,y0 0的范围的范围z=interp2(x0,y0,z0,x,y,method)被插值点插值方法用用MATLAB作网格节点数据的插值作网格节点数据的插值插值节点被插值点的函数值nearest 最邻近插值;最邻近插值;linear 双线性插值(缺省值);双线性插值(缺省值);cubic 双三次插值;双三次插值;缺省时缺省时 双线性插值双线性插值.你现在浏览的是第十九页,共77页例例4.4.测得平板表面测得平板表面3 35 5网格点处的温度分别为:网格点处的温度分别为:82 81 80 82 8
7、4 82 81 80 82 84 79 63 61 65 81 79 63 61 65 81 84 84 82 85 86 84 84 82 85 86 试作出平板表面的温度分布曲面试作出平板表面的温度分布曲面z=f(x,y)的图形的图形输入以下命令:x=1:5;y=1:3;temps=82 81 80 82 84;79 63 61 65 81;84 84 82 85 86;mesh(x,y,temps)1.先在三维坐标画出原始数据,画出粗糙的温度分布曲线图.2以平滑数据,在 x、y方向上每隔0.2个单位的地方进行插值.你现在浏览的是第二十页,共77页再输入以下命令:xi=1:0.2:5;yi
8、=1:0.2:3;zi=interp2(x,y,temps,xi,yi,cubic);mesh(xi,yi,zi)画出插值后的温度分布曲面图.你现在浏览的是第二十一页,共77页 通过此例对最近邻点插值、双线性插值方法和双三次插值方法的插值效果进行比较你现在浏览的是第二十二页,共77页figure(1);meshz(x,y,z)xlabel(X)ylabel(Y)zlabel(Z)xi=0:50:5600;yi=0:50:4800;figure(2)z1i=interp2(x,y,z,xi,yi,nearest);surfc(xi,yi,z1i)xlabel(X),ylabel(Y),zlabe
9、l(Z)figure(3)z2i=interp2(x,y,z,xi,yi);surfc(xi,yi,z2i)xlabel(X),ylabel(Y),zlabel(Z)figure(4)z3i=interp2(x,y,z,xi,yi,cubic);surfc(xi,yi,z3i)xlabel(X),ylabel(Y),zlabel(Z)figure(5)subplot(1,3,1),contour(xi,yi,z1i,10,r);subplot(1,3,2),contour(xi,yi,z2i,10,r);subplot(1,3,3),contour(xi,yi,z3i,10,r);你现在浏览的
10、是第二十三页,共77页 插值函数插值函数griddata格式为格式为:cz=griddata(x,y,z,cx,cy,method)用用MATLAB作散点数据的插值计算作散点数据的插值计算 要求要求cx取行向量,取行向量,cy取为列向量取为列向量被插值点插值方法插值节点被插值点的函数值nearest最邻近插值最邻近插值linear 双线性插值双线性插值cubic 双三次插值双三次插值v4-MATLAB提供的插值方法提供的插值方法缺省时缺省时,双线性插值双线性插值你现在浏览的是第二十四页,共77页 例例6.6.在某海域测得一些点在某海域测得一些点(x,y)处的水深处的水深z由下由下表给出,船的吃
11、水深度为表给出,船的吃水深度为5 5英尺,在矩形区域(英尺,在矩形区域(7575,200200)(-50-50,150150)里的哪些地方船要避免进入)里的哪些地方船要避免进入你现在浏览的是第二十五页,共77页x=129 140 103.5 88 185.5 195 105.5 157.5 107.5 77 81 162 162 117.5;y=7.5 141.5 23 147 22.5 137.5 85.5-6.5-81 3 56.5-66.5 84-33.5;z=-4-8-6-8-6-8-8-9-9-8-8-9-4-9;cx=75:0.5:200;cy=-50:0.5:150;cz=gri
12、ddata(x,y,z,cx,cy,cubic);你现在浏览的是第二十六页,共77页4.作出水深小于5的海域范围,即z=5的等高线.3 作海底曲面图meshz(cx,cy,cz),rotate3dxlabel(X),ylabel(Y),zlabel(Z)figure(2),contour(cx,cy,cz,-5-5);gridhold onplot(x,y,+)xlabel(X),ylabel(Y)你现在浏览的是第二十七页,共77页用用MATLAB解拟合问题解拟合问题1.1.线性最小二乘拟合线性最小二乘拟合2.2.非线性最小二乘拟合非线性最小二乘拟合你现在浏览的是第二十八页,共77页你现在浏览
13、的是第二十九页,共77页你现在浏览的是第三十页,共77页你现在浏览的是第三十一页,共77页你现在浏览的是第三十二页,共77页你现在浏览的是第三十三页,共77页你现在浏览的是第三十四页,共77页用用MATLAB作线性最小二乘拟合作线性最小二乘拟合1.1.作多项式作多项式f(x)=a1xm+amx+am+1拟合拟合,可利用已有程序可利用已有程序:a=polyfit(x,y,m)2.2.对超定方程组对超定方程组可得最小二乘意义下的解可得最小二乘意义下的解,用,用3.3.多项式在多项式在x处的值处的值y可用以下命令计算:可用以下命令计算:y=polyval(a,x)输出拟合多项式系数输出拟合多项式系数
14、a=a1,am,am+1(数组数组))输入同长度输入同长度的数组的数组x,y拟合多项拟合多项式次数式次数你现在浏览的是第三十五页,共77页即要求即要求 出二次多项式出二次多项式:中中 的的使得使得:例例7.对下面一组数据作二次多项式拟合对下面一组数据作二次多项式拟合你现在浏览的是第三十六页,共77页1)输入以下命令)输入以下命令:x=0:0.1:1;y=-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2;R=(x.2)x ones(11,1);A=Ry解法解法1 1用解超定方程的方法用解超定方程的方法2)计算结果)计算结果:=-9
15、.8108 20.1293 -0.0317你现在浏览的是第三十七页,共77页1)输入以下命令:)输入以下命令:x=0:0.1:1;y=-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2;A=polyfit(x,y,2)z=polyval(A,x);plot(x,y,k+,x,z,r)%作出数据点和拟合曲线的图形作出数据点和拟合曲线的图形2)计算结果:)计算结果:=-9.8108 20.1293 -0.0317解法解法2用多项式拟合的命令用多项式拟合的命令你现在浏览的是第三十八页,共77页1.1.lsqcurvefit已知数据点数据
16、点:xdata=(xdata1,xdata2,xdatan),ydata=(ydata1,ydata2,ydatan)用用MATLAB作非线性最小二乘拟合作非线性最小二乘拟合 MATLAB提供了两个求非线性最小二乘拟合的函数:提供了两个求非线性最小二乘拟合的函数:lsqcurvefit和lsqnonlin两个命令都要先建立两个命令都要先建立M M文件文件fun.m,在其中定义函数,在其中定义函数f(x),但两者定义,但两者定义f(x)的方式是不同的的方式是不同的,可参考例题可参考例题.用以求含参量用以求含参量x(向量)的向量值函数(向量)的向量值函数F(x,xdata)=(F(x,xdata1
17、),F(x,xdatan)T中的参变量中的参变量x(x(向量向量),),使得使得 你现在浏览的是第三十九页,共77页 输入格式为输入格式为:(1)x=lsqcurvefit(fun,x0,xdata,ydata);(2)x=lsqcurvefit(fun,x0,xdata,ydata,options);(3)x=lsqcurvefit(fun,x0,xdata,ydata,options,grad);(4)x,options=lsqcurvefit(fun,x0,xdata,ydata,);(5)x,options,funval=lsqcurvefit(fun,x0,xdata,ydata,)
18、;(6)x,options,funval,Jacob=lsqcurvefit(fun,x0,xdata,ydata,);fun是一个事先建立的是一个事先建立的定义函数定义函数F(x,xdata)的的M文件文件,自变量为自变量为x和和xdata说明:x=lsqcurvefit(fun,x0,xdata,ydata,options);迭代初值迭代初值已知数据点已知数据点选项见无选项见无约束优化约束优化你现在浏览的是第四十页,共77页 lsqnonlin用以求含参量用以求含参量x(向量)的向量值函数(向量)的向量值函数 f(x)=(=(f1 1(x),),f2 2(x),),fn(x)T T 中的参
19、量中的参量x,使得,使得 最小最小 其中其中 fi(x)=f(x,xdatai,ydatai)=F(x,xdatai)-ydatai 2.lsqnonlin已知数据点:已知数据点:xdata=(xdata1,xdata2,xdatan)ydata=(ydata1,ydata2,ydatan)你现在浏览的是第四十一页,共77页输入格式为:输入格式为:1)x=lsqnonlin(fun,x0);2)x=lsqnonlin(fun,x0,options);3)x=lsqnonlin(fun,x0,optionsgrad);4)x,options=lsqnonlin(fun,x0,);5)x,opti
20、ons,funval=lsqnonlin(funx0,);说明:x=lsqnonlin(fun,x0,options);fun是一个事先建立的是一个事先建立的定义函数定义函数f(x)的的M文件,文件,自变量为自变量为x迭代初值迭代初值选项见无选项见无约束优化约束优化你现在浏览的是第四十二页,共77页 例例8.用下面一组数据拟合用下面一组数据拟合 中的参数中的参数a,b,k该问题即解最优化问题:该问题即解最优化问题:你现在浏览的是第四十三页,共77页 1 1)编写)编写M M文件文件 curvefun1.m function f=curvefun1(x,tdata)f=x(1)+x(2)*exp
21、(-0.02*x(3)*tdata)%其中其中 x(1)=a;x(2)=b;x(3)=k;2)输入命令)输入命令tdata=100:100:1000cdata=1e-03*4.54,4.99,5.35,5.65,5.90,6.10,6.26,6.39,6.50,6.59;x0=0.2,0.05,0.05;x=lsqcurvefit(curvefun1,x0,tdata,cdata)f=curvefun1(x,tdata)F(x,tdata)=,x=(a,b,k)解法解法1 1.用命令用命令lsqcurvefit你现在浏览的是第四十四页,共77页3 3)运算结果为)运算结果为:f=0.0043
22、0.0051 0.0056 0.0059 0.0061 0.0062 0.0062 0.0063 0.0063 0.0063 x=0.0063 -0.0034 0.25424)结论)结论:a=0.0063,b=-0.0034,k=0.2542你现在浏览的是第四十五页,共77页 解法解法 2 用命令用命令lsqnonlin f(x)=F(x,tdata,ctada)=x=(a,b,k)1)编写编写M M文件文件 curvefun2.m function f=curvefun2(x)tdata=100:100:1000;cdata=1e-03*4.54,4.99,5.35,5.65,5.90,6.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 拟合 讲义 优秀 PPT
限制150内