差商与牛顿插值

差商与牛顿插值
差商与牛顿插值

牛顿插值法原理及应用

牛顿插值法 插值法是利用函数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

第3讲 牛顿插值公式

第8讲 牛顿插值公式 §1.4 差商与差分及其性质 1 差商的概念: 称 10110)()(],[x x x f x f x x f --= 为函数f (x )的一阶差商; 称 21021210] ,[],[],,[x x x x f x x f x x x f --= 为函数f (x )的二阶差商; 一般地,称0 10110] ,...,[],...,[],...,,[x x x x f x x f x x x f n n n n --= -为函数f (x )的n 阶 差商; 特别地,定义)(][00x f x f =为函数f (x )关于x o 的零阶差商。 由此可知,高阶差商总是由比它低一阶的的两个差商组合而成。 2 (a )n 阶差商可以表示成n +1个函数值01 ,,,n y y y 的线性组合,即 ∑ -----==+-k i n i i i i i i i i k x x x x x x x x x x x f x x f 011100)())(())(() (],...,[ 该性质说明:k 阶差商 ],...,,[10n x x x f 计算是由函数值f (x 0 ),f (x 1 ),…f (x k )线 性组合而。 如: ],,[],,[],,[012201210x x x f x x x f x x x f ==; 011100010110) ()()()(],[x x x f x x x f x x x f x f x x f -+ -=--= ))(() ())(()())(()()()()()()()() ()()()(],[],[],,[1202221011201000 21 221210111000 11100020 10112120 21021210x x x x x f x x x x x f x x x x x f x x x x x f x x x f x x x f x x x f x x x f x x x f x x x x x f x f x x x f x f x x x x f x x f x x x f --+ --+--= --+ ------=-+ -=---- --=--=

MAAB牛顿插值法例题与程序

题目一:多项式插值 某气象观测站在8:00(AM )开始每隔10分钟对天气作如下观测,用三次多项式插值函数(Newton )逼近如下曲线,插值节点数据如上表,并求出9点30分该地区的温度(x=10)。 二、数学原理 假设有n+1个不同的节点及函数在节点上的值(x 0,y 0),……(x n ,y n ),插值多项式有如下形式: )() )(()()()(n 10n 102010n x -x )(x -x x -x x P x x x x x x -??-+??+-++=αααα(1) 其中系数i α(i=0,1,2……n )为特定系数,可由插值样条i i n y x P =) ((i=0,1,2……n )确定。 根据均差的定义,把x 看成[a,b]上的一点,可得 f(x)=f (0x )+f[10x x ,](0x -x ) f[x,0x ]=f[10x x ,]+f[x,10x x ,](1x -x ) …… f[x,0x ,…x 1-n ]=f[x,0x ,…x n ]+f[x,0x ,…x n ](x-x n ) 综合以上式子,把后一式代入前一式,可得到: f(x)=f[0x ]+f[10x x ,](0x -x )+f[210x x x ,,](0x -x )(1x -x )+ …+f[x,0x ,…x n ](0x -x )…(x-x 1-n )+f[x,0x ,…x n ,x ])(x 1n +ω=N n (x )+) (x n R 其中 N n (x )=f[0x ]+f[10x x ,](0x -x )+f[210x x x ,,](0x -x )(1x -x )+ …+f[x,0x ,…x n ](0x -x )…(x-x 1-n )(2) )(x n R =f(x)-N n (x )=f[x,0x ,…x n ,x ]) (x 1n +ω(3) ) (x 1n +ω=(0x -x )…(x-x n ) Newton 插值的系数i α(i=0,1,2……n )可以用差商表示。一般有 f k =α[k 10x x x ??,](k=0,1,2,……,n )(4)

4.2 牛顿插值公式

§2 差商、牛顿插值多项式 在计算过程中,若需要再增加插值节点并求出新的插值函数,则Lagrange 插值公式所有的基函数都要重新计算,造成计算量的很大浪费。而以下介绍的牛顿插值公式可以克服这一缺陷,可在原有插值多项式的基础上灵活的增加插值节点。 一、 差商及其性质: 1、相关定义 设给出函数)(x f 在点0x ,1x ,… ,n x ,…上的函数值 ,则有: 称],[10x x f 1010 ()() f x f x x x -=-为函数 )(x f 在 0x 、1x 点的一阶差商。 一阶差商的差商 ],,[210x x x f 1 21020] ,[],[x x x x f x x f --= 称为函数)(x f 在0x ,1x 和2x 点的二阶差商。 1-n 阶差商的差商 ],,,[10n x x x f Λ1 12020],,,[],,,[------=n n n n n n x x x x x f x x x f ΛΛ

称为函数)(x f 在n x x x ,,,10Λ点的n 阶差商。 见插商表4-1 2、性质: 性质1 :差商],,,[10n x x x f Λ可表示为函数值的线性组合,即 ∑==n i i i n x f a x x x f 010)(],,,[Λ , 其中:∏≠=-=n i j j j i i x x a ,0)(/ 1。 该性质表明:差商与节点的排列次序无关,即: ],,,[10n x x x f Λ=],,,[01n x x x f Λ=…= ],,,[01x x x f n Λ 这就是差商的对称性。 性质 2 101010 [,,][,,] [,,,]n n n n f x x f x x f x x x x x --= -L L L 01110[,,,][,,,]n n n f x x x f x x x x -=Q L L 11100 [,,][,,,] n n n f x x f x x x x x --= -L L

牛顿插值法

题目:牛顿插值法在凸轮修正设计中 的应用 算法:Newton插值法 组号:6 组员:赵冬冬闫鹏田二方李婵娟张帅军郑亚军刘洋郭洋波

牛顿插值法在凸轮修正设计中的应用 赵冬冬,闫鹏,田二方,李婵娟,郭洋波,张帅军,郑亚军,刘洋(河南理工大学机械与动力工程学院,河南焦作 454000) 摘要:本文利用牛顿插值法,提出了一种简单实用的凸轮工作轮廓线的修正方法。首先对要进行修正的的曲线附近的一些离散点的数据进行分析处理,确定插值多项式的阶次以满足高精度和低运算量的要求。然后利用Matlab编程计算出插值点的值,并进行误差分析,实现对凸轮的局部工作廓线进行修正。 关键词:凸轮轮廓线;牛顿插值;修正 Interpolation method Newton inthe design of CAM fixed application ZHAO Dongdong,YAN Peng,TIAN Erfang,LI Chanjuan,,GUO Yangbo,ZHANG Shuaijun,ZHENG Yajun,LIU Yang (School of Machinery and power engineering Henan polytechnic uiversity ,Jiaozuo 454000) Abstract: Based on the Newton interpolation method, we put forward a simple but practical solution to the work of the cam contour correction. Firstly,we rehandle the discrete data nearby the premodifying curve and get the order of the polynomial to meet the demand of high precision and low computation.Then The Newton interpolation and error analysis are realized by matlab programming. SO far ,we’ve resolved the problem of the cam contour correction . Key words: Newton interpolation; cam contour;correction 0.问题背景 在自动包装机或包装线中,为保证各个机械间歇运动的快捷与准确,常常采用凸轮机构来实现。包装材料、产品和包装地间歇输送、翻转或转移、工作转台的间歇转位,工作机构带停留段的往复运动,有特定位移、速度或加速度要求的动作等,均属于简谐运动范围,正确设计或选用简谐运动机构,对包装机的运行性能具有关键性的作用。凸轮机构在高速包装机械设备中应用更广泛,是一种不可缺少和替代的重要机构。 1.问题分析及模型 高速包装机械中凸轮工作廓线的设计多采用解析法,这样既保证了凸轮的运动特性,又便于对凸轮机构进行运动学和动力学分析,因此这就使得在不同工况下,凸轮设计的解析方程式往往是不相同的。这样虽然能保证凸轮的精度,但同时也对凸轮在实际使用中的修正提高了难度,因为只有建立新的解析方程式才能对凸轮进行修正,尤其是只需对凸轮局部曲线进行修正时,也要建立相应的解析方程,这样就使曲线修正的工作量大增,工作效率降低[1]。

对拉格朗日插值法与牛顿插值法的学习和比较

对拉格朗日插值法与牛顿插值法的学习和比较 摘要:根据对拉格朗日插值法和牛顿插值法的理解,本文主要介绍了拉格朗日插值法和牛顿插值法的相关内容以及它们的区别。 关键词:拉格朗日插值法;牛顿插值法 The leaning and comparison of the Lagrange interpolation and Newton interpolation Abstract: Based on the understanding of the Lagrange interpolation and Newton interpolation ,this paper mainly describes some related knowledge as well as the difference between these two methods. Keywords: Lagrange interpolation ; Newton interpolation 前言 在工程和科学研究中出现的函数是多种多样的。常常会遇到这样的情况:在某个实际问题中,虽然可以断定所考虑的函数)(x f 在区间],[b a 上存在且连续,但却难以找到它的解析表达式,只能通过实验和观测得到在有限个点上的函数值(即一张函数表)。显然,要利用这张函数表来分析函数)(x f 的性态,甚至直接求出其他一些点上的函数值可能是非常困难的。面对这些情况,总希望根据所得函数表(或结构复杂的解析表达式),构造某个简单函数)(x P 作为)(x f 的近似。这样就有了插值法,插值法是解决此类问题目前常用的方法。 如设函数)(x f y =在区间],[b a 上连续,且在1+n 个不同的点b x x x a n ≤≤,,,10 上分别取值n y y y ,,,10 。 插值的目的就是要在一个性质优良、便于计算的函数类Φ中,求一简单函数)(x P ,使 ),,1,0()(n i y x P i i == 而在其他点i x x ≠上,作为)(x f 的近似。 通常,称区间],[b a 为插值区间,称点n x x x ,,,10 为插值节点,称式i i y x P =)(为插值条件,称函数类Φ为插值函数类,称)(x P 为函数)(x f 在节点n x x x ,,,10 处的插值函数。求插值函数)(x P 的方法称为插值法。 插值函数类Φ的取法不同,所求得的插值函数)(x P 逼近)(x f 的效果就不同。它的选择取决于使用上的需要,常用的有代数多项式、三角多项式和有理函数等。当选用代数多项式作为插值函数时,相应的插值问题就称为多项式插值。本文讨论的拉格朗日插值法与牛顿插值法就是这类插值问题。 在多项式插值中,最常见、最基本的问题是:求一次数不超过n 的代数多项式 n n x a x a a x P +++= 10)( 使),,1,0()(n i y x P i i n ==,其中,n a a a ,,,10 为实数。

牛顿插值法的分析与应用

牛顿插值法的分析与应用 学生: 班级: 学号: : 指导教师: 成绩:

一.定义 )(x f 关于i x 的零阶差商 )(][i i x f x f = )(x f 关于i x ,j x 的一阶差商 i j i j j i x x x f x f x x f --= ][][],[ 依次类推,)(x f 关于i x ,1+i x ,……,k i x +的k 阶差商 i k i k i i k i i k i i i x x x x f x x f x x x f --= +-+++++] ,,[],,[],,,[111 二. 牛顿插值多项式 设给定的n+1个互异点))(,(k k x f x ,n k ,,1,0 =,j i x x ≠,j i ≠, 称满足条件 )()(k k n x f x N =,n k ,,1,0 = 的n 次多项式 )()](,,,[)](,[][)(10100100---++-+=n n n x x x x x x x f x x x x f x f x N 为Newton 插值多项式,称 ],[,)(],,,[)()()(0 10b a x x x x x x f x N x f x E n j j n n ∈-=-=∏= 为插值余项。 三.算法 步骤1:输入节点(xj ,yj ),精度ξ,计值点xx ,f0→p ,1→T ,1→i ; 步骤2:对k=1,2,……,i 依次计算k 阶均差 f[xi-k,xi-k+1,…,xi] = (f[xi-k+1,…,xi]- f[xi-k,…,xi])/( xi -xi-k ) 步骤3:(1)、若| f[x1,…,xi]- f[x0,…,xi-1]|< ξ,则p 为最终结果Ni-1(x),余项Ri-1= f[x0,…,xi](xx-xi-1)T 。 (2)、否则(xx-xi-1)*T →T ,p+ f[x0,…,xi]*T →p ,转步骤4。 步骤4:若i

牛顿形式的埃尔米特插值多项式

期末论文 课程名称:数值分析 院系名称:巢湖学院数学系所在班级:11级数本(2)班学生学号:11020170 学生姓名:张秀丽

目录 【题目】:牛顿形式的埃尔米特插值多项式 【摘要】:......................................................... 【关键词】:.......................................................... 【正文】: 一、引言 二、重节点均差与泰勒插值 三、埃尔米特插值典例 四、牛顿形式的埃尔米特插值多项式的一些应用领域 【结束语】:......................................................... 【参考文献】:..........................................................

牛顿形式的埃尔米特插值多项式 【摘要】:在了解了插值法以后,陆续的又接触和学习到多项式插值、拉格朗日插值、牛顿插值多项式等,但在有些实际问题中,仍需要其它要求,下面又给出有关牛顿的埃尔米特插值的内容。 【关键词】:重节点均差、泰勒插值、泰勒插值多项式、埃尔米特插值。 【正文】: 一、引言 插值法是一种古老的数学方法,它来自生产实践。早在一千多年前的隋唐时期制定历法时就应用了二次插值,隋朝刘绰将等距节点二次插值应用于天文计算。但插值理论都是在17世纪微积分产生以后才逐步发展的,牛顿的等距节点插值公式及均差插值公式都是当时的重要成果。近半世纪由于计算机的广泛使用和造船、航空、精密机械加工等实际问题的需要,使插值法在理论上和实践上得到进一步发展,尤其是20世纪40年代后期发展起来的样条插值,更获得广泛应用,成为计算机图形学的基础。 在插值法的提出后我们了解了多项式插值;应用各种不同的方法对给定的插值点为求得形如01()...n n P x a a x a x =+++的插值多项式我们得到了线性插值与抛物线插值;把线性插值与抛物线插值推广到一般情形,通过讨论如何构造通过n+1个节点01...n x x x <<<的n 次插值多项式()n L x ,我们定义了n 次插值基函数从而得到了拉格朗日插值多项式:()()n n k k k o L x y l x ==?。利用插值基函数很 容易得到拉格朗日插值多项式,公式结构紧凑,在理论分析中甚为重要。但当插值点增减时,计算要全部重新进行,甚为不变,为了计算方便可重新设计一种逐次生成插值多项式的方法,通过一系列的考察与讨论我们利用均差得到了牛顿均差插值多项式001001201()()[,]()[,,]()()...n P x f x f x x x x f x x x x x x x =+-+--++ 101[,...,]()...()n n f x x x x x x ---,随后还涉及了差分形式的牛顿插值公式等。 插值多项式要求在插值节点上函数值相等,有的实际问题还要求在节点上倒数值相等,甚至高阶导数值也相等,满足这种要求的插值多项式称为埃尔米特插值多项式。 二、重节点均差与泰勒插值 先给出一个关于均差的结论。 设01[,],,,...,n n f C a b x x x ?为[,]a b 上的相异节点,则01[,,...,]n f x x x 是其变量的连续函数。 如果[,]a b 上的节点互异,根据均差定义,若1[,]f C a b ?,则有 00'0000 ()()[,]()lim lim x x x x f x f x f x x f x x x -==-. 由此定义重节点均差

matlab_牛顿插值法_三次样条插值法

(){} 2 1 ()(11),5,10,20: 1252 1()1,(0,1,2,,)()2,(0,1,2,,)() ()2 35,20:1100 (i i i i n n k k k Newton f x x n x f x x i i n f x n x y i n Newton N x S x n x k y f x = -≤≤=+=-+====-+ = 题目:插值多项式和三次样条插值多项式。已知对作、计算函数在点处的值;、求插值数据点 的插值多项式和三次样条插值多项式;、对计算和相应的函数值),()() (1,2,,99)4:()max ()()max ()n k n k n k n k n k n k k k N x S x k E N y N x E S y S x ==-=- 和; 、计算,; 解释你所得到的结果。 算法组织: 本题在算法上需要解决的问题主要是:求出第二问中的Newton 插值多项式 )(x N n 和三次样条插值多项式()n S x 。如此,则第三、四问则迎刃而解。计算两 种插值多项式的算法如下: 一、求Newton 插值多项式)(x N n ,算法组织如下: Newton 插值多项式的表达式如下: )())(()()(110010--???--+???+-+=n n n x x x x x x c x x c c x N 其中每一项的系数c i 的表达式如下: 1102110) ,,,(),,,(),,,(x x x x x f x x x f x x x f c i i i i i -???-???= ???=- 根据i c 以上公式,计算的步骤如下: ?? ??? ?? ?????+??????? ???????????----) ,,,,(1) ,,,(),,,,(),(,),,(2)(,),(),(11101111011010n n n n n n n n x x x x f n x x x f x x x f n x x f x x f x f x f x f 、计算、计算、计算、计算 二、求三次样条插值多项式)(x S n ,算法组织如下:

数值分析课程实验报告-拉格朗日和牛顿插值法

《数值分析》课程实验报告 用拉格朗日和牛顿插值法求解函数值 算法名称用拉格朗日和牛顿插值法求函数值 学科专业xxxxx 作者姓名xxxx 作者学号xxxxx 作者班级xxxxxx xxx大学 二〇一五年十二月

《数值分析》课程实验报告

得到的近似值为。 拉格朗日插值模型简单,结构紧凑,是经典的插值法。但是由于拉格朗日的插值多项式和每个节点都有关,当改变节点个数时,需要重新计算。且当增大插值阶数时容易出现龙格现象。 2.牛顿插值法 在命令窗口输入: x=[ ]; y=[ ]; xt=; [yt,N]=NewtInterp(x,y,xt) z=::2; yz=subs(N,'t',z); figure; plot(z,sqrt(z),'--r',z,yz,'-b') hold on plot(x,y,'marker','+') hold on plot(xt,yt,'marker','o') h=legend('$\sqrt{x}$','牛顿','$(x_k,y_k)$','$x=$'); set(h,'Interpreter','latex') xlabel('x') ylabel('y') 得到结果及图像如下: yt = N = - *t^4 + *t^3 - *t^2 + *t +

得到√的近似值为,插值函数为 N =- *t^4 + *t^3 - *t^2 + *t + , 其计算精度是相当高的。 Lagrange插值法和Newton插值法解决实际问题中关于只提供复杂的离散数据的函数求值问题,通过将所考察的函数简单化,构造关于离散数据实际函数f(x)的近似函数P(x),从而可以计算未知点出的函数值,是插值法的基本思路。 实际上Lagrange插值法和Newton插值法是同一种方法的两种变形,其构造拟合函数的思路是相同的,而实验中两个实际问题用两种算法计算出结果是相同的。

牛顿插值法实验报告

牛顿插值法 一、实验目的:学会牛顿插值法,并应用算法于实际问题。 二、实验内容:给定函数 x x f =)(,已知: 414214.1)0.2(=f 449138.1)1.2(=f 483240.1)2.2(=f 516575.1)3.2(=f 549193.1)4.2(=f 三、实验要求: (1)用牛顿插值法求4次Newton 插值多项式在2.15处的值,以此作为函数的近似值)15.2(15.2N ≈。在MATLAB 中用内部函数ezplot 绘制出4次Newton 插值多项式的函数图形。 (2)在MATLAB 中用内部函数ezplot 可直接绘制出以上函数的图形,并与作出的4次Newton 插值多项式的图形进行比较。 四、实验过程: 1、编写主函数。打开Editor 编辑器,输入Newton 插值法主程序语句: function [y,L]=newdscg(X,Y,x) n=length(X); z=x; A=zeros(n,n);A(:,1)=Y';s=0.0; p=1.0; for j=2:n for i=j:n A(i,j)=(A(i,j-1)- A(i-1,j-1))/(X(i)-X(i-j+1)); end end C=A(n,n); for k=(n-1):-1:1 C=conv(C,poly(X(k))); d=length(C);C(d)=C(d)+A(k,k); end y(k)= polyval(C, z); L(k,:)=poly2sym(C);

%%%%%%%%%%%%%%%%%% t=[2,2.1,2.2,2.3,2.4]; fx=sqrt(t); wucha=fx-Y; 以文件名newdscg.m保存。 2、运行程序。 (1)在MATLAB命令窗口输入: >> X=[2,2.1,2.2,2.3,2.4]; Y =[1.414214,1.449138,1.483240,1.516575,1.549193]; x=2.15;[y,P]=newdscg(X,Y,x) 回车得到: y =1.4663 wucha =1.0e-06 * -0.4376 -0.3254 -0.3026 0.0888 0.3385 P = - (4803839603609061*x^4)/2305843009213693952 + (7806239355294329*x^3)/288230376151711744 - (176292469178709*x^2)/1125899906842624 + (1624739243112817*x)/2251799813685248 + 1865116246031207/4503599627370496 (2)在MATLAB命令窗口输入: >> v=[0,6,-1,3]; >> ezplot(P),axis(v),grid >> hold on >> x=0:0.1:6; >> yt=sqrt(x);plot(x,yt,':') >> legend('插值效果','原函数') >> xlabel('X') >> ylabel('Y') >>title('Newton插值与原函数比较') 回车即可得到图像1-1。

MATLAB 牛顿插值法例题与程序

题目一:多项式插值 某气象观测站在8:00(AM)开始每隔10分钟对天气作如下观测,用三次多项式插值函数(Newton)逼近如下曲线,插值节点数据如上表,并求出9点30分该地区的温度(x=10)。 二、数学原理 假设有n+1个不同的节点及函数在节点上的值(x 0,y 0),……(x n ,y n ),插值多项式有如下形式: )() )(()()()(n 10n 102010n x -x )(x -x x -x x P x x x x x x -??-+??+-++=αααα (1) 其中系数i α(i=0,1,2……n)为特定系数,可由插值样条i i n y x P =) ((i=0,1,2……n)确定。 根据均差的定义,把x 瞧成[a,b]上的一点,可得 f(x)= f(0x )+f[10x x ,](0x -x ) f[x, 0x ]= f[10x x ,]+f[x,10x x ,] (1x -x ) …… f[x, 0x ,…x 1-n ]= f[x, 0x ,…x n ]+ f[x, 0x ,…x n ](x-x n ) 综合以上式子,把后一式代入前一式,可得到: f(x)= f[0x ]+f[10x x ,](0x -x )+ f[210x x x ,,](0x -x )(1x -x )+ …+ f[x, 0x ,…x n ](0x -x )…(x-x 1-n )+ f[x, 0x ,…x n ,x ]) (x 1n +ω= N n (x)+) (x n R 其中 N n (x)= f[0x ]+f[10x x ,](0x -x )+ f[210x x x ,,](0x -x )(1x -x )+ …+ f[x, 0x ,…x n ](0x -x )…(x-x 1-n ) (2)

matlab 牛顿插值法 三次样条插值法

(){} 21 ()(11),5,10,20: 1252 1()1,(0,1,2,,)()2,(0,1,2,,)() ()2 35,20:1100 (i i i i n n k k k Newton f x x n x f x x i i n f x n x y i n Newton N x S x n x k y f x =-≤≤=+=-+====-+ = 题目:插值多项式和三次样条插值多项式。 已知对作、计算函数在点处的值;、求插值数据点 的插值多项式和三次样条插值多项式;、对计算和相应的函数值),()() (1,2,,99)4:()max ()()max ()n k n k n k n k n k n k k k N x S x k E N y N x E S y S x ==-=- 和; 、计算,; 解释你所得到的结果。 算法组织: 本题在算法上需要解决的问题主要是:求出第二问中的Newton 插值多项式 )(x N n 和三次样条插值多项式()n S x 。如此,则第三、四问则迎刃而解。计算两种插值多项式的算法如下: 一、求Newton 插值多项式)(x N n ,算法组织如下: Newton 插值多项式的表达式如下: )())(()()(110010--???--+???+-+=n n n x x x x x x c x x c c x N 其中每一项的系数c i 的表达式如下: 1102110) ,,,(),,,(),,,(x x x x x f x x x f x x x f c i i i i i -???-???= ???=- 根据i c 以上公式,计算的步骤如下: ?? ??? ?? ?????+??????? ???????????----) ,,,,(1) ,,,(),,,,(),(,),,(2)(,),(),(11101111011010n n n n n n n n x x x x f n x x x f x x x f n x x f x x f x f x f x f 、计算、计算、计算、计算 二、求三次样条插值多项式)(x S n ,算法组织如下:

计算方法-实验一牛顿插值法

计算方法课程设计报告实验一牛顿K次插值多项式 姓名:黄仁化 学号:031010151551017 班级:计算机科学与技术2004班 日期:二○○六年六月十日

一、实验目的: 1、掌握牛顿插值法的基本思路和步骤。 2、 培养编程与上机调试能力。 二、牛顿插值法基本思路与计算步骤: 给定插值点序列())(,i i x f x ,,,1,0,n i 。构造牛顿插值多项式)(u N n 。输入要计算的函数点,x 并计算)(x N n 的值,利用牛顿插值公式,当增加一个节点时,只需在后面多计算一项,而前面的计算仍有用;另一方面)(x N n 的各项系数恰好又是各阶均差,而各阶均差可用均差公式来计算。 牛顿插值法计算步骤: 1. 输入n 值及( ))(,i i x f x ,,,1,0,n i ;要计算的函数点x 。 2. 对给定的,x 由 00010101201101()()(),()(),,() ()(),,n n n N x f x x x f x x x x x x f x x x x x x x x x f x x x L L L 计算 ()n N x 的值。 3.输出()n N x 。 三:程序流程图:

四:程序清单: function[c, d]=newpoly(x, y) %牛顿插值的MA TLAB实现 %这里x为n个节点的横坐标所组成的向量,y为纵坐标所组成的向量。 %c为所求的牛顿插值多项式的系数构成的向量。 n=length(x);%取x的个数。 d=zeros(n, n); d(: , 1)=y'; f or j=2 : n for k=j : n d(k, j)=(d(k, j-1) - d(k-1, j-1)) / (x(k)-x(k-j+1)); end

拉格朗日插值和牛顿插值多项式的C程序算法毕业论文

本科生毕业论文 题目: 拉格朗日插值和牛顿插值多项式的C程序算法

原创性声明 本人郑重声明: 所提交的学位论文是本人在导师指导下, 独立进行研究取得的成果. 除文中已经注明引用的内容外, 论文中不含其他人已经发表或撰写过的研究成果, 也不包含为获得**大学或其他教育机构的学位证书而使用过的材料. 对本文的研究做出重要贡献的个人和集体, 均已在文中以明确方式标明. 本人承担本声明的相应责任. 学位论文作者签名: 日期 指导教师签名: 日期

目录 拉格朗日插值多项式的C程序算法 (1) 1引言 (1) 1.1插值问题的提出 (1) 1.2插值法 (2) 1.3插值法思想 (2) 2拉格朗日插值法 (3) 2.1拉格朗日插值法的由来 (3) 2.2n次插值基函数 (4) 2.3拉格朗日插值多项式 (4) 3牛顿插值法 (5) 3.1均差: (5) 3.2牛顿插值多项式: (6) 4C程序设计 (7) 4.1算法设计: (7) 4.2程序源码编写 (8) 5程序检测 (12) 5.1对拉格朗日插值的检测 (12) 5.2对牛顿插值的检测 (13) 总结 (15) 参考文献 (16) 致谢 (17)

摘要 本论文着重研究了用C语言编写程序计算拉格朗日插值和牛顿插值的方法。在前人已有的研究成果的基础上,首先介绍了拉格朗日插值和牛顿插值的思想和方法,通过添加可以循环计算功能和输入非法数值时的纠错功能,改进了已有文献的方法,对其进行了推广,使之更加的合理和完美,并且通过实际的例子进行了具体的验证。最后,总结了一下本论文的主要研究成果和应用前景。 关键词:拉格朗日插值,牛顿插值,C算法,精确解

牛顿插值法算法

牛顿插值法(算法) Newton Interpolation 牛顿插值算法是根据n + 1个点x 0, x 1 , (x) n (x < x 1 < (x) n )与函数値f(x ), f(x 1 ) , ... , f(x n )求出n次多 項式p(x)。再通过次多項式p(x)求出任意的点x所对应的f(x)的算法。 1.求n阶差分商f[x 0, x 1 , (x) n ]。使用递归调用。 #define N 20 typedef struct TagXYVALUE { double x; double y; } XYVALUE; XYVALUE val[N+1]; //階差分商(Divided Differences) double f(int n0, int ni) { if (n0 == ni) return val[n0].y; if (n0 + 1== ni) return (val[ni].y - val[n0].y) / (val[ni].x - val[n0].x); else return (f(n0+1, ni) - f(n0, ni-1)) / (val[ni].x - val[n0].x); }

2.牛顿插值算法的主程序,求p(x )的程序。 n double NewtonInterpolation(double x) { double t = 1.0; double ft; double p = val[0].y; //P(0) = f[0] for(int i = 1; i <= N; i++) { t = t * (x - val[i-1].x); ft = f(0, i) * t; p = p + ft; } return p; } 3.测试。用正弦波的20个采样点,还原出正弦波曲线。计算速度很慢,需要改进程序。void CNewtonInterpolationTestView::OnDraw(CDC* pDC) { for (int i = 0; i <= N; i ++) { val[i].x = i * 15 * atan(1.0) / 45.0 * 2; val[i].y = sin(val[i].x); pDC->Rectangle((int)(val[i].x*20)- 2, 150-(int)(val[i].y*50)- 2, (int)(val[i].x*20)+2, 150-(int)(val[i].y*50)+2); } for (int j = 0; j <= N*15; j += 5) { double x = j * atan(1.0) / 45.0 * 2; double y = NewtonInterpolation(x); pDC->SetPixel((int)(x*20)-2, 150-(int)(y*50)-2, 0x000000ff); } }

牛顿插值法的分析与应用

牛顿插值法的分析与应用 学生姓名: 班级: 学号: 电话: 指导教师: 成绩:

一.定义 )(x f 关于i x 的零阶差商 )(][i i x f x f = )(x f 关于i x ,j x 的一阶差商 i j i j j i x x x f x f x x f --= ][][],[ 依次类推,)(x f 关于i x ,1+i x ,……,k i x +的k 阶差商 i k i k i i k i i k i i i x x x x f x x f x x x f --= +-+++++] ,,[],,[],,,[111 二. 牛顿插值多项式 设给定的n+1个互异点))(,(k k x f x ,n k ,,1,0 =,j i x x ≠,j i ≠, 称满足条件 )()(k k n x f x N =,n k ,,1,0 = 的n 次多项式 )()](,,,[)](,[][)(10100100---++-+=n n n x x x x x x x f x x x x f x f x N 为Newton 插值多项式,称 ],[,)(],,,[)()()(0 10b a x x x x x x f x N x f x E n j j n n ∈-=-=∏= 为插值余项。 三.算法 步骤1:输入节点(xj ,yj ),精度ξ,计值点xx ,f0→p ,1→T ,1→i ; 步骤2:对k=1,2,……,i 依次计算k 阶均差 f[xi-k,xi-k+1,…,xi] = (f[xi-k+1,…,xi]- f[xi-k,…,xi])/( xi -xi-k ) 步骤3:(1)、若| f[x1,…,xi]- f[x0,…,xi-1]|< ξ,则p 为最终结果Ni-1(x),余项Ri-1= f[x0,…,xi](xx-xi-1)T 。 (2)、否则(xx-xi-1)*T →T ,p+ f[x0,…,xi]*T →p ,转步骤4。 步骤4:若i

MATLAB牛顿插值法例题与程序

MATLAB牛顿插值法例题与程序 题目一:多项式插值 某气象观测站在8:00(AM)开始每隔10分钟对天气作如下观测,用三次多项式插值函数(Newton)逼近如下曲线,插值节点数据如上表,并求出9点30分该地区的温度(x=10) 0 、数学原理 假设有n+1个不同的节点及函数在节点上的值(x 0,y 0), ...... (x n ,y n ),插值多项式有如下形式: Pn(X) 0 1(X-X°) 2(X-X°)(X X1 ) n(X-X°)( X X1) (X X n) (1) 其中系数i (i=0,1,2 .... n)为特定系数,可由插值样条 P n(xJ y i (i=0,1,2 .... n)确定。 根据均差的定义,把x瞧成[a,b]上的一点,可得 f(X)= f( X°)+f[ X。, X』(X-X o) f[X, X°]= f[ X0, X1〕+f[X, X0, X1] ( X -X1) f[X, X0,…X n-1 ]= f[X, X0,…X n]+ f[X, X。,…X n ](X-X n) 综合以上式子,把后一式代入前一式,可得到: f(x)= f[ X°]+f[ X0, X』(X-X°)+ f[ X0, X1, X2〕( X-X°)( X-X1)+ …+ f[X, X0 ,…X n ]( X-X0)…(X-X n-1)+ f[X, X° ,…X n , X ] n 1( X)= N n (X)+ R(X) 其中 N n (X)= f[ X°]+f[ X0, X1]( X-X°)+ f[ X0, X1, X2]( X-X°)( X-XJ +

…+ f[x, X0,…X n]( X-X0)…(X-X n-1) MATLAB牛顿插值法例题与程序 R n(x) = f(x)- N n (x)= f[X, X。,…X n ,X ] n 1(X) ⑶ n 1(X)=(X-X o)…(X-X n) Newton插值的系数i(i=0,1,2 ...... n)可以用差商表示。一般有 k f [ X o, X1 X k ] (k=0,1,2, ...... ,n ) ⑷ 把⑷ 代入⑴ 得到满足插值条件N(X i)f &丿(i=0,1,2,……n)的n次 Newton插值多项式 N n(x)=f( x°)+f[ X0, xj( x -X1 )+f[ X0, X1, X2K x -X1)( x -x2)+ .................. +f[ X0, X1 X n]( x -x1)( x -x2)…(X-X n-1)、 其中插值余项为: n \ ) f R n(X) f(X)-N ( X ) -^―)n 1(X ) n(n 1)! n1 介于X0, X1 X k之间。 三、程序设计 fun ctio n [y,A,C, L]=newdscg(X,Y,x,M) % y为对应x的值,A为差商表,C为多项式系数丄为多项式 % X为给定节点,Y为节点值,x为待求节点 n=length(X); m=length(x); % n 为X 的长度 for t=1:m z=x(t); A=zeros( n,n) ;A(:,1)=Y'; s=0、0; p=1、0; q1=1、0; c1=1、0; for j=2: n for i=j:n A(i,j)=(A(i,j-1)- A(i-1,j-1))/(X(i)-X(i-j+1)); end q1=abs(q1*(z-X(j-1)));c1=c1*j; end

相关文档
最新文档