高教版《数学建模与数学实验(第3版)》第13讲-插值

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

数学建模与数学实验插值实验目的实验内容1.了解插值的基本内容.[1]一维插值[2]二维插值[3]实验作业拉格朗日插值分段线性插值三次样条插值一维插值一、插值的定义二、插值的方法三、用MATLAB解插值问题返回返回二维插值一、二维插值定义二、网格节点插值法三、用MATLAB解插值问题最邻近插值分片线性插值双线性插值网格节点数据的插值散点数据的插值一维插值的定义已知n+1个节点(,)(0,1,,,jjxyjn其中jx互不相同,不妨设),10bxxxan求任一插值点)(*jxx处的插值.*y0x1xnx0y1y节点可视为由)(xgy产生,g表达式复杂,或无封闭形式,或未知.*x*y构造一个(相对简单的)函数),(xfy通过全部节点,即()(0,1,,)jjfxyjn再用)(xf计算插值,即).(**xfy0x1xnx0y1y*x*y返回称为拉格朗日插值基函数.0()()nniiiPxLxy已知函数f(x)在n+1个点x0,x1,…,xn处的函数值为y0,y1,…,yn.求一n次多项式函数Pn(x),使其满足:Pn(xi)=yi,i=0,1,…,n.解决此问题的拉格朗日插值多项式公式如下其中Li(x)为n次多项式:01110111()()()()()()()()()()()iiniiiiiiiinxxxxxxxxxxLxxxxxxxxxxx拉格朗日(Lagrange)插值拉格朗日(Lagrange)插值特别地:两点一次(线性)插值多项式:101001011yxxxxyxxxxxL三点二次(抛物)插值多项式:2120210121012002010212yxxxxxxxxyxxxxxxxxyxxxxxxxxxL,.nLx直接验证可知满足插值条件拉格朗日多项式插值的这种振荡现象叫Runge现象55,11)(2xxxg采用拉格朗日多项式插值:选取不同插值节点n+1个,其中n为插值多项式的次数,当n分别取2,4,6,8,10时,绘出插值结果图形.例返回ToMATLABlch(larg1)分段线性插值0111111()(),(),0,nnjjjjjjjjjjjjjjLxylxxxxxxxxxxlxxxxxx其他计算量与n无关;n越大,误差越小.nnnxxxxgxL0),()(limxjxj-1xj+1x0xnxOyToMATLABxch11,xch12,xch13,xch14.返回66,11)(2xxxg例用分段线性插值法求插值,并观察插值误差.1.在[-6,6]中平均选取5个点作插值(xch11)4.在[-6,6]中平均选取41个点作插值(xch14)2.在[-6,6]中平均选取11个点作插值(xch12)3.在[-6,6]中平均选取21个点作插值(xch13)比分段线性插值更光滑xyxi-1xiab在数学上,光滑程度的定量描述是:函数(曲线)的k阶导数存在且连续,则称该曲线具有k阶光滑性.光滑性的阶次越高,则越光滑.是否存在较低次的分段多项式达到较高阶光滑性的方法?三次样条插值就是一个很好的例子.三次样条插值三次样条插值1(){(),[,],1,,}iiiSxsxxxxin32201)()(1,,)2)()(0,1,,)3)()[,]iiiiiiinsxaxbxcxdinSxyinSxCxx)1,,1()()(),()(),()(111nixsxsxsxsxsxsiiiiiiiiiiii自然边界条件)(0)()()40nxSxS)(,,,)4)3)2xSdcbaiiiig(x)为被插值函数.)()(limxgxSn例66,11)(2xxxg用三次样条插值选取11个基点计算插值(ych)返回ToMATLABych(larg1)用MATLAB作插值计算一维插值函数:yi=interp1(x,y,xi,'method')插值方法被插值点插值节点xi处的插值结果‘nearest’最邻近插值;‘linear’线性插值;‘spline’三次样条插值;‘cubic’立方插值;缺省时分段线性插值.注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围.例:从1点12点的11小时内,每隔1小时测量一次温度,测得的温度的数值依次为:5,8,9,15,25,29,31,30,22,25,27,24.试估计每隔1/10小时的温度值.ToMATLAB(temp)hours=1:12;temps=[589152529313022252724];h=1:0.1:12;t=interp1(hours,temps,h,'spline');(直接输出数据将是很多的)plot(hours,temps,'+',h,t,hours,temps,'r:')%作图xlabel('Hour'),ylabel('DegreesCelsius’)xy机翼下轮廓线X035791112131415Y01.21.72.02.12.01.81.21.01.6例已知飞机下轮廓线上数据如下,求x每改变0.1时的y值.ToMATLAB(plane)返回二维插值的定义xyO第一种(网格节点):已知mn个节点其中互不相同,不妨设构造一个二元函数通过全部已知节点,即再用计算插值,即第二种(散乱节点):yxO已知n个节点其中互不相同,构造一个二元函数通过全部已知节点,即再用计算插值,即返回注意:最邻近插值一般不连续.具有连续性的最简单的插值是分片线性插值.最邻近插值xy(x1,y1)(x1,y2)(x2,y1)(x2,y2)O二维或高维情形的最邻近插值,与被插值点最邻近的节点的函数值即为所求.返回将四个插值点(矩形的四个顶点)处的函数值依次简记为:分片线性插值xy(xi,yj)(xi,yj+1)(xi+1,yj)(xi+1,yj+1)Of(xi,yj)=f1,f(xi+1,yj)=f2,f(xi+1,yj+1)=f3,f(xi,yj+1)=f4插值函数为:12132(,)()()()()ijfxyfffxxffyy第二片(上三角形区域):(x,y)满足11()jjiiiiyyyxxyxx插值函数为:14134(,)()()()()jifxyfffyyffxx注意:(x,y)当然应该是在插值节点所形成的矩形区域内.显然,分片线性插值函数是连续的;分两片的函数表达式如下:第一片(下三角形区域):(x,y)满足返回双线性插值是一片一片的空间二次曲面构成.双线性插值函数的形式如下:(,)()()fxyaxbcyd其中有四个待定系数,利用该函数在矩形的四个顶点(插值节点)的函数值,得到四个代数方程,正好确定四个系数.双线性插值xy(x1,y1)(x1,y2)(x2,y1)(x2,y2)O返回要求x0,y0单调;x,y可取为矩阵,或x取行向量,y取为列向量,x,y的值分别不能超出x0,y0的范围.z=interp2(x0,y0,z0,x,y,’method’)被插值点插值方法用MATLAB作网格节点数据的插值插值节点被插值点的函数值‘nearest’最邻近插值;‘linear’双线性插值;‘cubic’双三次插值;缺省时双线性插值.例:测得平板表面3×5网格点处的温度分别为:828180828479636165818484828586试作出平板表面的温度分布曲面z=f(x,y)的图形.输入以下命令:x=1:5;y=1:3;temps=[8281808284;7963616581;8484828586];mesh(x,y,temps)1.先在三维坐标画出原始数据,画出粗糙的温度分布曲线图.2.以平滑数据,在x、y方向上每隔0.2个单位的地方进行插值.再输入以下命令:xi=1:0.2:5;yi=1:0.2:3;zi=interp2(x,y,temps,xi',yi,'cubic');mesh(xi,yi,zi)画出插值后的温度分布曲面图.ToMATLAB(wendu)例山区地貌:在某山区测得一些地点的高程如下表。平面区域为1200=x=4000,1200=y=3600)试作出该山区的地貌图和等高线图,并对几种插值方法进行比较。XY12001600200024002800320036004000120011301250128012301040900500700160013201450142014001300700900850200013901500150014009001100106095024001500120011001350145012001150101028001500120011001550160015501380107032001500155016001550160016001600155036001480150015501510143013001200980通过此例对最近邻点插值、双线性插值方法和双三次插值方法的插值效果进行比较.ToMATLAB(moutain)返回插值函数griddata格式为:cz=griddata(x,y,z,cx,cy,‘method’)用MATLAB作散点数据的插值计算要求cx取行向量,cy取为列向量.被插值点插值方法插值节点被插值点的函数值‘nearest’最邻近插值‘linear’双线性插值‘cubic’双三次插值'v4'-MATLAB提供的插值方法缺省时,双线性插值例在某海域测得一些点(x,y)处的水深z由下表给出,船的吃水深度为5英尺,在矩形区域(75,200)×(-50,150)里的哪些地方船要避免进入.xyz129140103.588185.51951057.5141.52314722.5137.585.54868688xyz157.5107.57781162162117.5-6.5-81356.5-66.584-33.599889492.75,20050,150.(1)hd在矩形区域作二维插值三次插值法..1输入插值基点数据ToMATLABhd1返回4.作出水深小于5的海域范围,即z=5的等高线...3作海底曲面图实验作业山区地貌:在某山区测得一些地点的高程如下表:(平面区域1200≤x≤4000,1200≤y≤3600),试作出该山区的地貌图和等高线图,并对几种插值方法进行比较.360032002800240020001600120014801500155015101430130012009801500155016001550160016001600155015001200110015501600155013801070150012001100135014501200115010101390150015001400900110010609501320145014201400130070090085011301250128012301040900500700y/x12001600200024002800320036004000返回

1 / 33
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功