函数的插值法.doc
文本预览下载声明
实验二、函数的插值法
一、插值算法的基本思想:
函数的变化规律往往是通过一组实验数据给出,为了研究此变化规律往往需要求出不在表上的一些函数值。因此我们希望根据给定的函数表做一个既能反函数的特性,又便于计算的简单函数,用近似。通常选一类较简单的函数作为,并使这样确定的就是我们希望得到的插值函数,主要有①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
显示全部