240 likes | 337 Views
高维问题. 钮海. 插值点. 插值. 问题. 二维问题 - 插值. 插值:. z. 要求:对任意自变量 x1< x <xn , y1< y <ym , 求对应的 z 值. 二维问题 - 插值. x 2. x 1. x 3. x 4. x. x. y 1. y 2. y. z ?. y 3. y 4. y. ( 网格 ) 插值节点. 实现. Matlab 实现 : 插值函数 (程序) 插值 = interp2 ( x 数据 , y 数据 , z 数据 , x 插值点 , y 插值点 , 方法 ).
E N D
高维问题 钮海
插值点 插值 问题 二维问题-插值 • 插值: z • 要求:对任意自变量x1<x<xn, y1<y<ym, • 求对应的z值
二维问题-插值 x2 x1 x3 x4 x x y1 y2 y z? y3 y4 y (网格)插值节点
实现 • Matlab实现:插值函数(程序) 插值= interp2(x数据, y数据,z数据, x插值点, y插值点, 方法) 方法:1.省却‘bilinear‘-分段双线性 2. ‘binearest ‘寻找最近数据点,由其得出函数值; 3.‘bicubic’-分段双三次 4.‘spline’-样条
实验 先创造数据点: [x,y] = meshgrid(–3:1:3); z = peaks(x,y); surf(x,y,z)
实验 再比较一下不同的插值 [xi,yi] = meshgrid(–3:0.25:3); zi1 = interp2(x,y,z,xi,yi,'nearest'); zi2 = interp2(x,y,z,xi,yi,'bilinear'); zi3 = interp2(x,y,z,xi,yi,‘bicubic’); surf(x,y,z)
高维插值 • 三维及多维插值 • 列出函数,其余从略 • VI = interp3(X,Y,Z,V,XI,YI,ZI,method)VI = interpn(X1,X2,X3...,V,Y1,Y2,Y3,...,method)
建模实例 • 逢山开路(CMCM94A) • 1.问题提出 • 要在一山区修建公路,首先测得一些地点的高程,数据见表1(平面区域0≤x≤5600, 0≤y≤4800 表中数据为坐标点的高程,单位:米).
建模实例 表1 (y轴正向为北)
建模实例 • 作山体三维图像 • 建立m文件 cm94a.m x2 x1 x3 x4 x y1 y2 y3 y4 y
建模实例 • x=0:400:5600;y=0:400:4400; • [X,Y] = meshgrid(x,y); • Z=[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 800 700 300 500 550 480 350; 740 880 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; 895 1190 1370 1500 1200 1100 1550 1600 1550 1380 1070 900 1050 1150 1200; 1430 1450 1460 1500 1550 1600 1550 1600 1600 1600 1550 1500 1500 1550 1500; 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 950 820 690 540 380 300 210; 1350 1370 1390 1400 1410 960 940 880 800 690 570 430 290 210 150];
建模实例 xin=linspace(0,5600,100); yin=linspace(0,4400,80); [Xin,Yin] = meshgrid(xin,yin); Zin=interp2(X,Y,Z,Xin,Yin, ‘bicubic’); meshz(Xin,Yin, Zin) 保存为cm94a.m
建模实例 在工作区中输入 cm94a
建模实例 旋转
建模实例 旋转
建模实例 旋转
多维问题 回归
问题 高维问题-回归 • 插值:
实现-线性回归 • Matlab实现:线性回归(程序) [b,bint,r,rint,stats]= regress(因变量试数据向量,自变量数据矩阵)
实现-逐步回归 • Matlab实现:逐步回归(程序) stepwise(因变量试数据向量,自变量数据矩阵,[],arfa)