当前位置:文档之家› 多项式与插值

多项式与插值

多项式与插值
多项式与插值

多项式

多项式的表达

MatLab中用按降幂排列的多项式系数组成的行向量表示多项式,如: p(x)=x^3-2x-5被表示为:

p = [1 0 –2 –5];

多项式的根

r = roots(p)

r =

2.0946

–1.0473 + 1.1359i

–1.0473 – 1.1359i

根被储存为列向量.

若要由方程的根构造多项式,则

p2 = poly(r)

p2 =

1 8.8818e-16 –

2 –5

多项式估计

可以用多项式估计出多项式在某一点的值:

polyval(p,5)

ans =

110

同样也可以估计矩阵多项式的值p(X) = X^3 – 2X – 5I,

X = [2 4 5; –1 0 3; 7 1 5];

Y = polyvalm(p,X)

Y =

377 179 439

111 81 136

490 253 639

卷积

多项式相乘是一个卷积的过程,conv()

a = [1 2 3];

b = [4 5 6];

c = conv(a,b)

c =

4 13 28 27 18

多项式相除是其逆过程,用deconv():

[q,r] = deconv(c,a)

q =

4 5 6

r =

0 0 0 0 0

多项式曲线逼近

polyfit(x,y,n)能用多项式逼近由x,y向量提供的数据,n是其阶数,如: x = [1 2 3 4 5];

y = [5.5 43.1 128 290.7 498.4];

p = polyfit(x,y,3)

p =

–0.1917 31.5821 –60.3262 35.3400

将图画出

x2 = 1:.1:5;

y2 = polyval(p,x2);

plot(x,y,’o’,x2,y2)

grid on

分式多项式分解

residue()可将分式多项式分解如下:

对于下式

分解为:

b = [–4 8];

a = [1 6 8];

[r,p,k] = residue(b,a)

r =

–12 8

p =

–4 –2

k =

[]

重载此函数可以完成分式多项式相加:

[b2,a2] = residue(r,p,k)

b2 =

–4 8

a2 =

1 6 8

插值

插值是在已知的数据列中,估计别点的函数值.

一维插值

一维插值在MatLab中有两种方法:

@ 多项式插值

@ 建立在FFT上的插值

多项式插值

yi = interp1(x,y,xi,method)

x是坐标向量,y是数据向量,xi是待估计点向量,method是插值方法, method有四种:

1.nearest 寻找最近数据点,由其得出函数值;

2.linear 线性插值(该函数的默认方法);

3.spline 样条插值,数据点处光滑--左导等于右导;

4.cubic 三次插值

以上四种方法得出的数据值一个比一个精确,而所需内存及计算时间也一个比一个要大要长.

建立在FFT上的插值

这种方法利用了快速傅立叶变换

y = interpft(x,n),其中,x含有周期性的函数值.

二维插值

ZI = interp2(X,Y,Z,XI,YI,method)

method有三种:

1.nearest 寻找最近数据点,由其得出函数值;

2.linear 二维线性插值

3.cubic 二维三次插值

下面来看看二维插值的例子:

先创造数据点:

[x,y] = meshgrid(–3:1:3);

z = peaks(x,y);

surf(x,y,z)

再比较一下不同的插值

[xi,yi] = meshgrid(–3:0.25:3);

zi1 = interp2(x,y,z,xi,yi,'nearest');

zi2 = interp2(x,y,z,xi,yi,'bilinear'); zi3 = interp2(x,y,z,xi,yi,'bicubic');

三维及多维插值

列出函数,其余从略

VI = interp3(X,Y,Z,V,XI,YI,ZI,method)

VI = interpn(X1,X2,X3...,V,Y1,Y2,Y3,...,method)

拉格郞日插值法总结

拉格朗日插值公式 2008-04-26 20:58 一.线性插值(一次插值) 已知函数f(x)在区间[xk ,xk+1 ]的端点上的函数值yk =f(xk ), yk+1 = f(xk+1 ),求一个一次函数y=P1 (x)使得yk =f(xk ),yk+1 =f(xk+1 ), 其几何意义是已知平面上两点(xk ,yk ),(xk+1 ,yk+1 ),求一条直线过该已知两点。 1. 插值函数和插值基函数 由直线的点斜式公式可知: 把此式按照yk 和yk+1 写成两项: 记 并称它们为一次插值基函数。该基函数的特点如下表: 从而 P1 (x) = yk lk (x) + yk+1 lk+1 (x) 此形式称之为拉格朗日型插值多项式。其中, 插值基函数与yk 、yk+1 无关,而由插值结点xk 、xk+1 所决定。一次插值多项式是插值基函数的线性组合, 相应的组合系数是该点的函数值yk 、yk+1 . 例1: 已知lg10=1,lg20=1.3010, 利用插值一次多项式求lg12的近似值。 解: f(x)=lgx,f(10)=1,f(20)=1.3010, 设 x0 =10 ,x1 =20 ,y0 =1 ,y1 =1.3010 则插值基函数为:

于是, 拉格朗日型一次插值多项式为: 故: 即lg12 由lg10 和lg20 两个值的线性插值得到,且具有两位有效数字(精确值lg12=1.0792). 二.二次插值多项式 已知函数y=f(x)在点xk-1 ,xk ,xk+1 上的函数值yk-1 =f(xk-1 ),yk =f(xk ), yk+1 =f(xk+1 ), 求一个次数不超过二次的多项式P2 (x), 使其满足, P2 (xk-1 )=yk-1 , P2 (xk )=yk , P2 (xk+1 )=yk+1 . 其几何意义为:已知平面上的三个点 (xk-1 ,yk-1 ),(xk ,yk ),(xk+1 ,yk+1 ), 求一个二次抛物线, 使得该抛物线经过这三点。 1.插值基本多项式 有三个插值结点xk-1 ,xk ,xk+1 构造三个插值基本多项式,要求满足: (1) 基本多项式为二次多项式;(2) 它们的函数值满足下表: 因为lk-1 (xk )= 0,lk-1 (xk+1 )=0, 故有因子(x-xk )(x-xk+1 ), 而其已经是一个二次多项式, 仅相差一个常数倍, 可设 lk-1 (x)=a(x-xk )(x-xk+1 ), 又因为 lk-1 (xk-1 )=1 ==> a(xk-1 -xk )(xk-1 -xk+1 )=1 得

Hermite插值方法

数值分析实验报告五 一、实验目的 理解Hermite插值方法,掌握Hermite插值算法设计 二、实验内容 使用vc++编程,实现该方法,即Hermite插值法 三、实验步骤 #include double herm(double x0,double x1,double y0,double y1,double h0,double g0,double g1,double x) { d oubl e alp0,alp1,bta0,bta1,t;double s; t=h0*h0; a lp0=(x-x1)*(x-x1)*(h0+2*(x-x0))/t/h0; a lp1=(x-x0)*(x-x0)*(h0-2*(x-x1))/t/h0; b ta0=(x-x0)*(x-x1)*(x-x1)/t; b ta1=(x-x1)*(x-x0)*(x-x0)/t; s=y0*alp0+y1*alp1+g0*bta0+g1*bta1; r eturn(s); } void main() { int n=7;double p0;double pn; double aa[8],bb[8],s=0; double xx[8]={0.5,0.7,0.9,1.1,1.3,1.5,1.7,1.9}; double yy[8]={0.4794,0.6442,0.7833,0.8912,0.9636,0.9975,0.9917,0.9463}; double g[8]; int i; double a[8],c[8],h[8]; cout<<"Please input p0 and pn"<>p0;cin>>pn; for(i=0;i<=n-1;i++) { h[i]=xx[i+1]-xx[i]; c out<<"h["<

牛顿插值法原理及应用

牛顿插值法 插值法是利用函数f (x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f (x)的近似值。如果这特定函数是多项式,就称它为插值多项式。当插值节点增减时全部插值基函数均要随之变化,这在实际计算中很不方便。为了克服这一缺点,提出了牛顿插值。牛顿插值通过求各阶差商,递推得到的一个公式: f(x)=f[x0]+f[x0,x1](x-x0)+f[x0,x1,x2](x-x0)(x-x1)+...f[x0,...xn](x-x0 )...(x-xn-1)+Rn(x)。 插值函数 插值函数的概念及相关性质[1] 定义:设连续函数y-f(x) 在区间[a,b]上有定义,已知在n+1个互异的点 x0,x1,…xn上取值分别为y0,y1,…yn (设a≤ x1≤x2……≤xn≤b)。若在函数类中存在以简单函数P(x) ,使得P(xi)=yi,则称P(x) 为f(x)的插值函数. 称x1,x2,…xn 为插值节点,称[a,b]为插值区间。 定理:n次代数插值问题的解存在且唯一。

牛顿插值法C程序 程序框图#include void main() { float x[11],y[11][11],xx,temp,newton; int i,j,n; printf("Newton插值:\n请输入要运算的值:x="); scanf("%f",&xx); printf("请输入插值的次数(n<11):n="); scanf("%d",&n); printf("请输入%d组值:\n",n+1); for(i=0;i

Lagrang插值多项式

第5章 实验四Lagrange 插值多项式 实验目的:理解Lagrange 插值多项式的基本概念,熟悉Lagrange 插值多项 式的公式及源代码,并能根据所给条件求出Lagrange 插值多项式,理解龙格现象。 5.1 Lagrange 插值多项式 Lagrange 插值多项式的表达式: 1,,2,1,) ()()(, )()(1 11 1+=--==∏ ∑+≠=+=n i x x x x x l x l y x L n i j j j i j i n i i i 。 其中)(x l i 被称为插值基函数,实际上是一个n 次多项式。)(x l i 的这种表示具有较好的对称性。公式具有两大优点:(1)求插值多项式,不需要求解线性方程组,当已知数据点较多时,此公式更能显示出优越性。(2)函数值可以用符号形式表示,数据点未确定的纵坐标可用多项式表示。 5.2 Lagrange 插值多项式源代码I % 功能: 对一组数据做Lagrange 插值 % 调用格式:yi=Lagran_(x,y,xi) % x,y 数组形式的数据表 % xi:待计算y 值的横坐标数组 % yi 用Lagrange 插值算出的y 值数组 function fi=Lagran_(x,f,xi) fi=zeros(size(xi)); np1=length(f); for i=1:np1 z=ones(size(xi)); for j=1:np1 if i~=j,z=z.*(xi-x(j))/(x(i)-x(j));end end fi=fi+z*f(i); end return

例5.1 已知4对数据(1.6,3.3),(2.7,1.22),(3.9,5.61),(5.6,2.94)。写出这4个数据点的Lagrange 插值公式,并计算出横坐标xi=[2.101,4.234]时对应的纵坐标。 解:4个数据点的Lagrange 插值公式为: ) 9.36.1(*)7.26.5(*)6.16.5() 9.3(*)7.2)(6.1(* 94.2) 6.59.3(*) 7.29.3(*)6.19.3() 6.5(*) 7.2(*)6.1(*9.3) 6.5 7.2(*)9.37.2(*)6.17.2() 6.5(*)9.3(*)6.1(*22.4) 6.56.1(*)9.36.1(*) 7.26.1() 6.5(*)9.3(*) 7.2(* 3.3)(3------+ ------+ ------+ ------=x x x x x x x x x x x x x L 清单5.1 clear x=[1.6, 2.7, 3.9, 5.6]; y=[3.3, 1.22, 5.61, 2.94]; xi=[2.101,4.234]; yi=Lagran_(x,y,xi); xx=1.5:0.05:6.5; yy=Lagran_(x,y,xx); plot(xx,yy,x,y,'o') 其结果为: yi = 1.0596 6.6457 x g (x ):-, d a t a p o i n t s :o 图5.1 插值多项式曲线图

多项式插值法和拉格朗日插值

多项式插值法和拉格朗日插值 教案一多项式插值法和拉格朗日插值 基本内容提要 1 多项式插值法的基本概念 2 插值多项式的存在性与唯一性分析 3 拉格朗日插值多 项式的构造及截断误差 4 截断误差的实用估计式 5 逐次线性插值法教学目的和要求 1 熟练掌握多项式插值法的基本概念 2 理解插值多项式的存在性与唯一性 3 掌握拉 格朗日插值法 4 掌握截断误差的估计方法 5 理解逐次线性插值法的基本思想,掌握Aitken逐次线性插值法 6 掌握运用拉格朗 日插值法处理问题的基本过程教学重点 1 拉格朗日插值基函数及拉格朗日插值多项式的构造 2 拉格朗日插值多项式的截断 误差分析 3 逐次线性插值法的基本思想教学难点 1 插值多项式存在唯一性条件的讨论分析 2 插值误差的分析与估计 3 Aitken逐次线性插值法的计算过程课程类型新知识理论课教学方法 结合提问,以讲授法为主教学过程 问题引入 实际问题中许多变量间的依赖关系往往可用数学中的函数概念刻画,但在多数情况下,这些函数的表达式是未知的,或者函数已知,但形式十分复杂。基于未知函数或复杂函数 的某些已知信息,如何构造这些函数的近似表达式?如何计算这些函数在其它点处的函数值?所构造的近似表达式与真实函数的误差是多少?插值理论与方法就是解决这些问题的 有效工具之一。 §2.1 多项式插值 2.1.1 基本概念 假设f(x)是定义在区间[a,b]上的未知或复杂函数,但已知该函数在点a≤x0 P(xi)=yi,i=0,1,2,L,n,即在给定点xi处,P(x)与f(x)是相吻合的。 (2.1) 把P(x)称为f(x)的插值多项式(函通常把上述x0 数), f(x)称为被插函数。[a,b]称为插值区间,条件(2.1)称为插值条件,并把 求P(x)的过程称为插值法。

拉格朗日插值法理论及误差分析

浅析拉格朗日插值法 目录: 一、 引言 二、 插值及多项式插值的介绍 三、 拉格朗日插值的理论及实验 四、 拉格朗日插值多项式的截断误差及实用估计式 五、 参考文献 一、引言 插值在数学发展史上是个古老问题。插值是和拉格朗日(Lagrange )、牛顿(Newton )、高斯(Gauss )等著名数学家的名字连在一起的。在科学研究和日常生活中,常常会遇到计算函数值等一类问题。插值法有很丰富的历史渊源,它最初来源人们对天体研究——有若干观测点(我们称为节点)计算任意时刻星球的位置(插值点和插值)。现在,人们在诸如机械加工等工程技术和数据处理等科研都有很好的应用,最常见的应用就是气象预报。插值理论和方法能解决在实际中当许多函数表达式未知或形式复杂,如何去构造近似表达式及求得在其他节点处的值的问题。 二、插值及多项式插值 1、插值问题的描述 设已知某函数关系()y f x =在某些离散点上的函数值: 插值问题:根据这些已知数据来构造函数()y f x =的一种简单的近似表达式,以便于计算点,0,1,,i x x i n ≠= 的函数值()f x ,或计算函数的一阶、二阶导数值。 x 0x 0 y y 1 y 1 n y -n y 1 x 1 n x -n x

2、插值的几何意义 插值的几何意义如图1所示: 图1 3、多项式插值 3.1 基本概念 假设()y f x =是定义在区间,a b ????上的未知或复杂函数,但一直该函数在点01n a x x x b ≤<<<≤ 处的函数值01,,n y y y 。找一个简单的函数,例如函数 ()P x ,使之满足条件 (),0,1,2,, i P x y i n == (3.1) 通常把上述01n x x x <<< 称为插值节点,把()P x 称为()f x 的插值多项式,条件(3.1)称为插值条件,并把求()P x 的过程称为插值法。 3.2 插值多项式的存在性和唯一性 如果插值函数是如下m 次的多项式: 1 011()m m m m m P x a x a x a x a --=+++ 那么插值函数的构造就是要确定()m P x 表达式中的m+1个系数 011,,,m m a a a a - 。由于插值条件包含n+1独立式,只要m=n 就可证明插值函数多项式是唯一存在。 实际上,由n+1个插值条件可得

插值多项式简介

在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。 早在6世纪,中国的刘焯已将等距二次插值用于天文计算。17世纪之后,I.牛顿,J.-L.拉格朗日分别讨论了等距和非等距的一般插值公式。在近代,插值法仍然是数据处理和编制函数表的常用工具,又是数值积分、数值微分、非线性方程求根和微分方程数值解法的重要基础,许多求解计算公式都是以插值为基础导出的。 插值问题的提法是:假定区间[a,b]上的实值函数f(x)在该区间上n+1个互不相同点x0,x1……xn 处的值是f [x0],……f(xn),要求估算f(x)在[a,b]中某点的值。其做法是:在事先选定的一个由简单函数构成的有n+1个参数C0,C1,……Cn的函数类Φ(C0,C1,……Cn)中求出满足条件P(xi)=f(xi)(i=0,1,…… n)的函数P(x),并以P()作为f()的估值。此处f(x)称为被插值函数,c0,x1,……xn 称为插值结(节)点,Φ(C0,C1,……Cn)称为插值函数类,上面等式称为插值条件,Φ(C0,……Cn)中满足上式的函数称为插值函数,R(x)= f(x)-P(x)称为插值余项。当估算点属于包含x0,x1……xn 的最小闭区间时,相应的插值称为内插,否则称为外插。 多项式插值这是最常见的一种函数插值。在一般插值问题中,若选取Φ为n次多项式类,由插值条件可以唯一确定一个n次插值多项式满足上述条件。从几何上看可以理解为:已知平面上n+1个不同点,要寻找一条n次多项式曲线通过这些点。插值多项式一般有两种常见的表达形式,一个是拉格朗日插值多项式,另一个是牛顿插值多项式。 埃尔米特插值对于函数f(x),常常不仅知道它在一些点的函数值,而且还知道它在这些点的导数值。这时的插值函数P(x),自然不仅要求在这些点等于f(x)的函数值,而且要求P(x)的导数在这些点也等于f(x)的导数值。这就是埃尔米特插值问题,也称带导数的插值问题。从几何上看,这种插值要寻求的多项式曲线不仅要通过平面上的已知点组,而且在这些点(或者其中一部分)与原曲线“密切”,即它们有相同的斜率。可见埃尔米特插值多项式比起一般多项式插值有较高的光滑逼近要求。 分段插值与样条插值为了避免高次插值可能出现的大幅度波动现象,在实际应用中通常采用分段低次插值来提高近似程度,比如可用分段线性插值或分段三次埃尔米特插值来逼近已知函数,但它们的总体光滑性较差。为了克服这一缺点,一种全局化的分段插值方法——三次样条插值成为比较理想的工具。见样条函数。 三角函数插值当被插函数是以2π为周期的函数时,通常用n阶三角多项式作为插值函数,并通过高斯三角插值表出。 插值(Interpolation),有时也称为“重置样本”,是在不生成像素的情况下增加图像像素大小的一种方法,在周围像素色彩的基础上用数学公式计算丢失像素的色彩。有些相机使用插值,人为地增加图像的分辨率。插值:用来填充图像变换时像素之间的空隙。 如果您认为本词条还有待完善,需要补充新内容或修改错误内容,请编辑词条 贡献者(共4名): zy19842006、laner6810、明明我心521、lewuyang 问题的描述与基本概念

实习:Matlab作业hermite插值

题目:利用Matlab实现数据的Hermite插值和分段三次Hermite插值 小组成员:王晓波(38) 蔡明宇(20) 一、程序实现意义: 一般的,从各种试验得来的数据总有一定的数量,而利用插值技术能够从有限的数据中获取整体的状态。而Hermite插值不仅保证了插值函数与原函数在给定数据点处得拟合,同时保证了在相应点处导数的相同,从而在很大程度上保证了曲线的“光滑性”。因此,通过Matlab实现Hermite插值具有很普遍的意义。 二、实现过程: 1、Hermite插值 由于并不是所有的Matlab版本都提供现有的Hermite插值函数包,故我们首先编写了实现给定五个观测点的Hermite插值的M程序,代码如下: function [f,f0] = Hermite1(x,y,y_1) syms t; f = ; ! if(length(x) == length(y)) if(length(y) == length(y_1)) n = length(x); else disp('y和y的导数的维数不相等'); return; end else disp('x和y的维数不相等! '); return; end * for i=1:n h = ; a = ; for j=1:n if( j ~= i) h = h*(t-x(j))^2/((x(i)-x(j))^2); a = a + 1/(x(i)-x(j)); end end

f = f + h*((x(i)-t)*(2*a*y(i)-y_1(i))+y(i)); < end f0 = subs(f,'t'); 其中x为给定点横坐标数组,y为给定点纵坐标数组,y_1为原函数在给定点处的导数数组。测试证明该程序可以实现,例如输入如下数组: x=1::; y_1=[ ]; y=[1 ]; >> [f,f0] = Hermite1(x,y,y_1); 运行结果如下: f = $ (390625*((3972231*t)/35 - 28321/0000)*(t - 1)^2*(t - 7/5)^2*(t - 8/5)^2*(t - 9/5)^2)/36 - (390625*(t - 1)^2*(t - 6/5)^2*(t - 7/5)^2*(t - 9/5)^2*((28557*t)/28 - 23/2000))/36 + (390625*((64*t)/3 - 61/3)*(t - 6/5)^2*(t - 7/5)^2*(t - 8/5)^2*(t - 9/5)^2)/576 + (390625*((763*t)/1984 + 043/6240000)*(t - 1)^2*(t - 6/5)^2*(t - 8/5)^2*(t - 9/5)^2)/16 - (390625*((77623*t)/28 - 931/60000)*(t - 1)^2*(t - 6/5)^2*(t - 7/5)^2*(t - 8/5)^2)/576 f0 = . 利用matlab绘制图像:

拉格朗日多项式插值

拉格朗日多项式插值法浅析 摘要 拉格朗日插值多项式是一种最常见的多项式插值法,也是一种最常用的逼近工具。“学以致用 ”是每一门学科都致力追求的境界,数学自然也不例外。下面,探讨拉格朗日插值法的基本原理、如何构造拉格朗日多项式、拉格朗日多项式的误差界,并用 MATLAB 程序来实现这一数学算法的自动化,为复杂的分析研究提供了一条数学算法的捷径。 【关键词】:拉格朗日多项式 算法实现 MATLAB 在科学研究和实际的工程设计中,几乎所有的问题都可以用)(x f y =来表示其某种内在规律的数量关系。但理想化的函数关系在实际工程应用中是很难寻找 的,对于那些没有明显解析式的函数关系表达式则只能通过实验观察的数据,利用多项式对某一函数的进行逼近,使得这个逼近函数能够反映)(x f 的特性,而且利用多项式就可以简便的计算相应的函数值。例如我们不知道气温随日期变化的具体函数关系,但是我们可以测量一些孤立的日期的气温值,并假定此气温随日期变化的函数满足某一多项式。这样,利用已经测的数据,应用待定系数法便可以求得一个多项式函数f (x )。应用此函数就可以计算或者说预测其他日期的气温值。一般情况下,多项式的次数越多,需要的数据就越多,而预测也就越 准确。当然,构造组合多项式方法比较多,如线性方程求解、拉格朗日系数多项式以及构造牛顿多项式的分段差分和系数表等等,这里只对拉格朗日多项式插值法进行深入探讨。 一、拉格朗日多项式插值算法基本原理 函数)(x f y =在区间[a,b]上有定义,在是[ a,b]上取定的 N + 1个互异节点, 且在这些点处的函数值)(0x f , )(1x f ,…,)(n x f 为已知, 即 yi =f (xi ) , (N i ...1,0=),若存在一个和)(x f 近似的函数)(x P N ,满足 )()(i i N x f x P = (N i ...1,0=) (1) 则称 φ(x) 为 f (x) 的一个插值函数, 点i x 为插值节点,(1)称为插值条件, 区间[a,b]称为插值区间, 而误差函数)()(x P x f E N N -=称为插值余项。即是求一个不超过N 次多项式0111...)(a x a x a x a x P N N N N N ++++=-- (N i ...1,0=) 满足 )()(i i N x f x P = (N i ...1,0=)

Lagrange插值多项式

宁夏师范学院数学与计算机科学学院 《数值分析》实验报告 实验序号:1实验项目名称:Lagrange插值多项式

end L(k,:)=V; end C=y*L 五、实验结果与数据处理 1.(1)清单: >> clear >> clf >> x=[1,2,2.5]; >> y=x+2./x; >> [C,L]=lagran(x,y); C = 0.4000 -1.2000 3.8000 >> xx=[1.5,1.2]; >> yy=polyval(C,xx) yy = 2.9000 2.9360 (2)清单 >> clear,clf >> x=[0.5,1,3,5]; >> y=x+2./x; >> [C,L]=lagran(x,y); C = -0.2667 2.5333 -6.3333 7.0667 >> xx=[1.5,1.2]; >> yy=polyval(C,xx) yy = 2.3667 2.6539 2. 清单: >> x=0:pi/16:pi/2; >> y=x.*sin(x); >> [C,L]=lagran(x,y); C = Columns 1 through 8 -0.0001 -0.0003 0.0089 -0.0005 -0.1663 -0.0001 1.0000 -0.0000 Column 9 >> xx=0:pi/16:pi/2; >> yy=polyval(C,xx); >> plot(xx,yy,'b',x,y,'.') >> hold on >> a=polyfit(x,y,4)

>> grid on 六、分析与讨论 通过本次的实验,我初步掌握了 综合运用专业及基础知识,解决实际数学问题的能力,运行过程中有几处错误,但照提示改过就出结果了。 七、教师评语

数值分析实验,用程序实现Hermite插值法

《数值分析》实验报告 实验序号:实验六 实验名称: Hermite 插值法 1. 实验目的: 学会Hermite 插值法,并应用该算法于实际问题. 2. 实验内容: 求一个函数?(x )用来近似函数f (x ),用分段三次Hermit 插值的方法来求解近似函数?(x )并画出近似函数图像及原函数图像。 设在区间[a,b]上,给定n+1个插值节点b x x x x a n =<<<<=...210和相应的函数 值n y y y ,...,,10以及一阶导数值''1'0,...,,n y y y ,求一个插值函数)(x H ,满足以下条件: (1) ),...,2,1,0()(,)(''n i y x H y x H i i i i === (2) )(x H 在每一个小区间[1,+j j x x ]上是三次多项式。 对于给定函数11-,2511)(2 ≤≤+=x x x f 。在区间[]11-,上画出f (x )和分段三次Hermit 插值函数)(x H 的函数图像。 3. 实验分析: 算法分析: 1. 分段三次Hermit 插值的算法思想: 分段三次Hermit 插值的做法是在每一个小区间上作三次Hermit 插值,因此在每一个插值节点上都需要构造两个插值基函数)(),(x H x h i i ,然后再作它们的线性组合。分段三次Hermit 插值基函数如下: ?????≤≤----+=其它 0 ))(21()(1021010100x x x x x x x x x x x x h ?? ???≤≤---=其它 0 ))(()(10210100x x x x x x x x x x H

多项式插值理论

第六章 多项式插值理论 一、区间[a , b ]上的一般插值理论 (从有限维子空间出发的逼近方法) ① 对无限维函数空间的一个元素f (x ) 进行逼近,关于f (x ) 的情况仅知道一部分 (1、若干点的函数值或导数值已知; 2、满足一些控制方程) ② 选择一个由固定基函数张成的有限维函数子空间 基函数性质: ?? ?? ?、线性无关、完备的条件、满足基本的函数已知321 ③ 选择n X 中的元素)()(~x P x f n 或,在一定的约束条件下,使)(~ x f 良好的逼近()x f , 即 令)(~ x f = n n c c c φφφ+++ 2211关于()x f 在插值区间上有不大的误差(包括一定的光滑性逼近)。 ④ 良好逼近的判断 ε<-f f ~ e .g . Tchebychef f 范数,|| f || = |)(|max x f b x a ≤≤ 称为一致逼近。 ⑤ 约束条件: (依据对()x f 的了解来确定) i / 插值约束 )()(~ i i x f x f = 1n i ≤≤ i x ∈ (a , b ) 且i x 互不相同; ii / 插值与光滑性混合约束 (1)、 )()(~ i i x f x f = 1k i ≤≤ i x ∈(a , b ) 且i x 互不相同 (2)、 )()(~ i i x f x f '=' 1k i ≤≤ i x ∈(a,b) 且互不相同 (3)、 )(~ x f 的二阶导数存在 iii / 变分约束 (以下两种约束不再具有严格的插值含义,这里可能仅知道被插函数 满足某些控制方程) 依据|| f -f ~||在n X 中为最小的条件,即确定常数n c c c 21, 使f ~ 的解由下列形式的极小化问题得到: || f -0f ~|| = min{|| f -f ~||:f ~ n X ∈} Note :这里的||·|| 不局限于切比雪夫范数和2-范数,可能是某种内积定义的范数;这也是固体力学求近似解的基本方法(如,有限元就是能量的变分)。 iv / 正交约束 根据f -f ~ 与n 个给定基函数)(,),(),(21x x x n φφφ 的正交条件,确定常数: i c , 1n i ≤≤。即 < f -f ~ ,0)()](~ )([=->= ? dx x x f x f i b a i φφ 1n i ≤≤ {}n n Span X φφφ,,,21 =

多项式与插值

多项式 多项式的表达 MatLab中用按降幂排列的多项式系数组成的行向量表示多项式,如: p(x)=x^3-2x-5被表示为: p = [1 0 –2 –5]; 多项式的根 r = roots(p) r = 2.0946 –1.0473 + 1.1359i –1.0473 – 1.1359i 根被储存为列向量. 若要由方程的根构造多项式,则 p2 = poly(r) p2 = 1 8.8818e-16 – 2 –5 多项式估计 可以用多项式估计出多项式在某一点的值: polyval(p,5) ans = 110 同样也可以估计矩阵多项式的值p(X) = X^3 – 2X – 5I, X = [2 4 5; –1 0 3; 7 1 5]; Y = polyvalm(p,X) Y = 377 179 439 111 81 136 490 253 639 卷积 多项式相乘是一个卷积的过程,conv() a = [1 2 3]; b = [4 5 6]; c = conv(a,b) c = 4 13 28 27 18 多项式相除是其逆过程,用deconv():

[q,r] = deconv(c,a) q = 4 5 6 r = 0 0 0 0 0 多项式曲线逼近 polyfit(x,y,n)能用多项式逼近由x,y向量提供的数据,n是其阶数,如: x = [1 2 3 4 5]; y = [5.5 43.1 128 290.7 498.4]; p = polyfit(x,y,3) p = –0.1917 31.5821 –60.3262 35.3400 将图画出 x2 = 1:.1:5; y2 = polyval(p,x2); plot(x,y,’o’,x2,y2) grid on 分式多项式分解 residue()可将分式多项式分解如下:

Hermite插值函数

数值分析实验报告 任课教师:马季骕班级:11级计算机科学与技术 1实验目的及要求 2程序的源代码 3实验操作 4实验结果及分析 1实验目的及要求 学会Hermite插值法,并应用该算法于实际问题. (1)给定函数y=f(x)在n各不同的插值节点xi(i=1,…,n)的函数值yi=f(xi) (i=1,…,n),用厄米特(Hermite)插值多项式求函数在x初的函数值y。 (2)Hermite插值多项式: (4)如果有错,修改直至运行成功,查看运行结果; (5)根据所求函数,画出图形。 (6)查看原函数的图形与逼近函数图形的近似程度。 2 程序的源代码 // LDlg.cpp : implementation file // #include "stdafx.h" #include "L.h" #include "LDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE

static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CAboutDlg dialog used for App About class CAboutDlg : public CDialog { public: CAboutDlg(); // Dialog Data //{{AFX_DATA(CAboutDlg) enum { IDD = IDD_ABOUTBOX }; //}}AFX_DATA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: //{{AFX_MSG(CAboutDlg) //}}AFX_MSG DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { //{{AFX_DATA_INIT(CAboutDlg) //}}AFX_DATA_INIT } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAboutDlg) //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) //{{AFX_MSG_MAP(CAboutDlg)

拉格朗日插值公式的证明及其应用讲解

拉格朗日插值公式的证明及其应用 摘要: 拉格朗日(Lagrange)插值公式是多项式中的重要公式之一,在理论和实践中都有着广泛的应用.本文阐述了Lagrange 插值的基本理论,譬如:线形插值,抛物插值,Lagrange 多项式等.然后将线形插值,抛物插值,Lagrange 多项式插值分别应用到高中知识中,并且学会用计算机程序来编写.插值法的思想与中国剩余定理一脉相承, 体现了代数中"线性化" (即表示为求和和数乘的形式) 这一基本思路, 大巧若拙.本文的目的是通过介绍拉格朗日插值公式的推导,唯一性,证明过程及其在解题与实际生活问题中的应用来寻找该公式的优点,并且引人思考它在物理,化学等领域的应用.通过实际鉴定过程,利用插值公式计算生活中的成本问题,可以了解它的计算精度高,方法快捷. 关键词: 拉格朗日插值公式 唯一性 证明 解题应用 资产评估 曲线插值问题,直观地说,认为已知的一批数据点()n k k k f x 0,=是准确的,这些数据点所表现的 准确函数关系()x f 是未知的,在这种情况下要作一条近似曲线()x P 且点点通过这些点,插值问题不仅要讨论这种近似曲线()x P 的构造方法,还要讨论点增多时这种近似曲线()x P 是否稳定地收敛于未知函数()x f ,我们先研究一种简单常用的插值——拉格朗日插值. 一.定义,推导及其在解题中的应用 1.线性插值 1.1. 线性插值的定义 假定已知区间[]1,+k k x x 的端点处的函数值()k k x f y =, ()11++=k k x f y ,要求线性插值多项式()x L 1使它满足()k k y x L =1, ()111++=k k y x L . ()x L y 1=的几何意义:通过两点()k k y x ,和()11,++k k y x 的直线, 如图1所示,()x L 1的表达式由几何意义直接给出,即 ()()k k k k k k x x x x y y y x L ---+ =++111 (点斜式), 图1 ()11111++++--+--= k k k k k k k k y x x x x y x x x x x L (两点式). y=L 1x () y=f x () y k+1 y k x k+1 x k o y x

几种常用的插值方法

几种常用的插值方法 数学系 信息与计算科学1班 李平 指导老师:唐振先 摘要:插值在诸如机械加工等工程技术和数据处理等科学研究中有许多直接的应用,在很多领域都要用插值的办法找出表格和中间值,插值还是数值积分微分方程数值解等数值计算的基础。本文归纳了几种常用的插值方法,并简单分析了其各自的优缺点。 关键词:任意阶多项式插值,分段多项式插值。 引言:所谓插值,通俗地说就是在若干以知的函数值之间插入一些未知函数值,而插值函数的类型最简单的选取是代数多项式。用多项式建立插值函数的方法主要用两种:一种是任意阶的插值多项式,它主要有三种基本的插值公式:单项式,拉格朗日和牛顿插值;另一种是分段多项式插值,它有Hermite 和spine 插值和分段线性插值。 一.任意阶多项式插值: 1.用单项式基本插值公式进行多项式插值: 多项式插值是求通过几个已知数据点的那个n-1阶多项式,即P n-1(X)=A 1+A 2X+…A n X n-1,它是一个单项式基本函数X 0,X 1…X n-1的集合来定义多项式,由已知n 个点(X,Y )构成的集合,可以使多项式通过没数据点,并为n 个未知系数Ai 写出n 个方程,这n 个方程组成的方程组的系数矩阵为Vandermonde 矩阵。 虽然这个过程直观易懂,但它都不是建立插值多项式最好的办法,因为Vandermonde 方程组有可能是病态的,这样会导致单项式系数不确定。另外,单项式中的各项可能在大小上有很大的差异,这就导致了多项式计算中的舍入误差。 2.拉格朗日基本插值公式进行插值: 先构造一组插值函数L i (x ) =011011()()()() ()()()() i i n i i i i i i n x x x x x x x x x x x x x x x x -+-+-------- ,其中i=0,… n.容易看出n 次多项式L i (x )满足L i (x )=1,(i=j );L i (x )=0,(i ≠j ),其中i=0,1…n ,令L i (x )=0()n i i i y l x =∑这就是拉格朗日插值多项式。与单项式基本

hermite插值多项式的例题

例 若()f x 在[a,b]上有三阶连续导数,且已知()f x 在[,]a b 上两个互异的 点01,x x 上的函数值01(),()f x f x 和一阶导数值' 0()f x ,试求满足条件 ''001100()(),()(),()()H x f x H x f x H x f x === 的插值多项式,并估计误差。 解 由给定的3 个插值条件,显然可确定一个次数不超过2次的埃尔米特插值多项式()H x , 又有()H x 应满足插值条件()()i i H x f x =,(0,1)i =,而节点01,x x 上的线性插值函数1()N x 也满足插值条件1()(),(0,1)i i N x f x i ==,故可设101()()()()H x N x A x x x x -=--,其中A 为待定常数,上式又可记为 101000101()()()() ()()[,]()()H x N x A x x x x f x x x f x x A x x x x =+--=+-+-- 为了确定常数A ,对上式求导,得 '0110()[,][()()]H x f x x A x x x x =+-+-, 令0x x =代入,且注意插值条件'' 001010()[,]()()H x f x x A x x f x =+-=, 于是有'01010[,]()f x x f x A x x -=-,即多项式()H x 为 '010******** [,]()()()()[,]()()f x x f x H x f x x x f x x x x x x x x -=+-+--- , 当然也可先采用拉格朗日多项式构造,同样得到满足相同条件的插值多项式()H x 余项为(3)201()()()()6 f R x x x x x ξ=--。

分段三次Hermite插值

分段三次Hermite 插值 1. 目的意义: 可以得到在插值区间上光滑的分段插值多项式 2. 数学模型(数学公式): ???????∈??????∈∈=-] ,[),(],[),(],[),()(1212101n n n x x x x H x x x x H x x x x H x H '221'122 13211321)()())(())]((2[))]((2[i i i i i i i i i i i i i i i i i i i y h x x x x y h x x x x y h x x x x h y h x x x x h H --+--+--++--+=------ 3. 算法程序: #include #include #define m 4 #define n 5 void main() { int i,k; float x[n+1],y[n+1],yy[n+1],h,z[m];

printf("请按行输入一系列的x值:\n"); for(k=0;k=x[k]&&z[i]<=x[k+1]) { h=pow((z[i]-x[k+1])/(x[k]-x[k+1]),2.0)*(1+2*(z[i]-x[k])/(x[k+1 ]-x[k]))*y[k]+pow((z[i]-x[k])/(x[k+1]-x[k]),2.0)*(1+2*(z[i]-x[k +1])/(x[k]-x[k+1]))*y[k+1]+pow((z[i]-x[k+1])/(x[k]-x[k+1]),2.0 )*(z[i]-x[k])*yy[k]+pow((z[i]-x[k])/(x[k+1]-x[k]),2.0)*(z[i]-x[k

多项式插值

多项式插值典型算法及其应用 一、任务简介 (2) 1.1任务题目 (2) 1.2任务目的 (2) 1.3任务案例 (2) 二、总体设计 (3) 三、算法原理 (4) 3.1分段线性插值 (4) 3.2保形插值 (4) 3.3三次样条插值 (5) 3.4最邻近点插值 (9) 3.5分片线性插值 (9) 3.6双线性插值 (9) 四、算法介绍 (11) 4.1分段线性插值 (11) 4.2保形插值 (12) 4.3三次样条插值 (13) 4.4最邻近点插值 (14) 4.5分片线性插值 (15) 4.6双线性插值 (16) 五、软件功能 (16) 六、运行结果 (17) 6.1主界面 (17) 6.2二级界面 (17) 6.3程序结果 (18) 七、个人总结 (22) 八、参考资料 (23) 附录 (23)

一、任务简介 1.1任务题目 多项式插值典型算法及其应用 1.2任务目的 基于MATLAB图形界面对测试案例利用分段线性插值、保型插值、三次样条插值、最邻近点插值、分片线性插值、双线性插值实现。 1.3任务案例 案例一、数控机床加工零件 待加工零件的外形根据工艺要求由一组数据(x,y)给出(在平面情况下),用数控机床加工时刀具必须沿这些数据点前进,并且由于刀具每次只能沿x方向或y方向走非常小的一步,所以需要将已知数据加密,得到加工所要求的步长很小的(x,y)坐标。 图1是待加工零件的轮廓线,表1给出了轮廓线上x每间隔0.2(长度单位)的加工坐标x,y(顺时针方向为序,由轮廓线的左右对称性,表中只给出右半部的数据),假设需要得到x或y坐标每改变0.05时的坐标,试完成加工所需的加密数据,画出曲线。 图1、零件的轮廓线(x间隔0.2) 0 0.2 0.4 0.6 0.8 1 1.2 5 4.71 4.31 3.68 3.05 2.5 2.05 1.4 1.6 1.8 2 2.2 2.4 2.6 1.69 1.4 1.18 1 0.86 0.74 0.64 2.8 3 3.2 3.4 3.6 3.8 4 0.57 0.5 0.44 0.4 0.36 0.32 0.29 4.2 4.4 4.6 4.8 5 4.8 4.6 0.26 0.24 0.2 0.15 0 -1.4 -1.96

相关主题
文本预览
相关文档 最新文档