牛顿插值法试验报告

合集下载

数值分析实验报告-插值、三次样条

数值分析实验报告-插值、三次样条

实验报告:牛顿差值多项式&三次样条问题:在区间[-1,1]上分别取n=10、20用两组等距节点对龙格函数21()25f x x作多项式插值及三次样条插值,对每个n 值,分别画出插值函数及()f x 的图形。

实验目的:通过编程实现牛顿插值方法和三次样条方法,加深对多项式插值的理解。

应用所编程序解决实际算例。

实验要求:1. 认真分析问题,深刻理解相关理论知识并能熟练应用;2. 编写相关程序并进行实验;3. 调试程序,得到最终结果;4. 分析解释实验结果;5. 按照要求完成实验报告。

实验原理:详见《数值分析 第5版》第二章相关内容。

实验内容:(1)牛顿插值多项式1.1 当n=10时:在Matlab 下编写代码完成计算和画图。

结果如下:代码:clear allclcx1=-1:0.2:1;y1=1./(1+25.*x1.^2);n=length(x1);f=y1(:);for j=2:nfor i=n:-1:jf(i)=(f(i)-f(i-1))/(x1(i)-x1(i-j+1));endendsyms F x p ;F(1)=1;p(1)=y1(1);for i=2:nF(i)=F(i-1)*(x-x1(i-1));p(i)=f(i)*F(i);endsyms PP=sum(p);P10=vpa(expand(P),5);x0=-1:0.001:1;y0=subs(P,x,x0);y2=subs(1/(1+25*x^2),x,x0);plot(x0,y0,x0,y2)grid onxlabel('x')ylabel('y')P10即我们所求的牛顿插值多项式,其结果为:P10(x)=-220.94*x^10+494.91*x^8-9.5065e-14*x^7-381.43*x^6-8.504e-14*x^5+123.36*x^4+2.0202e-1 4*x^3-16.855*x^2-6.6594e-16*x+1.0并且这里也能得到该牛顿插值多项式的在[-1,1]上的图形,并和原函数进行对比(见Fig.1)。

牛顿插值法实验报告

牛顿插值法实验报告

牛顿插值法实验报告篇一:牛顿插值法实验报告牛顿插值法一、实验目的:学会牛顿插值法,并应用算法于实际问题。

二、实验内容:给定函数f?x,已知:f?? f?f??三、实验要求:(1)用牛顿插值法求4次Newton 插值多项式在处的值,以此作为函数的近似值?N。

在MATLAB中用内部函数ezplot绘制出4次Newton插值多项式的函数图形。

(2)在MATLAB中用内部函数ezplot可直接绘制出以上函数的图形,并与作出的4次Newton插值多项式的图形进行比较。

四、实验过程:1、编写主函数。

打开Editor编辑器,输入Newton插值法主程序语句:function [y,L]=newdscgn=length; z=x; A=zeros;A=Y’;s=; p=;for j=2:nfor i=j:nA=- A)/-X);endendC=A;for k=:-1:1C=conv));d=length;C=C+A;endy= polyval;L=poly2sym;%%%%%%%%%%%%%%%%%%t=[2,,,,];fx=sqrt;wucha=fx-Y;以文件名保存。

2、运行程序。

(1)在MATLAB命令窗口输入:>> X=[2,,,,]; Y=[,,,,];x=;[y,P]=newdscg回车得到:y =wucha = *-P = - /2305843009213693952 +/288230376151711744 -/1125899906842624 +/2251799813685248 + 1865116246031207/4503599627370496(2)在MATLAB命令窗口输入:>> v=[0,6,-1,3];>> ezplot,axis,grid>> hold on>> x=0::6;>> yt=sqrt;plot>> legend>> xlabel>> ylabel>>title回车即可得到图像1-1。

插值法实验报告

插值法实验报告

插值法实验报告插值法实验报告一、引言插值法是一种常用的数值分析方法,用于通过已知数据点的函数值来估计在其他位置的函数值。

它在科学计算、图像处理、工程设计等领域有广泛的应用。

本实验旨在通过实际操作,深入理解插值法的原理和应用。

二、实验目的1. 掌握拉格朗日插值法和牛顿插值法的原理和计算方法;2. 通过实验比较不同插值方法的精度和效率;3. 分析插值法在实际问题中的应用。

三、实验步骤1. 收集实验数据:在实验室内设置几个测量点,记录它们的坐标和对应的函数值;2. 使用拉格朗日插值法计算其他位置的函数值:根据已知数据点,利用拉格朗日插值公式计算其他位置的函数值;3. 使用牛顿插值法计算其他位置的函数值:根据已知数据点,利用牛顿插值公式计算其他位置的函数值;4. 比较不同插值方法的精度和效率:通过计算误差和运行时间,比较拉格朗日插值法和牛顿插值法的性能差异;5. 分析插值法在实际问题中的应用:结合实验结果,探讨插值法在实际问题中的优势和局限性。

四、实验结果与分析1. 拉格朗日插值法的计算结果:根据已知数据点,利用拉格朗日插值公式计算其他位置的函数值;2. 牛顿插值法的计算结果:根据已知数据点,利用牛顿插值公式计算其他位置的函数值;3. 误差分析:比较插值结果与真实函数值之间的误差,分析误差的来源和影响因素;4. 运行时间分析:比较不同插值方法的运行时间,分析其效率和适用场景。

五、实验结论1. 拉格朗日插值法和牛顿插值法都是常用的插值方法,它们在不同场景下有各自的优势;2. 插值法在实际问题中的应用需要考虑数据的分布、函数的性质和计算效率等因素;3. 本实验结果表明,拉格朗日插值法和牛顿插值法在精度和效率上存在差异,具体选择哪种方法应根据实际需求进行权衡。

六、实验总结通过本次实验,我们深入了解了插值法的原理和应用。

实验结果表明,插值法在科学计算和工程设计中具有重要的作用。

在实际应用中,我们需要根据具体问题的要求和数据的特点选择合适的插值方法,以达到更好的效果。

newton插值法实验报告

newton插值法实验报告

竭诚为您提供优质文档/双击可除newton插值法实验报告篇一:牛顿插值法matlab程序《计算方法》数值实验报告篇二:数值分析实验报告(插值法)武汉理工大学学生实验报告书实验课程名称数值分析开课学院计算机科学与技术学院指导老师姓名学生姓名学生专业班级20XX—20XX学年第一学期实验课程名称:数值分析篇三:c++实现牛顿插值法实验报告数值实验用newton商差公式进行插值姓名:陈辉学号:13349006院系:数据科学与计算机学院专业:计算机科学与技术班级:计科一班日期:20XX-10-11指导老师:纪庆革目录一、二、三、四、五、六、七、八、实验目的................................................. .........................................3实验题目................................................. .........................................3实验原理与基础理论................................................. .......................3实验内容................................................. .........................................6实验结果................................................. .......................................10心得体会................................................. .......................................14参考资料................................................. .......................................14附录(源代码)............................................... (14)一、实验目的编写一个程序,用牛顿差商公式进行插值。

不等距节点下的牛顿插值公式以及拉格朗日插值公式实验课报告

不等距节点下的牛顿插值公式以及拉格朗日插值公式实验课报告

数值分析实验报告三插值法(2学时)一实验目的1.掌握不等距节点下的牛顿插值公式以及拉格朗日插值公式。

二实验内容1.已知函数表:用牛顿插值公式求)(y的近似值。

1022. 已知函数表:用拉格朗日插值公式计算01x以及所对应的近似值。

=y.54.1=三实验步骤(算法)与结果1.不等距节点下的牛顿插值公式Ⅰ.按差商表计算n阶差商12111[,,,][,,,][,,,]i i i n i i i n i i i n i n if x x x f x x x f x x x x x +++++-+++-=- 其中Ⅱ.按以下公式,带入x 值00010120101101()()()[,]()()[,,]()()()[,,]n n f x f x x x f x x x x x x x f x x x x x x x x x f x x -=+-+--++---Ⅲ.得出结果()f x程序代码:#include"stdio.h"#include"math.h" int main() {int a,i,j;printf("输入x 系数的个数:"); scanf("%d",&a); float d,e=0,c; float x[a];float y[a-1][a];printf("输入x 的系数:"); for(i=0;i<a;i++) {scanf("%f",&x[i]); }printf("输入y 的系数:"); for(i=0;i<a;i++) {scanf("%f",&y[0][i]); }for(i=0;i<a;i++) {printf("%1.6f ",x[i]); }printf("\n");for(i=0;i<a;i++){printf("%1.6f ",y[0][i]);}for(j=1;j<a;j++){for(i=0;i<a-j;i++){y[j][i]=(y[j-1][i+1]-y[j-1][i])/(x[j+i]-x[i]);}}printf("\n");for(j=1;j<a;j++){for(i=0;i<a-j;i++){printf("%1.6f ",y[j][i]);}printf("\n");}printf("输入x的值:");scanf("%f",&c);for(j=1;j<a;j++){d=1;for(i=0;i<j;i++){d=d*(c-x[i]);}e=e+d*y[j][0];}e=e+y[0][0];printf("%1.6f",e);return 0;}运算结果:15.7936292.拉格朗日插值公式120010200110110111201()()()()()()()()()()()()()()()()()()()()()()()()()n n i i n i i i i i i i n n n n n n n x x x x x x f x f x x x x x x x x x x x x x x x f x x x x x x x x x x x x x x x f x x x x x x x R x -+-+-----=---+----+-------+---+0101()()()()[,,,,]n n n R x x x x x x x f x x x x =--- 其中余式程序代码:#include"stdio.h" #include"math.h" int main() {int a,i,j;printf("输入x系数(y的系数)的个数:");scanf("%d",&a);float e,k=1,p=0;float x[a];float y[a];printf("输入x的系数(y的系数):");for(i=0;i<a;i++){scanf("%f",&x[i]);}printf("输入y的系数(x的系数):");for(i=0;i<a;i++){scanf("%f",&y[i]);}printf("输入你要求的值:");scanf("%f",&e);for(j=0;j<a;j++){k=1;for(i=0;i<a;i++){if(i==j){k=k;}else{k=k*((e-x[i])/(x[j]-x[i]));}}k=k*y[j];p=p+k;}printf("%f",p);return 0;}运算结果:x=1.4时,y=3.729525y=5.01时,x=1.246488四实验收获与教师评语实验收获:对于一系列的x值和对应的y值,有时其数学解析式是未知的,此时可以应用插值法进行插值计算,这是一个重要的数学工具。

FORTRAN实验报告——牛顿插值

FORTRAN实验报告——牛顿插值
(N) DO I=N,2,-1 NBDF=NBDF*(S+I-1)/I+DIAG(N).R(I-1) ENDDO NBDF=Y(N)+S*NBDF END FUNCTION NBDF END MODULE INTERPOLATION 测试程序: PROGRAM TEST_1 !TEST For Newton Interpolatoin Formula with Divided Difference USE INTERPOLATION REAL*8::XSTAR=0.23D0,YSTAR CHARACTER(20)::FNAME='DATA01.TXT' CALL INIT1(FNAME) !初始化结点 PRINT '(2A13)','X','Y' DO I=0,N PRINT '(2F13.7)',X(I),Y(I) END DO PRINT* YSTAR=NIFDD(XSTAR) !插值函数 PRINT 100,'XSTAR','YSTAR','ERROR',XSTAR,YSTAR,YSTAR-(EXP(XSTAR)-EXP(-XSTAR))/2 CALL DESTROY() 100 FORMAT(3A13/,3F13.7)
IV / 4
s(s+1) 2! s(s −1) 2!
∆2 f0 + ⋯ +
s s −1 …(s −n+1) n!
∆n f0
∇2 fN + ⋯ +
s s+1 …(s+n −1) n!
∇n fN
ERROR 0.0000009 ERROR 0.0000023

c++实现牛顿插值法实验报告概论

c++实现牛顿插值法实验报告概论

数值实验用Newton商差公式进行插值姓名:陈辉学号:13349006院系:数据科学与计算机学院专业:计算机科学与技术班级:计科一班日期:2015-10-11指导老师:纪庆革目录一、实验目的 (3)二、实验题目 (3)三、实验原理与基础理论 (3)四、实验内容 (6)五、实验结果 (10)六、心得体会 (14)七、参考资料 (14)八、附录(源代码) (14)一、实验目的编写一个程序,用牛顿差商公式进行插值。

二、实验题目编写一个程序,用牛顿差商公式进行插值。

三、实验原理与基础理论牛顿插值公式为:N n(x)=f(x0)+f[x0,x1](x−x0)+⋯+f[x0,…,x n](x−x0)…(x−x n−1)其中,f[x0,x1]=f(x1)−f(x0)x1−x0f[x0,…,x k]=f[x1,…x k]−f[x0,…,x k]k0我们将从键盘读入n阶牛顿插值的n+1个节点(x i,f i),i=0,1,…,n,以此得出牛顿插值多项式。

有了节点,我们只需要求f[x0,…,x k]即可。

我们记f[x m,x m−1,…,x m−k]为t[m][k],则t[m][k]在差商表表的位置为(m, k):由f[x0,…,x k]的公式可得t[m][k] = (t[m][k-1] - t[m-1][k-1]) / (x[i] – x[i-j]),直观上来看,表中的某格的差商值可由其左边和左上边的值求得,从而牛顿插值多项式变为N(x) = t[0][0] + t[1][1](x-x[0]) + … + t[n][n](x-x[0])…(x-x[n-1])做到这一步,我们已经可以通过上面的数据计算对于给出的x,f(x)的近似值。

为了更规范地表示,下面我把N(x)变换成标准的降幂多项式N(x) = a[n]x^n + a[n-1]x^(n-1) + … + a[2]x^2 + a[1]x + a[0]。

为了便于运算,不妨先把x-x[i]中的减号换成加号(在最后令y[i]=-x[i],在令x[i]=y[i],仍可以得到原本的结果),那么有:(x+x[0])(x+x[1])…(x+x[m−1])m−1=x m+x m−1∑x[i]i=0+x m−2∑x[i[0]]x[i[1]]+⋯0≤i[0]≠i[1]≤m−1+x0∑x[i[0]]x[i[1]]…x[i[m−1]]0≤i[0]≠⋯≠i[m−1]≤m−1为了便于表示,把∑x[i[0]]x[i[1]]…x[i[k−1]]0≤i[0]≠⋯≠i[k]≤m−1记为∑x[k]m那么(x+x[0])(x+x[1])…(x+x[m−1])=x m+x m−1∑x[1]+⋯+x0∑x[m]mm只要把N(x)中的每一项展开然后x次数相同的系数相加就可以得到数组a。

牛顿插值上机报告

牛顿插值上机报告

x
1.1 1.3 1.6 1.9 2.2 2、给出 f(x)=lnx 的数值表 x 0.4 0.5 lnx -0.916291 -0.693147
f(x)
0.7651977 0.6200860 0.4554022 0.2818186 0.1103623 0.6 -0.510826 0.7 -0.356675 0.8 -0.223144
1
一 实验目的 1.了解并掌握 Newton 插值多项式,根据给定的数值表 ,构造 1,2,3,4 次 Newton 插值多项式, 列出算法并求解。 2.并与 Lagrange 插值多项式比较精度。 实验内容 1、给定数据表, 构造 1,2,3,4 次 Newton 插值多项式, 求 f(1.5)=? 并与 Lagrange 插值多项 式比较精度。
一阶插商 -0.7255585 -0.548946 -0.578612 -0.571521
二阶插商
三阶插商
四阶插商
0.353225 -0.0494433333 -0.5033354166 0.01181833333 0.06806851848 0.5194581228
P n x f x0 f x0 , x1 x x0 f x0 , x1 , x2 x x0 x x1
3
f x0 , x1,
, xn x x0
Hale Waihona Puke x xn1 Rn x f x P n x f x0 , x1 , x2 ,
, xn wn1 x , 其中wn+1 x x x0 x x1
end k k 1; end for k ans 1: 1:1 end resulty resulty y k inputx x k * resulty;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

.
牛顿插值法一、实验目的:学会牛顿插值法,并应用算法于实际问题。

x?x)f(二、实验内容:给定函数,已知:
4832401.2)?.?1449138f(2.f.f(20)?1.414214(2.1)
549193.)?1f(2.4516575(f2.3)?1.
三、实验要求:以此作为函数2.15插值多项式在处的值,用牛顿插值法求4
次Newton( 1)2.15?N(2.15)。

在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);
0 / 3
.
%%%%%%%%%%%%%%%%%%
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。

1 / 3
.
牛顿插值效果图1-1五、实验结果分析:2.15Newton插值多项式在用牛顿插值法求4次的程序可得,由上运行(1)2.15 N(2.15)=1.4663。

处函数的近似值由在MATLAB中用内部函数ezplot直接绘制出出的4次Newton插值图形与原函数的图形知,4次Newton插值图形在区间[0,1]与区间[4,5]内与原函数存在一定的偏差,而在区间[1,4]内误差在10的-6次方,这个精度是非常高的。

因此,在计算区间[1,4]内的值时结果是比较准确的。

2 / 3。

相关文档
最新文档