数值计算04-插值与拟合.pptVIP

  • 11
  • 0
  • 约8.27千字
  • 约 90页
  • 2017-06-09 发布于湖北
  • 举报
数值计算04-插值与拟合

用MATLAB作线性最小二乘拟合 1. 作多项式f(x)=a1xm+ …+amx+am+1拟合,可利用已有程序: a=polyfit(x,y,m) 2. 对超定方程组 可得最小二乘意义下的解。 ,用 3.多项式在x处的值y可用以下命令计算: y=polyval(a,x) 输出拟合多项式系数 a=[a1, …am , am+1] (数组)) 输入同长度 的数组X,Y 拟合多项 式次数 即要求 出二次多项式: 中 的 使得: 例2.15 对下面一组数据作二次多项式拟合 1)输入以下命令: x=0:0.1:1; y=[-0447 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(10,1)]; A=R\y 解法1.用解超定方程的方法 2)计算结果: A = -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) %作出数据点和拟合曲线的图形 2)计算结果: A = -9.8108 20.1293 -0.0317 解法2.用多项式拟合的命令 1. lsqcurvefit 已知数据点: xdata=(xdata1,xdata2,…,xdatan), ydata=(ydata1,ydata2,…,ydatan) 用MATLAB作非线性最小二乘拟合 Matlab的提供了两个求非线性最小二乘拟合的函数:lsqcurvefit和lsqnonlin。两个命令都要先建立M-文件fun.m,在其中定义函数f(x),但两者定义f(x)的方式是不同的. lsqcurvefit用以求含参量x(向量)的向量值函数 F(x,xdata)=(F(x,xdata1),…,F(x,xdatan))T 中的参变量x(向量),使得 双线性插值是一片一片的空间二次曲面构成。 双线性插值函数的形式如下: 其中有四个待定系数,利用该函数在矩形的四个顶点(插值节点)的函数值,得到四个代数方程,正好确定四个系数。 双线性插值 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’ 双三次插值 缺省时, 双线性插值 例2.10:测得平板表面3*5网格点处的温度分别为: 82 81 80 82 84 79 63 61 65 81 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.先在三维坐标画出原始数据,画出粗糙的温度分布曲图. %输入以下命令: xi=1:0.2:5; yi=1:0.2:3; zi=interp2(x,y,temps,xi,yi,cubic); mesh(xi,yi,zi) 2.以平滑数据,在x、y方向上每隔0.2个单位的地方进行插值, 画出插值后的温度分布曲面图. * 已知某处山区地形选点测量坐标数据为: x=0? 0.5? 1? 1.5? 2? 2.5? 3? 3.5? 4? 4.5? 5 y=0? 0.5? 1? 1.5? 2? 2.5? 3? 3.5? 4? 4.5? 5? 5.5? 6 海拔高度数据为: z=89 90 87 85 92 91 96 93 90 87 82 ?? 92 96 98 99 95 91 89 86 84 82 84 ?? 96 98 95 92 90 88 85 84 83 81 85 ?? 80 81 82 89 95 96 93 92 89 86 86 ?? 82 85 87 9

文档评论(0)

1亿VIP精品文档

相关文档