常用方法MATLAB求解.ppt
《常用方法MATLAB求解.ppt》由会员分享,可在线阅读,更多相关《常用方法MATLAB求解.ppt(66页珍藏版)》请在三一办公上搜索。
1、1,数学建模竞赛,2,一、曲线拟合及MATLAB软件求解,已知离散点上的数据集,求得一解析函数y=f(x)使y=f(x)在原离散点,接近给定,曲线拟合是最小二乘法曲线拟合,拟合结果可使误差的,上尽可能,的值,这一过程叫曲线拟合。最常用的,平方和最小,即找出使,最小的f(x).,几种常见的数学方法及软件求解,3,格式:p=polyfit(x,y,n).,说明:求出已知数据x,y 的n次拟合多项式f(x)的系数p,x 必须是单调的。,例1 已知某函数的离散值如表,求二次拟合多项式.,先画函数离散点的图形,输入命令:,x=0.5 1.0 1.5 2.0 2.5 3.0;,y=1.75 2.45 3.
2、81 4.80 7.00 8.60;,scatter(x,y,5),结果见图,4,由图可看出可用二次多项式拟合。,再输入命令:,p=polyfit(x,y,2),p=0.5614 0.8287 1.1560,即二次拟合多项式为,5,画出离散点及拟合曲线:,输入命令:,x1=0.5:0.05:3.0;,y1=polyval(p,x1);,plot(x,y,*r,x1,y1,-b),结果见图5.4,6,1、一维插值的定义,二、一维插值,7,8,称为拉格朗日插值基函数。,已知函数f(x)在n+1个点x0,x1,xn处的函数值为 y0,y1,yn。求一n次多项式函数Pn(x),使其满足:Pn(xi)=
3、yi,i=0,1,n.,解决此问题的拉格朗日插值多项式公式如下,其中Li(x)为n次多项式:,拉格朗日(Lagrange)插值,9,拉格朗日(Lagrange)插值,特别地:,两点一次(线性)插值多项式:,三点二次(抛物)插值多项式:,10,分段线性插值,计算量与n无关;n越大,误差越小.,11,比分段线性插值更光滑。,在数学上,光滑程度的定量描述是:函数(曲线)的k阶导数存在且连续,则称该曲线具有k阶光滑性。光滑性的阶次越高,则越光滑。是否存在较低次的分段多项式达到较高阶光滑性的方法?三次样条插值就是一个很好的例子。,三次样条插值,12,三次样条插值,g(x)为被插值函数。,13,2、一维插
4、值的MATLAB软件命令:,已知离散点上的数据集,求得一解析函数连接自变量相邻的两个点,并求得两点,间的数值,这一过程叫插值。,MATLAB在一维插值函数interp1中,提供了四种插值方法选择:线性插值、三次样条插值、立方插值和最近邻点插值。interp1的本格式为:,yi=interp1(x,y,xi,method),其中x,y分别表示数据点的横、纵坐标向量,x 必须单调,xi为需要插值的横坐标数据(或数组),xi不能超出x的范围,而method为可选参数,有四种选择:,nearest:最邻近插值,linear:线性插值;,14,spline:三次样条插值;,cubic:立方插值。,缺省时
5、:分段线性插值。,例2 在1-12的11小时内,每隔1小时测量一次温度,测得的温度依次为:5,8,9,15,25,29,31,30,22,25,27,24。试估计在 3.2,6.5,7.1,11.7小时的温度值。,解 输入命令:,hours=1:12;,temps=5 8 9 15 25 29 31 30 22 25 27 24;,t=interp1(hours,temps,3.2 6.5 7.1 11.7)%线性插值,t=10.2000 30.0000 30.9000 24.9000,15,T=interp1(hours,temps,3.2 6.5 7.1 11.7,spline)%三次样条
6、插值,T=9.6734 30.0427 31.1755 25.3820,比较发现,两种结果有差异,这是因为插值是一个估计或猜测的过程。,两种插值的画图如下;,输入命令:,t0=1:0.1:12;,T0=interp1(hours,temps,t0,spline);,plot(hours,temps,+,t0,T0,hours,temps,r:),xlabel(时间);,ylabel(温度),16,gtext(线性插值),gtext(三次样条插值),结果见图5.5,17,三、二维插值,对二维插值问题,MATLAB分别给出了针对插值基点为网格节点的插值函数及针对插值基点为散乱节点的插值函数调用格式
7、。,1、用MATLAB作网格节点数据的插值,对上述问题,MATLAB提供了二维插值函数interp2,其基本格式为:,18,z=interp2(x0,y0,z0,x,y,method),其中x0,y0是自变量。X0,y0的分量值必须是单调递增的。X0和y0分别是m维和n维向量,分别表示已知数据点的横、纵坐标向量,z0是m*n维矩阵,标明相应于所给数据网格点的函数值。向量x,y是待求函数值所给定网格点的的横、纵坐标向量,x,y的值分别不能超出x0,y0的范围。,而method为可选参数,有四种选择:,nearest 最邻近插值,linear 线性插值,spline 三次样条插值,cubic 三次
8、插值,缺省时,是线性插值,19,例3:测得平板表面35网格点处的温度分别为:,82 81 80 82 84 79 63 61 65 81 84 84 82 85 86,试求在平板表面坐标为(1.5,1.5),(2,1.6),(2.5,2)(3.5,4.5)处的温度,并作平板表面的温度分布曲面z=f(x,y)的图形,,(1)先在三维坐标画出原始数据,画出粗糙的温度分布曲图.,输入以下命令:,x0=1:5;,y0=1:3;,temps=82 81 80 82 84;79 63 61 65 81;84 84 82 85 86;,20,mesh(x0,y0,temps),结果见图5.6,分别用线性性插
9、值和三次样条插值求已知点的温度。,输入命令:,21,t=interp2(x0,y0,temps,1.5 2 2.5 3.5,1.5 1.6 2 4.5,liner),t=76.2500 70.2000 62.0000 NaN,T=interp2(x0,y0,temps,1.5 2 2.5 3.5,1.5 1.6 2 4.5,spline),T=71.4531 65.5200 60.9688 188.8906,(2)以平滑数据,在x、y方向上每隔0.2个单位的地方进行插值画出线性和三次样条插值的温度分布曲面图.,输入以下命令得温度的线性插值曲面图:,x=1:0.2:5;,y=1:0.2:3;,z
10、=interp2(x0,y0,temps,x,y,linear);,mesh(x,y,z),22,xlabel(x轴);,ylabel(y轴);,zlabel(z轴),title(线性插值曲面图),结果见图5.7,23,再输入以下命令得温度的三次样条插值曲面图:,z=interp2(x0,y0,temps,x,y,spline);,mesh(x,y,z),xlabel(x轴);,ylabel(y轴);,zlabel(z轴),title(三次样条插值曲面图),结果见图5.7,24,例 4 山区地貌:,在某山区测得一些地点的高程如下表。平面区域为 1200=x=4000,1200=y=3600)试
11、作出该山区的地貌图和等高线图,并对几种插值方法进行比较。,25,此例将对最近邻点插值、线性插值方法和双三次插值方法的插值效果进行比较。,输入命令:,x0=0:400:5600;,y0=0:400:4800;,z0=370 470 550 600 670 690 670 620 580 450 400 300 100 150 250;.510 620 730 800 850 870 850 780 720 650 500 200 300 350 320;.650 760 880 970 1020 1050 1020 830 900 700 300 500 550 480 350;.740 880
12、 1080 1130 1250 1280 1230 1040 900 500 700 780 750 650 550;.830 980 1180 1320 1450 1420 1400 1300 700 900 850 840 380 780 750;.880 1060 1230 1390 1500 1500 1400 900 1100 1060 950 870 900 930 950;.910 1090 1270 1500 1200 1100 1350 1450 1200 1150 1010 880 1000 1050 1100;.950 1190 1370 1500 1200 1100 1
13、550 1600 1550 1380 1070 900 1050 1150 1200;.1430 1430 1460 1500 1550 1600 1550 1600 1600 1600 1550 1500 1500 1550 1550;.1420 1430 1450 1480 1500 1550 1510 1430 1300 1200 980 850 750 550 500;.1380 1410 1430 1450 1470 1320 1280 1200 1080 940 780 620 460 370 350;.1370 1390 1410 1430 1440 1140 1110 1050
14、 950 820 690 540 380 300 210;.1350 1370 1390 1400 1410 960 940 880 800 690 570 430 290 210 150;,26,meshz(x0,y0,z0),xlabel(x轴);,ylabel(y轴);,zlabel(z轴),title(原始数据山区表面图),结果见图5.8,27,(1)线性插值,输入命令:,z2=interp2(x0,y0,z0,x,y,linear);,surfc(x,y,z2),xlabel(x轴);,ylabel(y轴);,zlabel(z轴),title(线性插值表面图),结果见图5.10,每隔
15、50加密网格,分别作线性插值、三次样条插值,作出插值后的表面图:,28,(2)三次样条插值,输入命令:,z3=interp2(x0,y0,z0,x,y,spline);,surfc(x,y,z3),xlabel(x轴);,ylabel(y轴);,zlabel(z轴),title(三次样条插值表面图),结果见图5.11,29,2、用MATLAB作散乱节点数据的插值,对上述问题,MATLAB提供了二维插值函数griddata,其基本格式为:,z=griddata(x0,y0,z0,x,y,method),其中X0、y0、z0均是n维向量,分别表示已知数据点的横、纵坐标和竖坐标向量。向量x,y是待求
16、函数值所给定网格点的的横、纵坐标向量。,而method为可选参数,有四种选择:,nearest 最邻近插值,linear 线性插值,cubic 三次插值,30,v4 Matlab提供的插值方法,缺省时,线性插值,例5 在某海域测得一些点(x,y)处的水深z由下表5.3给出,船的吃水深度为5英尺,在矩形区域(75,200)*(-50,150)里的哪些地方船要避免进入。,31,(1)作出测量点的分布图,MATLAB命令:,x0=129 140 103.5 88 185.5 195 105.5 157.5 107.5 77 81 162 162 117.5;,y0=7.5 141.5 23 147
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 常用 方法 MATLAB 求解
链接地址:https://www.31ppt.com/p-6469399.html