高等数值分析作业--插值

合集下载

数值分析插值法

数值分析插值法

数值分析插值法插值法是数值分析中的一种方法,用于通过已知数据点的函数值来估计介于这些数据点之间的未知函数值。

插值法在科学计算、数据处理、图像处理等领域中得到广泛应用。

插值法的基本思想是通过已知数据点构造一个函数,使得该函数逼近未知函数,并在已知数据点处与未知函数值相等。

插值法的关键是选择适当的插值函数,以保证估计值在插值区间内具有良好的近似性质。

常用的插值法有拉格朗日插值法、牛顿插值法和埃尔米特插值法等。

以下将分别介绍这些插值法的原理及步骤:1. 拉格朗日插值法:拉格朗日插值法通过构造一个多项式函数来逼近未知函数。

假设已知n+1个数据点(x0, y0), (x1, y1), ..., (xn, yn),其中x0, x1, ..., xn为给定的节点,y0, y1, ..., yn为对应的函数值。

拉格朗日插值多项式的一般形式为:L(x) = y0 * l0(x) + y1 * l1(x) + ... + yn * ln(x)其中l0(x), l1(x), ..., ln(x)为拉格朗日基函数,定义为:li(x) = (x - x0)(x - x1)...(x - xi-1)(x - xi+1)...(x - xn) / (xi - x0)(xi - x1)...(xi - xi-1)(xi - xi+1)...(xi - xn)拉格朗日插值法的步骤为:a. 计算基函数li(xi)的值。

b.构造插值多项式L(x)。

c.计算L(x)在需要估计的插值点上的函数值f(x)。

2.牛顿插值法:牛顿插值法通过构造一个差商表来逼近未知函数。

差商表的第一列为已知数据点的函数值,第二列为相邻数据点的差商,第三列为相邻差商的差商,以此类推。

最终,根据差商表中的数值,构造一个差商表与未知函数值相等的多项式函数。

牛顿插值法的步骤为:a.计算差商表的第一列。

b.计算差商表的其他列,直至最后一列。

c.根据差商表构造插值多项式N(x)。

数值分析报告作业-三次样条插值

数值分析报告作业-三次样条插值

数值计算方法作业实验4.3 三次样条差值函数实验目的:掌握三次样条插值函数的三弯矩方法。

实验函数:dt ex f xt ⎰∞--=2221)(πx 0.0 0.1 0.2 0.3 0.4 F(x)0.50000.53980.57930.61790.7554求f(0.13)和f(0.36)的近似值实验内容:(1) 编程实现求三次样条插值函数的算法,分别考虑不同的边界条件; (2) 计算各插值节点的弯矩值;(3) 在同一坐标系中绘制函数f(x),插值多项式,三次样条插值多项式的曲线比较插值结果。

实验名称 实验4.3三次样条插值函数(P126)4.5三次样条插值函数的收敛性(P127)实验时间姓名班级学号成绩实验4.5 三次样条差值函数的收敛性实验目的:多项式插值不一定是收敛的,即插值的节点多,效果不一定好。

对三次样条插值函数如何呢?理论上证明三次样条插值函数的收敛性是比较困难的,通过本实验可以证明这一理论结果。

实验内容:按照一定的规则分别选择等距或非等距的插值节点,并不断增加插值节点的个数。

实验要求:(1)随着节点个数的增加,比较被逼近函数和三样条插值函数的误差变化情况,分析所得结果并与拉格朗日插值多项式比较;(2)三次样条插值函数的思想最早产生于工业部门。

作为工业应用的例子,考虑如下例子:某汽车制造商根据三次样条插值函数设计车门曲线,其中一段数据如下:x0 1 2 3 4 5 6 7 8 9 10 ky0.0 0.79 1.53 2.19 2.71 3.03 3.27 2.89 3.06 3.19 3.29 ky 0.8 0.2 k算法描述:拉格朗日插值:错误!未找到引用源。

其中错误!未找到引用源。

是拉格朗日基函数,其表达式为:()∏≠=--=nij j j i ji x x x x x l 0)()(牛顿插值:))...()(](,...,,[....))(0](,,[)0](,[)()(1102101210100----++--+-+=n n n x x x x x x x x x x f x x x x x x x f x x x x f x f x N其中⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎨⎧--=--=--=-)/(]),...,[],...,[(]...,[..],[],[],,[)()(],[01102110x x x x x f x x x f x x x f x x x x f x x f x x x f x x x f x f x x f n n n n i k j i k j k j i ji j i j i三样条插值:所谓三次样条插值多项式Sn(x)是一种分段函数,它在节点Xi(a<X0<X1……<Xn<b)分成的每个小区间[x i-1,x i ]上是三次多项式,其在此区间上的表达式如下:],[),6()6(]6)([6)(6)()(111113131i i ii i i i i i i i i i i i i i i i i i x x x h yM h M h h y x M M h h y y h x x Mi h x x M x S -------∈-+-+---+-+-=式中Mi=)(i x S ''.因此,只要确定了Mi 的值,就确定了整个表达式,Mi 的计算方法如下:令⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧=---+=+=+=+--++++++],,[6)(6111111111i i i i i i i i i i i i i i i i i i i ix x x f h y y h y y h h d h h h h h h λμ则Mi 满足如下n-1个方程:1,...2,1,211-==+++-n i d M M M i i i i i i λμ 常用的边界条件有如下几类:(1) 给定区间两端点的斜率m 0,m n ,即n n n m y x S m y x S ='='='=')(,)(000 (2) 给定区间两端点的二阶导数M0,Mn,即n n n M y x S M y x S =''=''=''='')(,)(000 (3) 假设y=f(x)是以b-a 为周期的周期函数,则要求三次样条插值函数S (x )也为周期函数,对S (x )加上周期条件2,1,0),0()0()(0)(=-=+p x S x S n p p对于第一类边界条件有⎪⎪⎩⎪⎪⎨⎧--=+--=+--)(62)(6211001110n n nn nn ih y y mn h M M m h y y h M M对于第二类边界条件有⎩⎨⎧=+=+-nn n n d M M d M M 2210100μλ其中nn n n nn n M u x x f m h d M m x x f h d )1(2]),[(6)1(2)],[(6100001010-+-=-+-=-μλλ那么解就可以为⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛----n n n n n n n d d d d d M M M M M 1210121011...2...............2............................1..2.1......0..2μλμλμλ 对于第三类边界条件,)0()0(,,000-=+==n n n x S x S M M y y ,由此推得0010012d M M M n =-++μλ,其中]),1[],[(6,,101010110n n nn n n x x f x x f h h d h h h h h h --+=+=+=μλ,那么解就可以为: ⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛-------1221012101221100...2.............2..............................2..,,.......,..22n n n n n n n d d d d d M M M M M n μλλμλμμλ 程序代码: 1拉格朗日插值函数Lang.mfunction f=lang(X,Y,xi) %X 为已知数据的横坐标 %Y 为已知数据的纵坐标 %xi 插值点处的横坐标%f 求得的拉格朗日插值多项式的值 n=length(X); f=0; for i=1:n l=1; for j=1:i-1l=l.*(xi-X(j))/(X(i)-X(j)); end ; for j=i+1:nl=l.*(xi-X(j))/(X(i)-X(j));end;%拉格朗日基函数f=f+l*Y(i);endfprintf('%d\n',f)return2 牛顿插值函数newton.mfunction f=newton(X,Y,xi)%X为已知数据的横坐标%Y为已知数据的纵坐标%xi插值点处的横坐标%f求得的拉格朗日插值多项式的值n=length(X);newt=[X',Y'];%计算差商表for j=2:nfor i=n:-1:1if i>=jY(i)=(Y(i)-Y(i-1))/(X(i)-X(i-j+1));else Y(i)=0;endendnewt=[newt,Y'];end%计算牛顿插值f=newt(1,2);for i=2:nz=1;for k=1:i-1z=(xi-X(k))*z;endf=f+newt(i-1,i)*z;endfprintf('%d\n',f)return3三次样条插值第一类边界条件Threch.mfunction S=Threch1(X,Y,dy0,dyn,xi) % X为已知数据的横坐标%Y为已知数据的纵坐标%xi插值点处的横坐标%S求得的三次样条插值函数的值%dy0左端点处的一阶导数% dyn右端点处的一阶导数n=length(X)-1;d=zeros(n+1,1);h=zeros(1,n-1);f1=zeros(1,n-1);f2=zeros(1,n-2);for i=1:n%求函数的一阶差商h(i)=X(i+1)-X(i);f1(i)=(Y(i+1)-Y(i))/h(i);endfor i=2:n%求函数的二阶差商f2(i)=(f1(i)-f1(i-1))/(X(i+1)-X(i-1));d(i)=6*f2(i);endd(1)=6*(f1(1)-dy0)/h(1);d(n+1)=6*(dyn-f1(n-1))/h(n-1);%¸赋初值A=zeros(n+1,n+1);B=zeros(1,n-1);C=zeros(1,n-1);for i=1:n-1B(i)=h(i)/(h(i)+h(i+1));C(i)=1-B(i);endA(1,2)=1;A(n+1,n)=1;for i=1:n+1A(i,i)=2;endfor i=2:nA(i,i-1)=B(i-1);A(i,i+1)=C(i-1);endM=A\d;syms x;for i=1:nSx(i)=collect(Y(i)+(f1(i)-(M(i)/3+M(i+1)/6)*h(i))*(x-X(i))... +M(i)/2*(x-X(i))^2+(M(i+1)-M(i))/(6*h(i))*(x-X(i))^3); digits(4);Sx(i)=vpa(Sx(i));%三样条插值函数表达式endfor i=1:ndisp('S(x)=');fprintf('%s (%d,%d)\n',char(Sx(i)),X(i),X(i+1));endfor i=1:nif xi>=X(i)&&xi<=X(i+1)S=Y(i)+(f1(i)-(M(i)/3+M(i+1)/6)*h(i))*(xi-X(i))+M(i)/2*(xi-X(i))^2+(M(i+1)-M(i))/(6*h(i))*( xi-X(i))^3;endenddisp('xi S');fprintf('%d,%d\n',xi,S);return4 三次样条插值第二类边界条件Threch2.mfunction [Sx]=Threch2(X,Y,d2y0,d2yn,xi)X为已知数据的横坐标%Y为已知数据的纵坐标%xi插值点处的横坐标%S求得的三次样条插值函数的值%d2y0左端点处的二阶导数% d2yn右端点处的二阶导数n=length(X)-1;d=zeros(n+1,1);h=zeros(1,n-1);f1=zeros(1,n-1);f2=zeros(1,n-2);for i=1:n%求一阶差商h(i)=X(i+1)-X(i);f1(i)=(Y(i+1)-Y(i))/h(i);endfor i=2:n%求二阶差商f2(i)=(f1(i)-f1(i-1))/(X(i+1)-X(i-1)); d(i)=6*f2(i);endd(1)=2*d2y0;d(n+1)=2*d2yn;%赋初值A=zeros(n+1,n+1);B=zeros(1,n-1);C=zeros(1,n-1);for i=1:n-1B(i)=h(i)/(h(i)+h(i+1));C(i)=1-B(i);endA(1,2)=0;A(n+1,n)=0;for i=1:n+1A(i,i)=2;endfor i=2:nA(i,i-1)=B(i-1);A(i,i+1)=C(i-1);endM=A\d;syms x;for i=1:nSx(i)=collect(Y(i)+(f1(i)-(M(i)/3+M(i+1)/6)*h(i))*(x-X(i))...+M(i)/2*(x-X(i))^2+(M(i+1)-M(i))/(6*h(i))*(x-X(i))^3);digits(4);Sx(i)=vpa(Sx(i));endfor i=1:ndisp('S(x)=');fprintf('%s (%d,%d)\n',char(Sx(i)),X(i),X(i+1));endfor i=1:nif xi>=X(i)&&xi<=X(i+1)S(i)=Y(i)+(f1(i)-(M(i)/3+M(i+1)/6)*h(i))*(xi-X(i))+M(i)/2*(xi-X(i))^2+(M(i+1)-M(i))/(6*h(i) )*(xi-X(i))^3;endenddisp('xi S');fprintf('%d,%d\n',xi,S);return5插值节点处的插值结果main3.mclearclcX=[0.0,0.1,0.2,0.3,0.4];Y=[0.5000,0.5398,0.5793,0.6179,0.7554];xi=0.13;%xi=0.36;disp('xi=0.13');%disp('xi=0.36');disp('拉格朗日插值结果');lang(X,Y,xi);disp('牛顿插值结果');newton(X,Y,xi);disp('三次样条第一类边界条件插值结果');Threch1(X,Y,0.40,0.36,xi);%0.4,0.36分别为两端点处的一阶导数disp('三次样条第二类边界条件插值结果');Threch2(X,Y,0,-0.136,xi);%0,-0.136分别为两端点处的二阶导数6将多种插值函数即原函数图像画在同一张图上main2.mclearclcX=[0.0,0.1,0.2,0.3,0.4];Y=[0.5000,0.5398,0.5793,0.6179,0.7554];a=linspace(0,0.4,21);NUM=21;L=zeros(1,NUM);N=zeros(1,NUM);S=zeros(1,NUM);B=zeros(1,NUM);for i=1:NUMxi=a(i);L(i)=lang(X,Y,xi);% 拉格朗日插值N(i)=newton(X,Y,xi);%牛顿插值B(i)=normcdf(xi,0,1);%原函数S(i)=Threch1(X,Y,0.4,0.36,xi);%三次样条函数第一类边界条件endplot(a,B,'--r');hold on;plot(a,L,'b');hold on;plot(a,N,'r');hold on;plot(a,S,'r+');hold on;legend('原函数','拉格朗日插值','牛顿插值','三次样条插值',2); hold off7增加插值节点观察误差变化main4.mclear;clc;N=5;%4.5第一问Ini=zeros(1,1001);a=linspace(-1,1,1001);Ini=1./(1+25*a.^2);for i=1:3 %节点数量变化次数N=2*N;t=linspace(-1,1,N+1);%插值节点ft=1./(1+25*t.^2);%插值节点函数值val=linspace(-1,1,101);for j=1:101L(j)=lang(t,ft,val(j));S(j)=Threch1(t,ft,0.074,-0.074,val(j));%三样条第一类边界条件插值endplot(a,Ini,'k')%原函数图象hold onplot(val,L,'r')%拉格朗日插值函数图像hold onplot(val,S,'b')%三次样条插值函数图像str=sprintf('插值节点为%d时的插值效果',N);title(str);legend('原函数','拉格朗日插值','三次样条插值');%显示图例hold offfigureend8车门曲线main5.mclearclcX=[0,1,2,3,4,5,6,7,8,9,10];Y=[0.0,0.79,1.53,2.19,2.71,3.03,3.27,2.89,3.06,3.19,3.29];dy0=0.8;dyn=0.2;n=length(X)-1;d=zeros(n+1,1);h=zeros(1,n-1);f1=zeros(1,n-1);f2=zeros(1,n-2);for i=1:nh(i)=X(i+1)-X(i);f1(i)=(Y(i+1)-Y(i))/h(i);endfor i=2:nf2(i)=(f1(i)-f1(i-1))/(X(i+1)-X(i-1));d(i)=6*f2(i);endd(1)=6*(f1(1)-dy0)/h(1);d(n+1)=6*(dyn-f1(n-1))/h(n-1); A=zeros(n+1,n+1); B=zeros(1,n-1);C=zeros(1,n-1);for i=1:n-1B(i)=h(i)/(h(i)+h(i+1));C(i)=1-B(i);endA(1,2)=1;A(n+1,n)=1;for i=1:n+1A(i,i)=2;endfor i=2:nA(i,i-1)=B(i-1);A(i,i+1)=C(i-1);endM=A\d;x=zeros(1,n);S=zeros(1,n);for i=1:nx(i)=X(i)+0.5;S(i)=Y(i)+(f1(i)-(M(i)/3+M(i+1)/6)*h(i))*(x(i)-X(i))+M(i)/2*(x(i)-X(i))^2+(M(i+1)-M(i))/(6* h(i))*(x(i)-X(i))^3;endplot(X,Y,'k'); hold on;plot(x,S,'o');title('三次样条插值效果图');legend('已知插值节点','三次样条插值');hold off实验结果:4.31计算插值节点处的函数值xi=0.13时Xi=0.36时2将多种插值函数即原函数图像画在同一张图上4.5.1增加插值节点观察误差变化从上面三张图可以看出增加插值节点并不能改善差之效果4.5.2 车门曲线。

数值分析上机实验报告(插值)

数值分析上机实验报告(插值)

数值分析第一次上机练习实验报告——Lagrange 插值与三次样条插值一、 问题的描述设()2119f x x =+, []1,1x ∈-,取15iix =-+,0,1,2,...,10i =.试求出10次Lagrange 插值多项式()10L x 和三次样条插值函数()S x (采用自然边界条件),并用图画出()f x ,()10L x ,()S x .二、 方法描述——Lagrange 插值与三次样条插值我们取15i ix =-+,0,1,2,...,10i =,通过在i x 点的函数值()2119i i f x x =+来对原函数进行插值,我们记插值函数为()g x ,要求它满足如下条件:()()21,0,1,2,...,1019i i i g x f x i x ===+ (1)我们在此处要分别通过Lagrange 插值(即多项式插值)与三次样条插值的方法对原函数()2119f x x=+进行插值,看两种方法的插值结果,并进行结果的比较。

10次的Lagrange 插值多项式为:()()10100i i i L x y l x ==∑ (2)其中:()21,0,1,2,...,1019i i iy f x i x ===+ 以及()()()()()()()()()011011......,0,1,2,...,10......i i n i i i i i i i n x x x x x x x x l x i x x x x x x x x -+-+----==----我们根据(2)进行程序的编写,我们可以通过几个循环很容易实现函数的Lagrange 插值。

理论上我们根据区间[]1,1-上给出的节点做出的插值多项式()n L x 近似于()f x ,而多项式()n L x 的次数n 越高逼近()f x 的精度就越好。

但实际上并非如此,而是对任意的插值节点,当n →+∞的时候()n L x 不一定收敛到()f x ;而是有时会在插值区间的两端点附近会出现严重的()n L x 偏离()f x 的现象,即所谓的Runge 现象。

数值分析插值知识点总结

数值分析插值知识点总结

数值分析插值知识点总结一、插值的基本概念插值是指在已知数据点的基础上,通过某种数学方法求得两个已知数据点之间的未知数值。

插值方法的基本思想是在已知数据点之间找出一个合适的函数形式,使得该函数穿过已知数据点,并预测未知点的数值。

插值问题通常出现在实际工程、科学计算中,比如天气预报、经济数据的预测、地震勘探等领域。

插值可以帮助人们预测未知点的数值,从而更好地了解数据之间的关系。

二、插值的分类根据插值的基本原理,插值方法可以分为多种类型,常见的插值方法包括:拉格朗日插值、牛顿插值、分段插值、立方插值、样条插值等。

1. 拉格朗日插值拉格朗日插值是一种通过拉格朗日多项式来实现数据插值的方法。

该方法通过已知的数据点(x1,y1), (x2,y2),...,(xn,yn)来确定一个n-1次的多项式P(x),使得P(xi)=yi。

2. 牛顿插值牛顿插值是利用牛顿插值多项式来实现数据插值的方法。

该方法通过已知的数据点(x1,y1), (x2,y2),...,(xn,yn)来确定一个n-1次的多项式P(x),使得P(xi)=yi。

3. 分段插值分段插值是将插值区间分割成多个小区间,然后在每个小区间内采用简单的插值方法进行插值。

常见的分段插值方法包括线性插值和抛物线插值。

4. 立方插值立方插值是一种通过构造三次多项式来实现数据插值的方法。

该方法通过已知的数据点(x1,y1), (x2,y2),...,(xn,yn)来确定一个三次多项式P(x),使得P(xi)=yi。

5. 样条插值样条插值是一种通过构造分段三次多项式来实现数据插值的方法。

该方法通过已知的数据点(x1,y1), (x2,y2),...,(xn,yn)来确定一个分段三次多项式P(x),使得P(xi)=yi。

三、插值的应用插值方法在实际工程中有着广泛的应用,常见的应用包括图像处理、声音处理、地图绘制、气象预测、经济预测等领域。

1. 图像处理在图像处理中,插值方法主要用于图像的放大、缩小以及图像的重构等操作。

插值数值实验报告(3篇)

插值数值实验报告(3篇)

第1篇一、实验目的1. 理解并掌握插值法的基本原理和常用方法。

2. 学习使用拉格朗日插值法、牛顿插值法等数值插值方法进行函数逼近。

3. 分析不同插值方法的优缺点,并比较其精度和效率。

4. 通过实验加深对数值分析理论的理解和应用。

二、实验原理插值法是一种通过已知数据点来构造近似函数的方法。

它广泛应用于科学计算、工程设计和数据分析等领域。

常用的插值方法包括拉格朗日插值法、牛顿插值法、样条插值法等。

1. 拉格朗日插值法拉格朗日插值法是一种基于多项式的插值方法。

其基本思想是:给定一组数据点,构造一个次数不超过n的多项式,使得该多项式在这些数据点上的函数值与已知数据点的函数值相等。

2. 牛顿插值法牛顿插值法是一种基于插值多项式的差商的插值方法。

其基本思想是:给定一组数据点,构造一个次数不超过n的多项式,使得该多项式在这些数据点上的函数值与已知数据点的函数值相等,并且满足一定的差商条件。

三、实验内容1. 拉格朗日插值法(1)给定一组数据点,如:$$\begin{align}x_0 &= 0, & y_0 &= 1, \\x_1 &= 1, & y_1 &= 4, \\x_2 &= 2, & y_2 &= 9, \\x_3 &= 3, & y_3 &= 16.\end{align}$$(2)根据拉格朗日插值公式,构造插值多项式:$$P(x) = \frac{(x-x_1)(x-x_2)(x-x_3)}{(x_0-x_1)(x_0-x_2)(x_0-x_3)}y_0 + \frac{(x-x_0)(x-x_2)(x-x_3)}{(x_1-x_0)(x_1-x_2)(x_1-x_3)}y_1 + \frac{(x-x_0)(x-x_1)(x-x_3)}{(x_2-x_0)(x_2-x_1)(x_2-x_3)}y_2 + \frac{(x-x_0)(x-x_1)(x-x_2)}{(x_3-x_0)(x_3-x_1)(x_3-x_2)}y_3.$$(3)计算插值多项式在不同点的函数值,并与实际值进行比较。

数值分析-计算方法-插值a

数值分析-计算方法-插值a

sin 50 0
L2
(
5
18
)
0.76543
- c os
R (x ) x(x-)x (-)x (-);
c o s3
2
3 ! 6 4 3
x2
R2
5 18
0.00077
sin 50 = 0.7660444…
2次插值的实际误差 0.00061
高次插值通常优于 低次插值
但绝对不是次数越 高就越好,嘿 嘿……
R1(
5
18
)
0.01077
sin 50 = 0.7660444…
外推 /* extrapolation */的实际误差 -0.01001
利用 x1 4, x2 3
sin 50 0.76008,
内插/* interpolation */ 的实际误差 0.00596
R~ 1
5
18
0.00660
The wife said: "No, they're TEN!" "But I have counted them: 0, 1, 2, ..."
n1 li(x)
希望找到li(x),i = 0, …, n 使得 li(xj)=ij ;然后令
n
Ln ( x )
li ( x )
y i
,则显然有Ln(xi)
[b a,]
n
RRno(lxl)e’至s T少h有eornem+1:个若根( x) 充分Rn光(x)滑 ,K(x() x i00)( x - (xx i )1)0,则
任存意在固注定意(这xx0里,xxi是1)(i对使= 0得t, 求…,导(n),)考0察。

数值分析插值法范文

数值分析插值法范文

数值分析插值法范文数值分析是一门研究利用数值方法解决实际问题的学科,它涵盖了数值计算、数值逼近、数值解法等内容。

在数值分析中,插值方法是一种重要的数学技术,用于从给定的数据点集推断出函数的值。

本文将详细介绍插值法的基本原理、常用插值方法以及应用领域等内容。

一、插值法的基本原理插值法是利用已知的数据点集构造一个函数,使得这个函数在给定区间内与已知数据吻合较好。

插值法的基本原理是,假设已知数据点的函数值是连续变化的,我们可以通过构造一个满足这种连续性的函数,将数据点连接起来。

当得到这个函数后,我们可以通过输入任意的$x$值,得到相应的$y$值,从而实现对函数的近似。

插值法的基本步骤如下:1.给定数据点集$\{(x_0,y_0),(x_1,y_1),...,(x_n,y_n)\}$,其中$x_i$是已知的数据点的$x$值,$y_i$是对应的函数值。

2.构造一个函数$f(x)$,使得$f(x_i)=y_i$,即函数通过已知数据点。

3.根据实际需要选择合适的插值方法,使用已知数据点构造函数,得到一个满足插值要求的近似函数。

4.对于输入的任意$x$值,利用插值函数求出相应的$y$值,从而实现对函数的近似估计。

二、常用插值方法1.拉格朗日插值法拉格朗日插值法是一种使用拉格朗日多项式进行插值的方法。

给定数据点集$\{(x_0,y_0),(x_1,y_1),...,(x_n,y_n)\}$,拉格朗日插值多项式可以表示为:$$L(x) = \sum_{i=0}^{n} y_i \prod_{j=0, j \neq i}^{n} \frac{x - x_j}{x_i - x_j}$$其中$L(x)$为插值函数,利用这个函数可以求出任意输入$x$对应的$y$值。

2.牛顿插值法牛顿插值法是一种使用差商来表示插值多项式的方法。

给定数据点集$\{(x_0,y_0),(x_1,y_1),...,(x_n,y_n)\}$,牛顿插值多项式可以表示为:$$N(x) = y_0 + \sum_{i=1}^{n} f[x_0, x_1, ..., x_i]\prod_{j=0}^{i-1} (x - x_j)$$其中$N(x)$为插值函数,$f[x_0,x_1,...,x_i]$是差商,利用这个函数可以求出任意输入$x$对应的$y$值。

高等数值分析-插值法报告

高等数值分析-插值法报告

南京理工大学课程考核论文课程名称:高等数值分析论文题目:基于matlab的函数插值方法性能比较姓名:xxx学号:xxxxxxxxxx成绩:摘要函数插值是指已知某函数的在若干离散点上的函数值或者导数信息,通过求解该函数中待定形式的插值函数以及待定系数,使得该函数在给定离散点上满足约束。

本文首先介绍了五种插值方法:线性插值、lagrange插值、newdun插值、三次样条插值和三次B样条插值,并从五种插值法的基本思想和具体实例仿真入手,探讨了五种插值法的优缺点。

通过对五种插值法的对比研究及实际应用的总结,从而使我们在以后的应用中能够更好、更快的解决问题。

关键字插值法对比matlab目录摘要 (2)0 引言 (4)1插值问题的提出、发展史及简单应用 (4)1.1插值问题的提出 (4)1.2插值法的发展史 (4)1.3插值法的简单应用 (4)2 五种插值法的定义 (5)2.1线性插值法 (5)2.2Lagrange插值法 (5)2.3Newton插值法 (6)2.4 三次样条插值法 (6)2.5B样条插值 (6)3五种插值法的matlab仿真实现 (8)4五种插值方法性能对比 (11)5结束语 (12)参考文献 (12)0 引言近半世纪由于计算机的广泛使用和造船、航空、精密机械加工等世纪问题的需要,使插值法在理论上和实践上得到进一步发展,尤其是20世纪40年代后期发展起来的样条插值等,更获得广泛应用,称为计算机图形学的基础。

插值是指已知某函数的在若干离散点上的函数值或者导数信息,通过求解该函数中待定形式的插值函数以及待定系数,使得该函数在给定离散点上满足约束。

插值函数又叫作基函数,如果该基函数定义在整个定义域上,叫作全域基,否则叫作分域基。

1插值问题的提出、发展史及简单应用1.1插值问题的提出许多实际问题都用函数来表示某种内在规律的数量关系,其中相当一部分函数是通过实验或观测得到的。

虽然()x f 在某个区间[]b a ,上是存在的,有的还是连续的,但却只能给出[]b a ,上一系列点i x 的函数值()() 2,1,0==i x f y i i ,这只是一张函数表.有的函数虽有解析表达式,但由于计算复杂,使用不方便,通常也造一个函数表,如大家熟悉的三角函数表、对数表、平方根和立方根表.为了研究函数的变化规律,往往需要求出不在表中的函数值.因此,我们希望根据给定的函数表做一个既能反映函数()x f 的特性,又便于计算简单函数()x p ,用()x p 近似()x f 。

数值分析上机报告插值法

数值分析上机报告插值法

0.0522 0.0000 0.0875 0.0000 0.1375 0.0000 -0.0625 0.0000 -0.0625 0.0000 0.1375 0.0000 0.0875 0.0000 0.0522 0.0000 0.0114 0.0206 0.0274 0.0318 0.0337 0.0328 0.0291 0.0225 0.0128 0.0000
0.0794 0.1000 0.1500 0.2000 0.3500 0.5000 0.7500 1.0000 0.7500 0.5000 0.3500 0.2000 0.1500 0.1000 0.0794 0.0588 0.0568 0.0548 0.0527 0.0507 0.0486 0.0466 0.0446 0.0425 0.0405 0.0385
二、方法描述
1. Lagrange 插值 Lagrange 插值是基于基函数的插值方法,其插值多项式可以表示为:
Ln ( x) = ∑ yi li ( x)
i =0
n
其中,
( xi ) = yi f=
i 次基函数
1 , i = 0,1, 2, , n 1 + 25 xi 2
li ( x) =
同时满足
-3.9971 0.0000 0.8397 0.0000 -0.2351 0.0000 0.0543 0.0000 0.0543 0.0000 -0.2351 0.0000 0.8397 0.0000 -3.9971 0.0000 3.9907 9.4467 16.3087 24.2507 32.5478 39.9039 44.2322 42.3774 29.7702 0.0000
L(x) 0.0385 1.2303 1.8044 1.9590 1.8458 1.5787 1.2402 0.8881 0.5604 0.2802 0.0588

数值分析-插值法的讲解

数值分析-插值法的讲解
y=P(X) y=f(x)
称P(x)为f(x)的插值函数,x为插值节 点,[a,b]为插值区间,求插值函数P(x)的 方法为插值法。
若P(x)=a0+a1x+▪▪▪+anxn,称 P(x)为插值多项式。 若P(x)为分段多项式,就称 之为分段插值。
若P(x)为三角多项式,就 称之为三角插值。
枪管膛线----→
1.插值多项式的存在唯一性 P(x)=a0+a1x+▪▪▪+anxn, P(x) ∈Hn a0+a1x0+…+anx0n=y0 a0+a1x1+…+anx1n=y1
. . .
a0+a1xn+…+anxnn=yn
1 x x ... x Vn(x0,x1,…,xn)= 1 x x ... x ... 1 x x ... x
k 1 k 1 k 1 k 1

y
( x xk 1)( x xk 1)
k
( xk xk 1)( xk xk 1)
T H A N K Y O U !
( x xk 1)( x xk ) ( xk 1 xk 1)( xk 1 xk )
k k k 1
l
l
2
k
k 1
( x xk )( x xk 1) ( x x )( x x ) y ( )( ) L ( x) yk 1 x x x x ( xk 1 xk )( xk 1 xk 1)
k 1
x
x xk
k 1
k ห้องสมุดไป่ตู้1
k
xk
L1(x)=
x x y x x y x x x x

数值分析--第2章 插值法

数值分析--第2章 插值法

数值分析--第2章插值法第2章 插值法在科学研究与工程技术中,常常遇到这样的问题:由实验或测量得到一批离散样点,要求作出一条通过这些点的光滑曲线,以便满足设计要求或进行加工。

反映在数学上,即已知函数在一些点上的值,寻求它的分析表达式。

此外,一些函数虽有表达式,但因式子复杂,不易计算其值和进行理论分析,也需要构造一个简单函数来近似它。

解决这种问题的方法有两类:一类是给出函数)(x f 的一些样点,选定一个便于计算的函数)(x ϕ形式,如多项式、分式线性函数及三角多项式等,要求它通过已知样点,由此确定函数)(x ϕ作为)(x f 的近似,这就是插值法;另一类方法在选定近似函数的形式后,不要求近似函数过已知样点,只要求在某种意义下在这些样点上的总偏差最小。

这类方法称为曲线(数据)拟合法。

设已知函数f 在区间],[b a 上的1+n 个相异点ix 处的函数值(),0,,iif f x i n ==,要求构造一个简单函数()x ϕ作为函数()f x 的近似表达式()()f x x ϕ≈,使得()(),0,1,,iiix f x f i n ϕ=== (2-1) 这类问题称为插值问题。

称f 为被插值函数;()x ϕ为插值函数;nx x ,,0 为插值节点;(2-1)为插值条件。

若插值函数类{()}x ϕ是代数多项式,则相应的插值问题为代数插值。

若{()}x ϕ是三角多项式,则相应的插值问题称为三角插值。

若{()}x ϕ是有理分式,则相应的插值问题称为有理插值。

§1 Lagrange 插值1.1 Lagrange 插值多项式设函数f 在1+n 个相异点01,,,nx x x 上的值n i x f f ii ,,1,0),( ==是已知的,在次数不超过n 的多项式集合n P 中,求()nL x 使得(),0,1,,n i iL x f n n == (2-2) 定理2.1 存在惟一的多项式nn P L ∈满足插值条件(2-2)。

数值分析插值法

数值分析插值法

数值分析插值法数值分析是数学的一个分支,用于研究如何使用数值方法来近似和解决数学问题。

插值是数值分析的一个重要概念,它涉及到如何通过已知数据点的信息来估计未知数据点的值。

在本文中,我们将着重讨论插值法。

插值法是一种基于已知数据点的函数值,通过建立适当的插值函数来估计未知数据点的函数值的方法。

插值问题的目标是找到一个函数f(x),使得f(x_i)=y_i(i=0,1,2,...,n),其中x_i是已知的数据点,y_i是相应的函数值,n是已知数据点的数量。

然后,通过插值函数可以近似估计任意一个未知数据点的函数值。

常见的插值方法包括拉格朗日插值、牛顿插值和埃尔米特插值等。

下面我们将逐一介绍这些插值方法。

拉格朗日插值是一种利用拉格朗日多项式进行插值的方法。

拉格朗日多项式是一个多项式函数,满足通过已知数据点的函数值。

具体地说,设给定的已知数据点为(x_i,y_i),我们需要找到一个多项式P(x)=y,使得P(x_i)=y_i。

拉格朗日插值多项式的形式如下:P(x)=Σ(y_i*l_i(x))其中l_i(x)是拉格朗日基函数,它定义为:l_i(x)=Π((x-x_j)/(x_i-x_j))(j≠i)牛顿插值是另一种常用的插值方法。

它通过使用差商来递归地计算插值多项式。

差商是一个递归定义的函数,用于计算多项式的系数。

设给定的已知数据点为(x_i,y_i),我们需要找到一个多项式P(x)=y,使得P(x_i)=y_i。

牛顿插值多项式的形式如下:P(x)=y_0+(x-x_0)*f[x_0,x_1]+(x-x_0)*(x-x_1)*f[x_0,x_1,x_2]+...其中,f[x_i,x_j,...,x_k]是差商的定义,它可以通过递归公式计算得到:f[x_i,x_j,...,x_k]=(f[x_j,...,x_k]-f[x_i,...,x_{k-1}])/(x_k-x_i)埃尔米特插值是一种利用已知数据点及其导数信息进行插值的方法。

数值分析实验报告--实验2--插值法

数值分析实验报告--实验2--插值法

1 / 21数值分析实验二:插值法1 多项式插值的震荡现象1.1 问题描述考虑一个固定的区间上用插值逼近一个函数。

显然拉格朗日插值中使用的节点越多,插值多项式的次数就越高。

我们自然关心插值多项式的次数增加时, 是否也更加靠近被逼近的函数。

龙格(Runge )给出一个例子是极著名并富有启发性的。

设区间[-1,1]上函数21()125f x x=+ (1)考虑区间[-1,1]的一个等距划分,分点为n i nix i ,,2,1,0,21 =+-= 则拉格朗日插值多项式为201()()125nn ii iL x l x x ==+∑(2)其中的(),0,1,2,,i l x i n =是n 次拉格朗日插值基函数。

实验要求:(1) 选择不断增大的分点数目n=2, 3 …. ,画出原函数f(x)及插值多项式函数()n L x 在[-1,1]上的图像,比较并分析实验结果。

(2) 选择其他的函数,例如定义在区间[-5,5]上的函数x x g xxx h arctan )(,1)(4=+=重复上述的实验看其结果如何。

(3) 区间[a,b]上切比雪夫点的定义为 (21)cos ,1,2,,1222(1)k b a b ak x k n n π⎛⎫+--=+=+ ⎪+⎝⎭(3)以121,,n x x x +为插值节点构造上述各函数的拉格朗日插值多项式,比较其结果,试分析2 / 21原因。

1.2 算法设计使用Matlab 函数进行实验, 在理解了插值法的基础上,根据拉格朗日插值多项式编写Matlab 脚本,其中把拉格朗日插值部分单独编写为f_lagrange.m 函数,方便调用。

1.3 实验结果1.3.1 f(x)在[-1,1]上的拉格朗日插值函数依次取n=2、3、4、5、6、7、10、15、20,画出原函数和拉格朗日插值函数的图像,如图1所示。

Matlab 脚本文件为Experiment2_1_1fx.m 。

可以看出,当n 较小时,拉格朗日多项式插值的函数图像随着次数n 的增加而更加接近于f(x),即插值效果越来越好。

数值分析-计算方法-插值b精品文档

数值分析-计算方法-插值b精品文档

f [x0, …, xn] f [x1, …, xn+1]
f [x0, …, xn+1]
例:已知 si6 n1 2,si4 n1 2,si3 n2 3
3.2 Newton’s Interpolation
分别利用 1次、2次 Newton 插值公式计算 sin 50。
解一:取 x 0 /6 ,x 1 /4 ,x 2 /3 构造差商表
? 注: 由唯一性可知 Nn(x) Ln(x), 只是算法不同,故其
余f项[x 也,x 相0,同.,.,Nx .即nn (]x)k =1(x L) n(xf()(n n 1 )1 ()! x) k 1(x)
f[x0,..,x .k]f(k k)(!), (xm,ix n m)ax
xi
f (xi)
f [xi, xj]
f [xi, xj , xk]
500 5
18
π/6
1/2
π/ 4
1/√2 0.79110
π/ 3
√3/2 0.60703
Байду номын сангаас



N 1 (x ) f (x 0 ) f [ x 0 ,x 1 ] (x x 0 )
-0.35155
x 0
x1
x2
sin 50 = 0.7660444…
差商(亦称均差) /* divided difference */
f[x i,xj]f(x x i) i x fj(xj) (ij,x ixj)
1阶差商 /* the 1st
divided difference of f w.r.t. xi and xj */
f[x i,x j,x k]f[x i,x x ji] x fk [x j,x k](i k ) 2阶差商

数值分析-插值法

数值分析-插值法

数值分析-插值法我们能得到⼀个函数f在区间[a,b]上某些点的值或者这些点上的⾼阶导数我们就能通过插值法去得到⼀个函数g,g与f是⾮常相近的⼀般来说g分为三类,⼀类是n次多项式 a n*x n +a n-1*x n-1 + .......+a0,⼀类是三⾓多项式,最后⼀类是分段n次多项式多项式插值这个可以说是最简单的插值了对于a n*x n +a n-1*x n-1 + .......+a0,我们有n+1个未知数,我只需要知道n+1个点的函数值就可以解出这n+1个未知数将解出的值带⼊即可优点:简单粗暴缺点:要解n+1个⽅程,时间复杂度较⾼,n不好确定,若n过⼤,容易过拟合,若n过⼩,容易⽋拟合拉格朗⽇插值先说⼀阶多项式我们有两点式f(x) = y k*(x k+1 - x) / (x k-x k+1) + y k+1*(x-x k) / (x k+1 - x k)此两点式可以看做∂ * y k + (1-∂) * y k+1那么⾃然的在x=x k的时候 ∂=0 在x=x k+1的时候∂=1这⾥的∂其实是与x相关的⼀阶多项式再说⼆阶多项式对于⼀个⼆次函数,我们有三个点(x k-1,y k-1) ,(x k,y k) ,(x k+1,y k+1)我们有l k-1,l k,l k+1f(x) = l k-1*y k-1 + l k*y k + l k+1*y k+1其中l是与x相关的⼆次多项式我们可以把l当作基函数这样的话就有x = x k-1 时l k-1 = 1, l k=0, l k+1 = 0x = x k时 l k-1 = 0, l k=1, l k+1 = 0x = x k+1时l k-1 = 0, l k=0, l k+1 = 1那么这个插值基函数是很好求的因为每个插值函数都有两个零点对于l k-1来说有零点x k,x k+1那么lk-1就可以表⽰为l k-1 = A*(x-x k)*(x-x k+1)因为x=xk-1时l k-1 = 1所以A = 1 / ((x k-1 - x k)* (x k-1 - x k+1) )那么同理l k和l k+1也能求出来了那我们得到⼆阶的拉格朗⽇插值多项式现在将⼆阶推⼴到n阶得到n接的拉格朗⽇插值多项式余项:R n(x) = f(x) - L n(x) R n(x)表⽰n次拉格朗⽇多项式的插值余项R n(x) = f n+1(e)/(n+1)! * w n+1(x) e属于[a,b]且依赖与x w n+1(x) = (x-x0)(x-x1).......(x-x n)优点:算法较为简单缺点:⽆法处理动态增加节点的情况⽜顿插值还是先从⼀阶到⼆阶进⾏说明我先得到了⼀阶差值多项式P1(x),P1(x) 满⾜过点(x1, f(x1)), (x2,f(x2))假设现在有第三个点(x3,f(x3))我们要通过这个点去得到⼆阶差值多项式P2(x) 使得P2(x)过这三个点可以设P2(x) = P1(x) + a2*(x-x0)*(x-x1)通过第三个点解出a2就⾏了推⼴到多阶那么可以得到P n(x) = a0 + a1(x-x0) + a2(x-x0)(x-x1) + a3(x-x0)(x-x1)(x-x2) + ......求这个插值多项式的值可以通过递推⼀步⼀步的求这样就实现了动态增删可以看到计算a k需要计算(k-1)2次,那么⽜顿插值法就是⼀个快速的计算⽅法均差⼀阶均差 f[x0, x k] = ( f(x k) - f(x0) ) / (x k - x0)⼆阶均差 f[x0, x1, x2] = (f[x0, x2] -f[x0, x1] ) / (x2 - x1)可以看到⼀阶均差就是简单的求斜率⼆阶均差就是对⼀阶均差求斜率那么k阶均差就是f[x0, x1,,,,,,x k] = (f[x0,,,,,x k-2, x k] -f[x0, ,,,,,,,x k-2,x k-1] ) / (x k - x k-1)f[x0, x1,,,,,,x k] = f n(ε) / n!均差的性质k阶均差可表⽰为f(x0),f(x1), f(x2),,,,,,,,, f(x k)的线性组合⽜顿插值中的a就是均差,可以从⼀阶开始推,然后使⽤数学归纳法证明那么⽜顿插值多项式就是:在计算f[x0,x1,,,,,,,,,,x n]时,⼀般使⽤均差表均差表的计算⽅式为a[i,j] = ( a[i-1][j] - a[i-1][j-1] ) / (末尾的x - 最开始的x)误差:误差为最后⼀阶的均差 * w(x)优点:可动态增删节点缺点:⽆法处理要求导数相同的情况埃尔⽶特插值法实验报告⼀个点,多个导数:⽜顿插值中的均差在xi->x0时其实分别是i阶导数,这样就是我们熟悉的泰勒多项式此时的插值函数就是泰勒多项式两个点,⼀个导数我们有三个条件,也就是说我们能求出三次插值多项式这时我们先写出过这两个点的⽜顿插值多项式在这个多项式的基础上我们再加上⼀个三次项搞定,可以观察到,这三个项数其实可以算是正交的,因为当x=x1或者x=x2时最后⼀项是0满⾜条件的两个点,两个导数这也是题⽬所要求的情况因为有两个导数,所以⽜顿插值法⽆法解决,这⾥只能使⽤基函数⽅法设插值函数为H(x), 点与导数分别为(x1,y1,m1),(x2,y2,m2)H(x)满⾜:H(x1) =y1, H(x2) = y2, H(x1)’ = m1,H(x2)=m2H(x) = a1*x1 + a2*x2 + b1*m1 + b2*m2其中 a1, a2, b1, b2均为三层插值多项式X=x1时 a1(x1) = 1,a2(x1) = 0, b1(x1) = 0,b2(x1) = 0,a1’(x1) = 1,a2’(x1) = 0X=x2时 a1(x2) = 0,a2(x2) = 1, b1(x2) = 0,b2(x2) = 0,a1’(x2) = 1,a2’(x2) = 0X=x1时 b1’(x1) = 1,b2’(x1) = 0X=x2时b1’(x1) = 0,b2’(x1) = 1然后⽤了⼀个很巧妙的⽅法设基函数,解出来值和就是这样⼦的R3(x) = 1/4! * (x-x k)2(x-x k+1)2*f4(ε)两个点,两个导数2直接使⽤泰勒多项式,并把将余项改为未知数,使⽤多余的⼀个条件去求余项的值例如:求次数⼩于等于3的多项式P(x),使满⾜条件P(x0)=f(x0),P'(x0)=f'(x0),P"(x0)=f"(x0),P(x1)=f(x1)。

数值分析第2章插值法

数值分析第2章插值法

数值分析第2章插值法插值法是数值分析中常用的一种数值逼近方法,用于在给定一组有限数据点的情况下,通过构造合适的数学模型来估计这些数据点之间的未知数值。

插值法的应用广泛,包括图像处理、计算机辅助设计、数值计算等领域。

常见的插值方法有拉格朗日插值、牛顿插值、埃尔米特插值以及样条插值等。

这些方法都是基于多项式的插值形式,通过构造一个多项式函数来逼近数据点,并据此对未知点进行估计。

拉格朗日插值是一种基于拉格朗日多项式的插值方法。

对于给定的n+1个不同的数据点 (x0, y0), (x1, y1), ..., (xn, yn),拉格朗日插值构造了一个n次多项式Ln(x),满足:Ln(x) = y0L0(x) + y1L1(x) + ... + ynLn(x)其中,L0(x),L1(x),...,Ln(x)是拉格朗日基函数,定义为:Lk(x) = ∏(i≠k)(x - xi)/(xk - xi) (k = 0, 1, ..., n)拉格朗日插值方法的优点是简单易用,但随着数据点数量的增加,拉格朗日多项式的计算复杂度也会大大增加。

牛顿插值是另一种基于多项式的插值方法,它使用差商的概念来构造插值多项式。

对于给定的n+1个不同的数据点 (x0, y0), (x1, y1), ..., (xn, yn),牛顿插值构造了一个n次多项式Nn(x),满足:Nn(x) = y0 + c0(x - x0) + c1(x - x0)(x - x1) + ... + cn(x -x0)(x - x1)...(x - xn-1)其中,c0 = Δy0/(x0 - x1),ci = Δyi/(xi - xi+1) (i = 0, 1, ..., n-1),Δyi = yi+1 - yi。

牛顿插值方法相比于拉格朗日插值方法,在计算多项式时具有更高的效率,尤其是在需要更新数据点时。

此外,牛顿插值方法还可以通过迭代的方式得到更高次数的插值多项式。

数值分析第5版插值法

数值分析第5版插值法
第2章 插值法
第一节 引言
n 一、 插值问题 设 y= f(x) 是区间[a , b] 上的一个实函数, xi ( i=0,
1, ... ,n)是[a,b]上n+1个互异实数,已知 y=f(x) 在 xi 的
值 yi=f(xi) (i=0,1,...,n), 求次数不超过n的多项式Pn(x)
使其满足
从几何意义来看,上述 问题就是要求一条多项 式曲线 y=Pn(x), 使它通
过已知的n+1个点(xi,yi)
(i=0,1, … ,n),并用Pn(x) 近似表示f(x).
2
二、插值多项式的存在性和唯一性
定理1 设节点xi (i=0,1, … ,n)互异, 则满足插值条件 Pn(xi)=yi 的次数不超过n的多项式存在且唯一. 证 设所求的插值多项式为
f [ x0 , x1]
f ( x0 ) f ( x1 ) x0 x1
为 f (x)在x0、x1点的一阶差商.一阶差商的差商
f [ x0 , x1, x2 ]
f [ x0 , x1] f [ x1, x2 ] x0 x2
称为函数f (x)在x0、x1 、x2 点的二阶差商.
25
一般地,n-1阶差商的差商
还应注意,对于插值节点,只要求它们互异,与大小次序无 关。
14
例1 已知 y x , x0 用4,线x1性插9,值求 近
7
似值。
解 y0 2, y1 3, 基函数分别为:
l0 ( x)
x9 49
1(x 5
9), l1( x)
x4 94
1(x 5
4)
插值多项式为
1
1
L1 ( x)
y0l0 ( x) y1l1 ( x) 2
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. 四边形八节点单元二维插值函数及导数积分公式y c 2(1,-1)1(-1,-1) 5(0,-1)设有矩形单元1234,边长是2a ,2b ,为使推导简便,以平行于两边的轴为x 轴和y 轴, 矩形单元的中心坐标为(12345678)/4(12345678)/4xc x x x x x x x x yc y y y y y y y y =+++++++⎧⎨=+++++++⎩引入局部坐标系ξ,η,可使结果简洁,局部坐标原点取在矩形形心,进行坐标变换()/()/c c x x ay y bξη=-=-对于8节点矩形单元,其自由度为8216⨯=,因此位移函数选为:222212345678222212345678u a a a a a a a a v b b b b b b b b ξηξξηηξηξηξηξξηηξηξη=+++++++=+++++++通过将9节点的矩形单元消去第9个节点,即在其双二次多项式的形状函数中去掉22ξη项,就可得到8节点矩形单元的不完全双二次多项式形状函数,公式如下:1(,)(1)(1)(1),1,2,3,44i i i i i N i ξηξξηηξξηη=+++-= 21(,)(1)(1),5,72i i N i ξηξηη=-+= 21(,)(1)(1),6,82i i N i ξηηξξ=-+= 矩形单元应变列阵为{}x y xy u u x x v v y y u v u v y x y x ξξεηεεηγηξηξ⎧⎫⎧⎫∂∂∂⎪⎪⎪⎪∂∂∂⎧⎫⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪∂∂∂===⎨⎬⎨⎬⎨⎬∂∂∂⎪⎪⎪⎪⎪⎪⎩⎭⎪⎪⎪⎪∂∂∂∂∂∂++⎪⎪⎪⎪∂∂∂∂∂∂⎩⎭⎩⎭其中11c c x x x x a ay y y y b b ξη-∂∂⎛⎫== ⎪∂∂⎝⎭-∂∂⎛⎫== ⎪∂∂⎝⎭所以{}1111u a v b u v b a ξεηηξ⎧⎫∂⎪⎪∂⎪⎪⎪⎪∂=⎨⎬∂⎪⎪⎪⎪∂∂+⎪⎪∂∂⎩⎭将,m mi i i i iiu N u v N v ==∑∑(i=1,m=8),代入上式得{}{}[,,],1,8eBi Bm i m εδ===其中,{}ei i u v δ⎧⎫=⎨⎬⎩⎭{}010i i i i i N b N a B abN a N b ξηηξ∂⎡⎤⎢⎥∂⎢⎥∂⎢⎥=⎢⎥∂⎢⎥∂∂⎢⎥∂⎢⎥∂⎣⎦当i=1,2,3,4时,{}2222(1)0410(1)4(1)(1)44i i i i i i i i i i i b u a v ab a b ξηηηεξξηξξξηη⎡⎤+⎢⎥⎢⎥⎛⎫⎢⎥=+ ⎪⎢⎥⎝⎭⎢⎥+⎢⎥+⎢⎥⎣⎦当i=5,6时,{}22(1)010(1)2(1)(1)2i i i i i i i b u a v ab a b ξηηηεξηξξηη-+⎡⎤⎢⎥⎛⎫⎢⎥=- ⎪⎢⎥⎝⎭-⎢⎥-+⎣⎦当i=7,8,{}22(1)021(1)0(1)(1)2i i i i i ii b u a v ab a b ξηεηξξξηξξη⎡⎤-⎢⎥⎢⎥⎛⎫=-+ ⎪⎢⎥⎝⎭⎢⎥-+-⎢⎥⎣⎦2. 牛顿插值公式在低次时(如二次插值)与拉格朗日插值公式的异同(1) Lagrange 插值多项式,()()()()()n nn i i ii i i i x L x y l x y x x x ωω====-∑∑, 公式(1) 其中1()()nk k x x x ω==-∏ 公式(2)上式满足插值条件的次数不超过n 的多项式。

Lagrange 插值多项式存在一个主要缺陷,即当用已知的n+1个数据点求出插值多项式后,又获得了新的数据点,但是要用它连同原有的n+1个数据点一起求出插值多项式,从原有已计算出的n 次插值多项式计算出新的n+1次插值多项式是很困难的,必须全部重新计算。

(2) Newton 插值多项式在Lagrange 插值多项式的基础上作如下处理:010211()()[()()][()()][()()]n n n L x L x L x L x L x L x L x L x -=+-+-+⋅⋅⋅+-,公式(3) 若记1()()()k k k Q x L x L x -=-, 公式(4) 则得到01()()()nn k k L x L x Q x ==+∑ 公式(5)上式即为Newton 插值多项式。

它可由较低次插值多项式计算出增加一个插值点的插值多项式,而不需要像Lagrange 插值多项式那样重新构建数据点进行计算。

由公式(5)可以看出,计算Newton 插值多项式的关键在与计算1()nk k Q x =∑,由于()k Q x 还是k 次多项式011()()()()k k k Q x x x x x x x α-=--⋅⋅⋅-,将其代入到公式(5)可得010201011()()()()()()()n n k L x x x x x x x x x x x x x αααα-=+-+--+⋅⋅⋅+--⋅⋅⋅- 公式(6) 这样再根据插值条件得0001101012022021201020101()()()()()()()()()n n n n n n n n y x x y x x x x x x y x x x x x x x x x x y αααααααααα-=+-=+-+--=+-+--+⋅⋅⋅+-⋅⋅⋅-=公式(7)推导计算得:001012012012[][,][,,][,,,,]k n y x y x x y x x x y x x x x αααα====⋅⋅⋅公式(7)在上式中012[,,,,]n y x x x x ⋅⋅⋅被定义为k 阶差商,这样就得到另一个形式的Newton 插值多项式,以符号N n (x)记为001001201012011()[][,]()[,,]()()[,,,,]()()()n n k N x y x y x x x x y x x x x x x x y x x x x x x x x x x -=+-+--+⋅⋅⋅+⋅⋅⋅--⋅⋅⋅- 公式(8)只要计算出各阶差商,就可获得Newton 插值多项式。

(3)两种插值多项式计算方法的比较Lagrange 插值多项式的计算方法相对简单,通过构建数据点即可求得多项式,但是当数据点增加时,就必须把这些新数据点连同原有的数据点一起重新计算插值多项式,影响了计算效率;Newton 插值多项式对Lagrange 插值多项式进行了改进,计算方法略为复杂,但由于添加了差商和差商表的概念,在增加一个数据点11(,)n n x y ++时,可轻易计算出包含新数据点的插值多项式,只要在公式(8)中增加一项012011[,,,,]()()()n n y x x x x x x x x x x -⋅⋅⋅--⋅⋅⋅-即可。

总体来说,在数据点数量不变或变动较小以及对数据点变化规律未知的场合比较适合选用Lagrange 插值多项式,而在经常更新数据点数量以及对数据点变化规律已知的的场合比较适用Newton 插值多项式。

3. 数据插值一维数据插值命令 interp1功能 对一维函数()y f x =进行内插值。

格式yi=inerp1(x,y,xi)%返回插值向量yi ,每一元素对应于参量xi ,同时由向量x 与y 的内插值决定。

应用实例对曲线sin()y x x =⋅的插值。

x=0:10; %X 坐标值向量 y=x.*sin(x); %Y 坐标值向量xx=0:0.25:10; %插值后的X 坐标值向量 yy=interp1(x,y,xx); %插值后的Y 坐标值向量 plot(x,y,'kd',xx,yy)二维数据插值 命令 Interp2功能高维插值的一种,主要应用于图像处理和数据可视化,其基本思路与一位插值大体相同,它是对两个变量的函数(,)z f x y =进行插值。

插值前的数据点 — 插值后的曲线格式zi=inerp2(x,y,z,xi,yi) %返回在插值向量xi、yi处的函数值向量,它是根据向量x、y与z插值而来。

应用实例 [X,Y]=meshgrid(-3:0.25:3); %插值前的X,Y向量Z=peaks(X,Y); %插值前的Z向量[X1,Y1]=meshgrid(-3:0.125:3); %插值后的X,Y向量Z1=interp2(X,Y,Z,X1,Y1) %插值后的Z向量surfl(X,Y,Z);hold on; %绘制曲面axis([-3 3 -3 3 -5 20]); %调节X,Y,Z三个坐标轴的量程三维数据插值命令Interp3功能对三个变量的函数(,,)f x y z进行插值,格式vi=inerp3(x,y,z,xi,yi) %返回三维函数v在插值向量xi、yi、zi处的函数值向量。

应用实例[x,y,z,v]=flow(10) %插值前的x,y,z,v[xi,yi,zi]=meshgrid(0.1:0.25:10,-3:0.25:3,-3:0.25:3);%插值后的xi,yi,zivi=interp3(x,y,z,v,xi,yi,zi); %插值后的vislice(xi,yi,zi,vi,[6 9.5],2,[-2,0.2]) %绘图三次样条数据插值命令Spline插值功能三次样条数据插值格式yy=spline(x,y,xx) % 对于给定的离散的测量数据x,y(称为断点),要寻找一个三次多项式p(x),以逼近每对数据(x,y)点间的曲线。

应用实例x=0:10y=sin(x)xx=0:0.25:10yy=spline(x,y,xx)plot(x,y,'o',xx,yy)。

相关文档
最新文档