文档详情

函数的插值法.doc

发布:2017-03-24约5.2千字共9页下载文档
文本预览下载声明
实验二、函数的插值法 一、插值算法的基本思想: 函数的变化规律往往是通过一组实验数据给出,为了研究此变化规律往往需要求出不在表上的一些函数值。因此我们希望根据给定的函数表做一个既能反函数的特性,又便于计算的简单函数,用近似。通常选一类较简单的函数作为,并使这样确定的就是我们希望得到的插值函数,主要有①Lagrange 插值;②Newton插值;③Hermit插值;④分段线性插值;⑤三次样条插值。 二、实验要求: 1、利用Lagrange插值公式 编写插值多项式程序。 2、给出分段二次和三次多项式的一般表达式,并根据节点选取规则对上述两种插值法进行比较分析。 3、对此插值问题若用牛顿插值多项式结果如何?牛顿插值多项式公式如下: 三、目的和意义: 1、学会常用的插值计算方法以求函数的近似表达式, 以解决其它科学实验的计算问题; 2、通过比较加深理解插值多项式与分段插值多项式的优劣问题; 3、熟悉各种插值方法的程序设计; 4、通过画出的各种插值曲线比较起插值的光滑度问题。 四、算法步骤: 六、Newton插值 1)输入各个节点和节点的函数值; 2)构造均差表,定义,,; 3)定义来得,,代入Newton公式,计算N 次插值多项式 流程图: 开始 否 是 输 结束 七、MATLAB程序源代码 Newton插值程序源代码 function f=newton(x0,y0) %x0为入的节点值,y0相应节点的函数值 n=length(x0) syms x for i=1:n f(i,1)=y0(i) end hx=f(1,1) xx=(1.0) for k=2:n for i=k:n f(i,k)=(f(i,k-1)-f(i-1,k-1))/(x0(i)-x0(i-k+1)) %构造差商表 end xx=xx*(x-x0(k-1)) hx=hx+f(k,k)*xx end f=expand(hx) %多项式展开 数值例题 1)数值插入:x0=[0.40 0.55 0.65 0.80] y0=[0.41075 0.57815 0.69675 0.88811] 运行:newton(x0,y0) 2)结果:f=-25542915886587131/11258999068426240000+4572354581681722811/4503599627370496000*x-5029019583899/140737488355328*x^2+444355163233905/2251799813685248*x^3 数值例题: 多项式在 取n=6.按等距节点求分段线性插值函数L(x):在matlab命令窗口中输入如下程序: a=-6;b=6;n=6; f=x^2; fenduan(a,b,n,f) L =[ -10*X-24, -6*X-8, -2*X, 2*X, 6*X-8, 10*X-24] 数值例题 % p60 clear x=[.25 .3 .39 .45 .53]; y=[.5 .5477 .6245 .6708 .728]; %  1 % dy=[1 .6868]; % x0=[.4 .47]; [F,a]=scyt(x,y) 当x属于区间[0.25,0.3]时这个函数为f =-6.8*(.30-1.*t)^3-4.9*(t-.25)^3+.26+.95*t 当x属于区间[0.3,0.39]时这个函数为f =-2.7*(.39-1.*t)^3-1.9*(t-.30)^3+.30+.85*t 当x属于区间[0.39,0.45]时这个函数为f =-2.9*(.45-1.*t)^3-2.2*(t-.39)^3+.33+.77*t 当x属于区间[0.45,0.53]时这个函数为f =-1.7*(.53-1.*t)^3-1.4*(t-.45)^3+.35+.71*t a = 0.6325 0.6855  当x属于区间[0.25,0.3]时这个函数为f =-6.8*(.30-1.*t)^3-4.9*(t-.25)^3+.26+.95*t 当x属于区间[0.3,0.39]时这个函数为f =-2.7*(.39-1.*t)^3-1.9*(t-.30)^3+.30+.85*t 当x属于区间[0.39,0.45]时这个函数为f =-2.9*(.45-1.*t)^3-2.2*(t-.39)^3+.33+.77*t 当x属于区间[0.45,0.53]时这个函数为f =-1
显示全部
相似文档