资源描述:
《第5章Matlab数值计算2014ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章MATLAB数值计算(2)1插值与逼近2常微分方程数值求解3非线性方程数值求解插值与逼近插值:在实际问题中常遇到这样的函数y=f(x)其在某个区间[a,b]上是存在的,但通过观测或测量或实验只能的到在这个区间[a,b]上有限个离散点x0,x1,…,xn上的函数值y=f(xi)(i=0,1,…,n)或f(x)的函数表达式是已知的,但确很复杂而不便于计算,希望用一个简单的函数来描述它。3假设函数y=f(x)是[a,b]上的实值函数,x0,x1,…,xn是[a,b]上n+1个互异的点,f(x)在这些点上的取值分别为y0,y1,
2、…,yn,求一个确定的函数P(x),使之满足:P(xi)=yi(i=0,1,2,…,n)(10-5)称x0,x1,…,xn为插值节点,关系式(1)称为插值原则,函数P(x)称为函数y=f(x)的插值函数,区间[a,b]称为插值区间。插值法的概念:要求该多项式的函数曲线要经过y=f(x)上已知的这n+1个点,(x0,y0),(x1,y1),…(xn,yn)。同时在其它上要估计误差R(x)=f(x)-P(x)。45解:设,其中为待定系数。由给定的条件有:联立上式得:于是,6线性插值线性插值也叫两点插值,已知函数y=f(x)在给定互
3、异点x0,x1上的值为y0=f(x0),y1=f(x1)线性插值就是构造一个一次多项式P1(x)=ax+b使它满足条件P1(x0)=y0P1(x1)=y1(10-6)其几何解释就是一条直线,通过已知点A(x0,y0),B(x1,y1)。(点斜式)(对称式)P1(x)就是所求的一次多项多,称为f(x)的线性插值多项式。7例:用线性插值求(x*=10.723805)解:设,取x0=100,x1=121则y0=10y1=11从而Matlab(实现)yi=interp1([100121],[1011],115)8逼近用简单的函数p(x
4、)近似地代替函数f(x),是计算数学中最基本的概念和方法之一。近似代替又称为逼近,函数f(x)称为被逼近的函数,p(x)称为逼近函数,两者之差称为逼近的误差或余项。9一致逼近以函数f(x)和p(x)的最大误差作为度量误差f(x)-p(x)的“大小”的标准,在这种意义下的函数逼近称为一致逼近或均匀逼近,讲得更具体一点,也即对于任意给定的一个小正数>0,如果存在函数p(x),使不等式成立,则称该函数p(x)在区间[a,b]上一致逼近或均匀逼近于函数f(x)。10平方逼近:如果采用作为度量误差的“大小”的标准,在这种意义下的函数逼
5、近称为平方逼近或均方逼近。这种方法要比一致逼近的相应问题简单得多。11matlab数值插值1.一维数值插值interp1函数调用格式为:Y1=interp1(X,Y,X1,'method')函数根据X、Y的值,计算函数在X1处的值。X、Y是两个等长的已知向量,分别描述采样点和样本值,X1是一个向量或标量,描述欲插值的点,Y1是一个与X1等长的插值结果。method是插值方法,允许的取值有'linear'(线性插值)、'nearest'(最近插值)、'spline'(三次样条插值)、'cubic'(三次多项式插值),缺省值是'l
6、inear'。例用不同的插值方法计算sin(x)在π/2点的值。这是一个一维插值问题。在MATLAB命令窗口,输入命令:X=0:0.2:pi;Y=sin(X);%给出X、Yinterp1(X,Y,pi/2)%用缺省方法(即线性插值方法)计算sin(π/2)interp1(X,Y,pi/2,'nearest')%用最近方法计算sin(π/2)interp1(X,Y,pi/2,'linear')%用线性方法计算sin(π/2)interp1(X,Y,pi/2,'spline')%用三次样条方法计算sin(π/2)interp1(X
7、,Y,pi/2,'cubic')%用三次多项式方法计算sin(π/2)MATLAB中有一个专门的三次样条插值函数Y1=spline(X,Y,X1),其功能及使用方法与函数Y1=interp1(X,Y,X1,'spline')完全相同。例已知检测参数f随时间t的采样结果,用数值插值法计算t=2,7,12,17,22,17,32,37,42,47,52,57时f的值。这是一个一维数值插值问题,命令如下:T=0:5:65;X=2:5:57;F=[3.2015,2.2560,879.5,1835.9,2968.8,4136.2,523
8、7.9,6152.7,...6725.3,6848.3,6403.5,6824.7,7328.5,7857.6];F1=interp1(T,F,X)%用线性方法插值F1=interp1(T,F,X,'nearest')%用最近方法插值F1=interp1(T,F,X,'spl