《计算方法》插值方法
- 格式:ppt
- 大小:2.53 MB
- 文档页数:90
计算方法报告——插值1.原理简介插值法是利用函数f (x)在某区间中已知的若干点的函数值,作出适当的特定函数,在区间的其他点上用这特定函数的值作为函数f (x)的近似值。
根据算法和插值要求的不同,有多种插值方法。
拉格朗日插值:有平面上点集{(x i,y i)}共n个点,现作函数f(x)图像使其过这n个点P i(x)=∏x−x j x i−x jnj=0 j≠i L n(x)=∑P i(x)×y ini=1则f(x)=L n(x)牛顿插值:同样点集,用不同方法构造插值多项式。
定义差商:f[x0,x1]=f(x0)−f(x1) x0−x1f[x0,x1……x k]=f[x0,x1……x k−1]−f[x1,x2……x k]x0−x k则有:N(x)=f[x0]+∑f[x0,x1……x k](x−x0)(x−x1)…(x−x k−1)nk=1理论上牛顿插值与拉格朗日插值所得插值多项式完全相同,只是不同写法。
2.算法描述分析函数:homework1.C 画图函数:DrawPlot.cpp为简化程序,将Lagrange插值与Newton插值算法作为子函数调用。
子函数Lagrange()中,输入插值点个数n,插值点集x[n],y[n],即可得到x点的Lagrange插值函数值L(x)。
同样,Newton()中输入相同信息可得到x点Newton插值函数值N(x)。
主函数main()中,先根据设定选择样点为等距分割还是Chebyshev分割,取得点集point_x[n+1]和point_y[n+1],取点范围(-1,1)。
再调用子函数分别计算各x[i]点下的真实函数值,牛顿插值函数值,拉格朗日插值函数值及各种误差,在循环结束后将需要的误差L_inf 和L1输出到屏幕。
最后利用root TGraph把计算得到的数组画出函数图像,并存到rootfile 中。
在误差计算中只用了-1~0上的点,画图时扩大范围画到-1~1全部点DrawPlot函数中读取了homework1.C中画的函数图像,将其整合到一起,设置线条颜色及宽度,加上一个图例,重新生成一张图像。
计算方法第5章插值插值与拟合5.1插值的基本概念设y = f (x)在某些离散点上的函数值, 或函数y = f (x)以表格形式给出:x yx0 y0x1 y1x2 xn y2 yn(5.1)插值问题:根据已知数据,构造函数y = f (x)的一种简单的近似表达式P(x),以便于计算点x xi 的函数值 f ( x ) , 或计算函数的导数值。
用简单的函数y=P(x)来近似地表示y=f(x), 使得:p( xi ) = f ( xi ) (i=0,1,2,。
,n)(5.1)称P(x)为插值函数,称f(x)为被插值函数, 称xi为插值节点, 称式(5.1)为插值条件.选P(x)为n次多项式Pn(x)作为f (x) 的近似,且使得Pn ( xi ) yi ,设x0 x1 。
xni 0, 1, 2, , n(5.2)满足关系(5.2)的函数Pn(x)为f (x)的n次插值多项式.记a = x0, b = xn,则[a, b] 为插值区间。
5.1.2插值多项式的存在唯一性三个问题: (1)满足插值条件的多项式是否存在? 是否唯一?(2)用pn ( x) 表示f(x)的误差是多少? (3)怎样求出pn ( x) ?定理1: 插值多项式Pn(x)存在且唯一. 证:设所要构造的插值多项式为:Pn ( x) a0 a1 x a2 x 2 an x n由插值条件Pn ( xi ) yii 0, 1, , n得到如下线性代数方程组:n 1 a0 x0 a1 x0 an y0 n 1 a0 x1a1 x1 an y1 1 a x a x n a y n 1 n n n 0此方程组的系数行列式为1 x0 D 1 x1 1 xn(范得蒙行列式!当2 n x0 x0 2 n x1 x10 j i n2 n xn xn( xix j ) 0,xi x ji 1,2, n;j 1,2, n时,0) D因此,Pn(x) 中的a0, a1,。