牛顿插值MATLAB算法
牛顿插值MATLAB算法

MATLAB程序设计期中作业——编程实现牛顿插值成员:刘川(P091712797)签名_____汤意(P091712817)签名_____王功贺(P091712799)签名_____班级:2009信息与计算科学学院:数学与计算机科学学院日期:2012年05月02日牛顿插值的算法描述及程序实现一:问题说明在我们的实际应用中,通常需要解决这样的问题,通过一些已知的点及其对应的值,去估算另外一些点的值,这些数据之间近似服从一定的规律,于是,这就引入了插值法的思想。
插值法是利用函数f (x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f (x)的近似值。
如果这特定函数是多项式,就称它为插值多项式。
利用插值基函数很容易得到拉格朗日插值多项式,公式结构紧凑,在理论分析中甚为方便,但当插值节点增减时全部插值基函数均要随之变化,整个公式也将发生变化,这在实际计算中是很不方便的,为了克服这一缺点,提出了牛顿插值。
二:算法分析newton 插值多项式的表达式如下:010011()()()()()n n n N x c c x x c x x x x x x -=+-+⋅⋅⋅+--⋅⋅⋅-其中每一项的系数c i 的表达式如下:12011010[,,,][,,,][,,,]i i i i i f x x x f x x x c f x x x x x -⋅⋅⋅-⋅⋅⋅=⋅⋅⋅=- 即为f (x)在点01,,,i x x x ⋅⋅⋅处的i 阶差商,([]()i i f x f x =,1,2,,i n =),由差商01[,,,]i f x x x ⋅⋅⋅的性质可知: ()01001[,,,]()i i i j j k j k k j f x x x f x x x ==≠⋅⋅⋅=-∑∏ 牛顿插值的程序实现方法:第一步:计算[][][][]001012012,,,,,,,n f x f x x f x x x f x x x x 、、、、。
数值计算实验牛顿前插和后插插值

数值计算实验二姓名:方小开学号:20060810202 班级:计科0602一. 实验目的:1、差分的matlab实现;2、Newton插值的matlab实现;二. 实验原理:MATLAB在线性代数,矩阵分析,数值及优化,数理统计和随机信号分析,电路系统,系统动力学,信号与图像处理,控制理论分析和系统设计,过程控制,建模和仿真,通信系统,等有广泛的应用。
它具有功能强大,界面友好,语言自然即开放性等特点。
三.试验环境MATLAB7.0四. 试验过程及现象:1、牛顿插值公式:把下面的matlab程序在matlab中建立M-file文件并保存;function [d,v1]=newtonjz(x,y,v) %d 插商表 v是要插入x v1是插入的y值n=length(x);d=zeros(n,n);d(:,1)=y';for j=2:nfor i=j:nd(i,j)=(d(i,j-1)-d(i-1,j-1))/(x(i)-x(i-j+1));endendw=1;v1=d(1,1);for i=2:nw=w*(v-x(i-1));v1=v1+d(i,i)*w;end分别给x,y赋初值,并调用Newton插值函数得到结果如下:x=[0.40,0.55,0.65,0.80,0.90,1.05];y=[0.41075,0.57815,0.69675,0.88811,1.02652,1.25382];[z,xy]=newtonjz(x,y,0.596);z =0.4108 0 0 0 0 00.5782 1.1160 0 0 0 00.6967 1.1860 0.2800 0 0 00.8881 1.2757 0.3589 0.1973 0 01.0265 1.3841 0.4335 0.2130 0.0312 01.2538 1.5153 0.5249 0.2287 0.0314 0.0003xy =0.63192Newton前插公式:把Newton前插公式的matlab程序写在matlab中建立M-file文件并保存;function [d,v1]=newtonBefore(x,y,t)n=length(x);d=zeros(n,n);d(:,1)=y';for j=2:nfor i=1:n-j+1d(i,j)=(d(i+1,j-1)-d(i,j-1));endendw=1;m=1;v1=d(1,1);for i=2:nw=w*(t-i+2);m=m*(i-1);v1=v1+d(1,i)*(w/m);end分别给x,y赋初值,并调用Newton前插函数得到结果如下;x=[1 1.05 1.10 1.15 1.20 1.25 1.30];y=[1 1.0247 1.04881 1.07238 1.09544 1.11803 1.14017];>> [z,qc]=newtonBefore(x,y,0.2);qc =1.004992263808003、Newton后插公式:把Newton后插公式的matlab程序写在matlab中建立M-file文件并保存;function [d,v1]=newtonAfter(x,y,t)n=length(x);d=zeros(n,n);d(:,1)=y';for j=2:nfor i=j:nd(i,j)=(d(i,j-1)-d(i-1,j-1));endendw=1;m=1;v1=d(1,1);for i=2:nw=w*(t+i-2);m=m*(i-1);v1=v1+d(n,i)*(w/m);end分别给x,y赋初值,并调用Newton后插函数得到结果如下;x=[1 1.05 1.10 1.15 1.20 1.25 1.30];y=[1 1.0247 1.04881 1.07238 1.09544 1.11803 1.14017];>> [z,hc]=newtonAfter(x,y,-0.4);hc=1.13136982835200五.遇到的问题在调试的过程中也遇到了一些小小的问题,如输出的结果只显示4位有效数字,结果的精度太低了,不能满足要求,因此在matlab中把数据的格式从short型改成了long型,这样就大大的提高了结果的精确度,减少了误差。
牛顿-柯特斯公式matlab

牛顿-柯特斯公式matlab首先,让我们来了解一下数值积分的基本概念。
数值积分是通过求取一个函数在给定区间上的近似面积来计算函数的定积分。
一种常见的数值积分方法是使用插值多项式来近似函数,并在给定区间上对该多项式进行积分。
牛顿插值多项式是由一组不同的x值和对应的函数值构成的。
该多项式通过这些点来逼近函数,并可以用于在任意点上计算函数的近似值。
牛顿插值多项式的形式如下:P(x)=f[x₀]+f[x₀,x₁](x-x₀)+f[x₀,x₁,x₂](x-x₀)(x-x₁)+...其中,f[x₀]表示函数在x₀上的值,f[x₀,x₁]表示函数在x₀和x₁上的差商。
柯特斯系数用于计算牛顿插值多项式在给定区间上的积分。
公式如下:C₀=1C₁=h/2C₂=h²/6C₃=h³/12C₄=h⁴/20其中,h表示区间的宽度。
在MATLAB中,可以使用以下代码来实现牛顿-柯特斯公式:function result = newton_cotes(f, a, b, n)h=(b-a)/n;x=a:h:b;fx = f(x);coefficient = zeros(n+1, 1);coefficient(1) = 1;for i = 2:n+1coefficient(i) = coefficient(i-1) * (h^(i-1)) / factorial(i-1);endresult = sum(fx .* coefficient);end```在上面的代码中,`f`表示要积分的函数,`a`和`b`表示积分区间的起始点和结束点,`n`表示节点的数量。
首先,我们计算出节点的横坐标和对应的函数值。
然后,根据柯特斯系数的公式计算系数。
最后,将函数值与系数相乘,并求和,从而得到近似的积分值。
例如,我们要计算函数f(x) = sin(x)在区间[0, π/2]上的积分值,可以使用以下代码:a=0;b = pi/2;n=4;result = newton_cotes(f, a, b, n);disp(result);```运行该代码,将输出函数f(x)在区间[0,π/2]上的近似积分值。
牛顿插值法matlab程序例题

牛顿插值法是一种常用的数值分析方法,用于构造一个多项式函数,以便在给定的数据点上进行插值。
这个主题在数学和工程领域中有着广泛的应用,特别是在数据拟合和函数逼近方面。
牛顿插值法的核心思想是通过不断地添加新的数据点来构造一个多项式,并利用已知数据点来确定多项式的系数,从而实现对未知数据点的插值预测。
在Matlab中,实现牛顿插值法并不困难,我们可以利用已有的函数和工具来简化计算过程。
下面,我们将通过一个具体的例题来讲解如何使用Matlab编写牛顿插值法的程序,并分析其结果。
我们需要明确牛顿插值法的数学原理。
给定n个互不相同的节点\(x_0, x_1, ... , x_n\),以及在这些节点上的函数值\(f(x_0), f(x_1), ... , f(x_n)\),我们希望构造一个n次插值多项式p(x),满足p(x_i) = f(x_i),i=0,1,...,n。
牛顿插值多项式的一般形式为:\[p(x) = a_0 + a_1(x - x_0) + a_2(x - x_0)(x - x_1) + ... + a_n(x -x_0)(x - x_1)...(x - x_{n-1})\]其中,\[a_i\]表示插值多项式的系数。
通过牛顿插值法的迭代过程,可以逐步求解出这些系数,进而得到插值多项式的表达式。
接下来,我们将以一个具体的例题来演示如何在Matlab中实现牛顿插值法。
假设我们有如下的数据点和函数值:\(x = [1, 2, 3, 4]\)\(f(x) = [1, 4, 9, 16]\)我们希望利用这些数据点来构造一个插值多项式,并在给定的区间上进行插值计算。
在Matlab中,可以通过interp1函数来进行插值计算,该函数支持多种插值方法,包括牛顿插值法。
下面是一个简单的Matlab程序示例:```matlabx = [1, 2, 3, 4];y = [1, 4, 9, 16];xi = 2.5;yi = interp1(x, y, xi, 'spline');disp(['在x=',num2str(xi),'处的插值结果为:',num2str(yi)]);```在这段代码中,我们首先定义了给定的数据点x和对应的函数值y,然后利用interp1函数对x=2.5处的插值结果进行计算。
MATLAB作业拉格朗日三阶样条插值函数牛顿插值

Lagrange插值M函数syms xx0=[0,1,2];y0=[1,2,3];n=length(x0);for i=1:na=1;for j=1:nif j~=ia=expand(a*(x-x0(j)));endendb=1;for k=1:nif k~=ib=b*(x0(i)-x0(k));endendA(i)=expand(a/b);endL=0;for p=1:nL=L+y0(p)*A(p);endL>> LanguageL =x + 1三阶样条插值M函数function m=naspline(x,y,dy0,dyn,xx)n=length(x)-1;h=diff(x);lemda=h(2/n)./(h(1:n-1)+h(2:n));mu=1-lemda;g=3*(lemda.*diff(y(1:n))./h(1:n-1)+mu.*diff(y(2:n+1))./h(2:n)); g(1)=g(1)-lemda(1)*dy0;g(n-1)=g(n-1)-mu(n-1)*dyn;dy=nachase(lemda,2*ones(1:n-1),mu,g);m=[dy0;dy;dyn];if nargin>=5s=zeros(size(xx));for i=1:nif i==1,kk=find(xx<=x(2));elseif i==nkk=find(xx>x(n));elsekk=find(xx>x(i)&xx<=x(i+1));endxbar=(xx(kk)-x(i))/h(i);s(kk)=alpha0(xbar)*y(i)+alpha1(xbar)*y(i+1)+...h(i)*beta0(xbar)*m(i)+h(i)*beta1(xbar)*m(i+1);endm=s;endfunction x=nachase(a,b,c,d)n=length(a);for k=2:nb(k)=b(k)-a(k)/b(k-1)*c(k-1);d(k)=d(k)-a(k)/b(k-1)*d(k-1);endx(n)=d(n)/b(n);for k=n-1:-1:1x(k)=(d(k)-c(k)*x(k+1))/b(k);endx=x(:);function y=alpha0(x)y=2*x.^3-3*x.^2+1;function y=alpha1(x)y=-2*x.^3+3*x.^2;function y=beta0(x)y=x.^3-2*x.^2+x;function y=beta1(x)y=x.^3-x.^2;naspline([-1 0 1],[-1 0 1],0,-1)ans =1.7500-1.0000>> naspline([-1 0 1],[-1 0 1],0,-1,-1:0.25:1)ans =-1.0000 -0.9258 -0.7188 -0.4023 0 0.4492 0.8438 1.06641.0000ans =Columns 1 through 5-1.0000 -0.9258 -0.7188 -0.4023 0 Columns 6 through 90.4492 0.8438 1.0664 1.0000牛顿插值多项式function yi=Newton(x,y,xi)n=length(x);m=length(y);if n~=merror;return;end%计算均差表YY=zeros(n);Y(:,1)=y';for k=1:n-1for i=1:n-kif abs(x(i+k)-x(i))<epserror;return;endY(i,k+1)=(Y(i+1,k)-Y(i,k))/(x(i+k)-x(i));endend%计算牛顿插值公式yi=0;for i=1:nz=1;for k=1:i-1z=z*(xi-x(k));endyi=yi+Y(1,i)*z;endEnd>>format compact>> x=pi*[1/6 1/4 1/3];y=[0.5 0.7071 0.866];xi=2*pi/9;0.550.60.650.70.750.450.50.550.60.650.70.75>> yi=Newton(x,y,xi)yi =0.6434>>fplot(‘sin ’,[pi/6 pi/4 pi/3]);hold on;>>plot(x,y,’o ’xi,0.6434,’rv ’);hold off;牛顿迭代M 函数function x=nanewton(fname,dfname,x0,e,N) if nargin<5,N=500;endif nargin<4,e=1e-4;endx=x0;x0=x+2*e;k=0;while abs(x0-x)>e&k<N,k=k+1;x0=x;x=x0-feval(fname,x0)/feval(dfname,x0); disp(x)endif k==N,warning('已达迭代次数上限');end >> fun=inline('x^3-x-1');dfun=inline('3*x^2-1'); >> nanewton(fun,dfun,1.5,0.5e-3)1.34781.32521.3247ans =1.32470.550.60.650.70.750.450.50.550.60.650.70.75。
牛顿插值法matlab程序解析

牛顿插值法在MATLAB 中的实现经过n+1个不同的插值点12n+1,,x x x …,,构造牛顿插值公式1211231212n+112n =[,]()[,,]()()[,,]()()()N f x x x x f x x x x x x x f x x x x x x x x x -+--++---(x )……… 注:牛顿插值法中,用到了插值公式%我们以二次牛顿插值公式为例解析牛顿插值法的matlab 程序function[c,d ]=newpoly (x ,y )%这里x 为3个节点的横坐标组成的向量,即()123,,x x x x =,y 为纵坐标的组成向量,即()()()()123,,y f x f x f x =%c 为所得的牛顿插值多项式的系数组成的向量n=length(x);%测量向量x 的长度,即向量x 中元素i x 的个数,赋值给n,所以n=3,注:这里的“n ”仅为变量,和公式中的次数n 不一样d=zeros (n ,n ); d=zeros(3,3)%把变量d 定义为一个n 行,n 列的零矩阵,此矩阵用来储存各阶差商,格式完全等同于书中21页的表2。
1 d (:,1)=y';%此句是把向量y 的转置,即123()()()f x y f x f x ⎛⎫ ⎪= ⎪ ⎪⎝⎭,赋值给零矩阵d 的第一列%下面运用两个for 循环来构造书中21页的差商表2。
1%第一个循环(父循环),循环变量为kfor k=2:n%用来表示零矩阵d 中的第几行%第二个循环(父循环),循环变量为kfor j=k :n%用来表示零矩阵d 中的第几列d (k ,j)=(d (k ,j-1)—d(k-1,j —1))/(x (k)-x (k —j+1));%差商公式,其中d (k,j)表示零矩阵d 中的第k 行,第j 列的元素,d (k,j —1),d (k-1,j —1)等也类似,它们代表的元素随着双循环而变化,x(k —1)表示1k x -,这种计算差商的方法是根据差商表的排列位置而得来,具体解释见下面。
matlab实现牛顿差分及等距节点插值公式

题目:探究matlab中牛顿差分及等距节点插值公式的实现在计算数学问题时,插值是一种常见的数值分析方法,它常常用于估计在已知数据点之间的数值。
而牛顿差分及等距节点插值公式,则是其中的一种重要方法。
本文将从简单到复杂,由浅入深地探讨matlab 中牛顿差分及等距节点插值公式的实现方法,以便读者更深入地理解这一主题。
1. 牛顿插值方法牛顿插值是一种使用多项式进行插值的数值方法,利用了拉格朗日插值多项式的一般形式,其在实际应用中具有良好的稳定性和精确度。
在matlab中,我们可以通过编写函数来实现牛顿插值方法,并根据所给定的数据点计算出插值多项式。
2. 差分及等距节点插值公式差分及等距节点插值公式是牛顿插值的一种具体形式,它通过相邻节点的差分来递推计算插值多项式的系数,从而实现对给定数据点的插值。
在matlab中,我们可以编写代码来实现这一方法,通过对数据点的差分计算来得到插值多项式的系数,并最终得到插值结果。
3. matlab中的实现步骤在matlab中,实现牛顿差分及等距节点插值公式主要包括以下几个步骤:3.1 准备数据点:首先需要准备好给定的数据点,这些数据点将作为插值的依据。
3.2 计算差商:利用给定的数据点,我们可以计算出插值多项式的系数,即差商。
这一步骤可以通过递推计算来实现。
3.3 构建插值多项式:根据得到的插值多项式的系数,我们可以构建出完整的插值多项式。
3.4 计算插值结果:我们可以利用构建好的插值多项式来计算任意点的插值结果。
4. 个人观点和理解在我看来,牛顿差分及等距节点插值公式是一种非常实用和有效的插值方法,在实际工程和科学计算中都有着广泛的应用。
在matlab中,通过编写相应的代码,我们可以很方便地实现这一方法,并得到高质量的插值结果。
掌握牛顿插值及其在matlab中的实现方法对我们来说是非常重要的。
总结回顾本文从简到繁,由浅入深地探讨了matlab中牛顿差分及等距节点插值公式的实现方法。
牛顿插值法matlab程序

《计算方法》数值实验陈述之宇文皓月创作班级090712 学号09071235 姓名金志彬实验室3-128 设备编号D12 日期2012.06.05 实验题目编写牛顿插值方法的MATLAB主程序并验算P183.111、实验目的:通过编程实现牛顿插值方法,加深对多项式插值的理解。
应用所编程序解决实际算例。
2、实验要求:(1)认真分析课题要求,复习相关理论知识,选择适当的解决方案;(2)上机实验程序,做好上机前的准备工作;(3)调试程序,记录计算结果;(4)分析和解释计算结果;(5)依照要求书写实验陈述。
3、实验内容:(1)算法原理或计算公式式(1-2)为插值余项,由插值多项式唯一性可知,它与书本式(5.1.19)是等价的,事实上,利用均差与导数关系式可由式(1-2)推出书本式(5.1.19)。
但式(1-2)更有一般性,它对f是由离散点给出的情形或f导数不存在时均适用。
(21)输入:n x(本文取x0,x1两个函数点);3(3)源程序function f=Newton(x,y,x0,x1)syms t;if(length(x)==length(y))n=length(x);c(1:n)=0.0;elsedisp('x和y的维数不相等!');return;endf=y(1);y1=0;l =1;for(i=1:n-1)for(j=i+1:n)y1(j)=(y(j)-y(i))/(x(j)-x(i));endc(i)=y1(i+1);l=l*(t-x(i));f=f+c(i)*l;y=y1;endf=simplify(f);g=subs(f,'t',x0)g1=subs(f,'t',x1)A=zeros(n,n-1);A=[y',A];for j=2:nfor i=j:nA(i,j)=(A(i,j-1)-A(i-1,j-1))/(x(i)-x(i+1-j));endenddisp('差商表为');disp(A);(4)运行结果>> x=[0 1 2 3];>> y=[1 2 17 64];>> x0=0.5;>> x1=2.5;>> f=Newton(x,y,x0,x1)g =0.8750g1 =35.3750差商表为0 0 0 01.0000 1.0000 0 07.0000 6.0000 2.5000 03.0000 -4.0000 -5.0000 -2.5000f =1-2*t^2+3*t^34、实验小结体会:1)通过本次实验让我从实践验证了理论-------插值多项式的基本思想;2)牛顿插值法建立过程中用到了插商计算,这是有别于拉格朗日插值法的一部分,在已知点数较少的情况下用牛顿插值法较为准确;3)通过编程,加深了matlab的熟悉特别是一些函数语句,进一步体会到了函数迫近的思想。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB程序设计期中作业
——编程实现牛顿插值
成员:刘川(P091712797)签名_____
汤意(P091712817)签名_____
王功贺(P091712799)签名_____
班级:2009信息与计算科学
学院:数学与计算机科学学院
日期:2012年05月02日
牛顿插值的算法描述及程序实现
一:问题说明
在我们的实际应用中,通常需要解决这样的问题,通过一些已知的点及其对应的值,去估算另外一些点的值,这些数据之间近似服从一定的规律,于是,这就引入了插值法的思想。
插值法是利用函数f (x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f (x)的近似值。
如果这特定函数是多项式,就称它为插值多项式。
利用插值基函数很容易得到拉格朗日插值多项式,公式结构紧凑,在理论分析中甚为方便,但当插值节点增减时全部插值基函数均要随之变化,整个公式也将发生变化,这在实际计算中是很不方便的,为了克服这一缺点,提出了牛顿插值。
二:算法分析
newton 插值多项式的表达式如下:
010011()()()()()n n n N x c c x x c x x x x x x -=+-+⋅⋅⋅+--⋅⋅⋅-
其中每一项的系数c i 的表达式如下:
12011010
[,,,][,,,][,,,]i i i i i f x x x f x x x c f x x x x x -⋅⋅⋅-⋅⋅⋅=⋅⋅⋅=- 即为f (x)在点01,,,i x x x ⋅⋅⋅处的i 阶差商,([]()i i f x f x =,1,2,
,i n =)
,由差商01[,,,]i f x x x ⋅⋅⋅的性质可知: ()
01001[,,,]()i i i j j k j k k j f x x x f x x x ==≠⋅⋅⋅=-∑∏ 牛顿插值的程序实现方法:
第一步:计算[][][][]001012012,,,,,,,n f x f x x f x x x f x x x x 、、、、。
第二步:计算牛顿插值多项式中01[,,,]i f x x x ⋅⋅⋅011()()()i x x x x x x ---⋅⋅⋅-,1,2,
,i n =,得到n 个多项式。
第三步:将第二步得到的n个多项式相加,得到牛顿插值多项式。
f x的值。
第四步:利用所得到的插值多项式,估算x取其它值时()
第五步:作出所求多项式在插值结点周围的函数图像。
三:编程实现
function [p2,z]=newTon(x,y,t)
%输入参数中x,y为元素个数相等的向量,t为待估计的点,可以为数字或向量。
%输出参数中p2为所求得的牛顿插值多项式,z为利用多项式所得的t的函数值。
n=length(x);
chaS(1)=y(1);
for i=2:n
x1=x;y1=y;
x1(i+1:n)=[];
y1(i+1:n)=[];
n1=length(x1);
s1=0;
for j=1:n1
t1=1;
for k=1:n1
if k==j
continue;
else
t1=t1*(x1(j)-x1(k));
end
end
s1=s1+y1(j)/t1;
end
chaS(i)=s1;
end
b(1,:)=[zeros(1,n-1) chaS(1)];
cl=cell(1,n-1);
for i=2:n
u1=1;
for j=1:i-1
u1=conv(u1,[1 -x(j)]);
cl{i-1}=u1;
end
cl{i-1}=chaS(i)*cl{i-1};
b(i,:)=[zeros(1,n-i),cl{i-1}];
end
p2=b(1,:);
for j=2:n
p2=p2+b(j,:);
end
if length(t)==1
rm=0;
for i=1:n
rm=rm+p2(i)*t^(n-i);
end
z=rm;
else
k1=length(t);
rm=zeros(1,k1);
for j=1:k1
for i=1:n
rm(j)=rm(j)+p2(i)*t(j)^(n-i); end
z=rm;
end
end
plot(t,z,'y',x,y,'*r')
四:实例验证
clc
clear
x=[0.4 0.55 0.65 0.80 0.90 1.05];
y=[0.41075 0.57815 0.69675 0.88811 1.02652 1.25386];
t=0.4:0.1:1.05;
[u,v]=newTon(x,y,t)
执行结果:
u =
0.0085 0.0032 0.1587 0.0073 0.9971 0.0004
v =
0.4108 0.5211 0.6367 0.7586 0.8881 1.0265 1.1752
1.3356 1.5095
则所求得的牛顿多项式为:
5432
=+++++
f x x x x x x
()0.00850.00320.15870.00730.99710.0004牛顿多项式的函数图像及已知节点在坐标中的显示如下:
x 轴y 轴
五:结果分析
本程序给出了计算牛顿插值多项式的函数,通过调用函数可以求得牛顿多项式与待估算点的值,作出了节点及待求多项式的函数图像,能够比较清晰的通过图像显示出来,总体来说,计算结果是比较理想的,达到了我们的目的。
然而程序在实现过程中,依旧存在着一些不足之处,总体反应在灵活性方面,参数的输入必须为三个,否则程序会出错,有时候我们仅需要得到牛顿多项式,而不需要去估算某个具体的x 对应的函数值。
另外,本程序的函数在实现过程中会给出多项式函数的函数图像,没有设置参数对其判断是否需要。
因此,这些都是有待改进的地方。