《数值分析期中报告》由会员分享,可在线阅读,更多相关《数值分析期中报告(17页珍藏版)》请在金锄头文库上搜索。
1、 主讲:主讲:41 41 余巧花余巧花 编辑员:编辑员:36 36 林燕芳林燕芳31 31 任婷任婷56 56 缪晓丹缪晓丹 材料收集员:材料收集员:34 34 黄娟黄娟35 35 胡珊胡珊36 36 郭丽娜郭丽娜42 42 蒋汇颖蒋汇颖数值分析期中报告-第四组插值和拟和插值和拟和插值插值v已知有n +1个节点(xj,yj),j = 0,1, n,其中xj互不相同,节点(xj, yj)可看成由 某个函数 y= f(x)产生;构造一个相对简单的函数 y=P(x);使P通过全部节点,即 P (xk) = yk,k=0,1, n ;用P (x)作为函数f ( x )的近似。yi=interp1(x,
2、y,xi,method)插值方法被插值点插值节点xi处的插 值结果nearest :最邻近插值 linear : 线性插值; spline : 三次样条插值; cubic : 立方插值。 缺省时: 线性插值。注意:所有的插值方法都要求x是单调的,并且xi不 能够超过x的范围。用MATLAB作一维插值计算机床加工问题机床加工问题v用程控铣床加工机翼断面的下轮廓线时v每一刀只能沿x方向和y方向走非常小的一步。v表3-1给出了下轮廓线上的部分数据v但工艺要求铣床沿x方向每次只能移动0.1单位. v这时需求出当x坐标每改变0.1单位时的y坐标。v试完成加工所需的数据,画出曲线.例:求解机床加工问题例:
3、求解机床加工问题x0=0 3 5 7 9 11 12 13 14 15 ; y0=0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6 ; x=0:0.1:15; y=interp1(x0,y0,x,spline); plot(x0,y0,k+,x,y,r) grid on要求x0,y0单调;x,y可取为矩阵,或x取 行向量,y取为列向量,x,y的值分别不能超出 x0,y0的范围。z=interp2(x0,y0,z0,x,y,method)被插值点插值方法插值 节点被插值点 的函数值nearest 最邻近插值 linear 双线性插值 cubic 双三次插值 缺省时, 双
4、线性插值用MATLAB作网格节点数据的插值(二维)cz =griddata(x,y,z,cx,cy,method)要求cx取行向量,cy取为列向量。被插值点插值方法插值 节点被插值点 的函数值nearest 最邻近插值 linear 双线性插值 cubic 双三次插值 v4 Matlab提供的插值方法 缺省时, 双线性插值用MATLAB作散点数据的插值计算例例: : 航行区域的警示线航行区域的警示线v某海域上频繁地有各种吨位的船只经过。v为保证船只的航行安全,有关机构在低潮时对水深进行 了测量,表3-8是他们提供的测量数据:表3-8. 水道水深的测量数据x 129.0 140.0 103.5
5、88.0 185.5 195.0 105.5y 7.5 141.5 23.0 147.0 22.5 137.5 85.5z 4 8 6 8 6 8 8x 157.5 107.5 77.0 81.0 162.0 162.0 117.5y -6.5 -81.0 3.0 56.5 -66.5 84.0 -33.5z 9 9 8 8 9 4 9航行区域的警示线航行区域的警示线v其中(x, y)为测量点,z为(x, y)处的水深( 英尺),水深z是区域坐标(x, y)的函数z= z (x, y),v船的吨位可以用其吃水深度来反映,分为 4英 尺、4.5英尺、5英尺和 5.5英尺 4 档。v 航运部门要在
6、矩形海域(75,200)(50 ,150)上为不同吨位的航船设置警示标记。v请根据测量的数据描述该海域的地貌,并绘制 不同吨位的警示线,供航运部门使用。MatlabMatlab求解求解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=-70:0.5:150
7、; cz=griddata(x,y,z,cx,cy,cubic);meshz(cx,cy,cz), xlabel(X),ylabel(Y),zlabel(Z)figure(2),contour(cx,cy,cz,-5 -5); grid on, hold on plot(x,y,+) xlabel(X),ylabel(Y)曲线拟合曲线拟合 已知一组(二维)数据,即平面上 n个点(xi,yi) i=1,n, 寻求一个函数(曲线)y=f(x), 使 f(x) 在某种准则 下与所有数据点最为接近,即曲线拟合得最好。 + + + +xyy=f(x)(xi,yi)ii 为点(xi,yi) 与曲线 y=f
8、(x) 的距离最常用的方法是线性最小二乘拟和多项式拟合多项式拟合对给定的数据(xj,yj),j = 0,1, n;选取适当阶数的多项式,如二次多项式 g(x)=ax2+bx+c;使g(x)尽可能逼近(拟合)这些数据,但 是不要求经过给定的数据(xj,yj);1. 多项式f(x)=a1xm+ +amx+am+1拟合指令:a=polyfit(x,y,m)2.多项式在x处的值y的计算命令:y=polyval(a,x)输出拟合多项式系数a=a1,am,am+1 (数组)输入同长度数组X,Y拟合多项式 次数多项式拟合指令即要求出二次多项式:中 的使得:例 对下面一组数据作二次多项式拟合xi00.10.20.30.40.50.60.70.80.91yi-0.4471.9783.286.166.167.347.669.589.489.3011.22)计算结果: = -9.8108, 20.1293, -0.0317解:用多项式拟合的命令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) %作出数据点和拟合曲线的图形