牛顿插值法实验报告
牛顿插值法实验报告

牛顿插值法实验报告篇一:牛顿插值法实验报告牛顿插值法一、实验目的:学会牛顿插值法,并应用算法于实际问题。
二、实验内容:给定函数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。
数值计算实验牛顿前插和后插插值

数值计算实验二姓名:方小开学号: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型,这样就大大的提高了结果的精确度,减少了误差。
newton插值法实验报告

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

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. 牛顿插值法的基本原理牛顿插值法是一种构建插值多项式的方法,通过计算差商(divided differences)来逐步构建插值多项式。
该方法具有较好的计算效率和承袭性,即在添加或删除数据点时,可以基于已有计算结果进行调整,无需完全重新计算。
2. 牛顿插值法的计算步骤(1)初始化差商表,第0列初始化为ypoints。
(2)计算i阶差商,根据差商计算插值多项式。
(3)根据计算出的差商构造最终的插值多项式。
(4)计算x的估计函数值。
3. 实际应用以一组实际数据为例,运用牛顿插值法进行计算。
(1)选取一组已知数据点,计算差商。
(2)根据差商构造牛顿插值多项式。
(3)利用牛顿插值多项式估算未知点的函数值。
三、实习结果与分析1. 插值结果通过对实际数据的计算,牛顿插值法得到了较为准确的插值结果。
与实际值相比,插值值具有较高的精度。
2. 插值误差分析(1)在数据点较少的情况下,牛顿插值法具有较高的精度。
(2)在数据点较多的情况下,牛顿插值法可能会出现误差,但总体上仍具有较高的精度。
(3)插值误差与数据点的分布、差商的计算精度等因素有关。
四、实习总结与评价1. 牛顿插值法是一种有效的插值方法,具有较好的计算效率和承袭性。
2. 在实际应用中,根据数据点的分布和精度要求,选择合适的插值方法。
3. 牛顿插值法在实际应用中具有较高的精度,但在某些情况下可能会出现误差。
4. 在后续的实习中,我将进一步学习其他插值方法,如拉格朗日插值法、样条插值法等,以便在实际问题中灵活运用。
五、实习体会通过本次实习,我对牛顿插值法有了更深入的了解,掌握了其计算方法,并能够将其应用于实际问题。
在实习过程中,我认识到理论知识与实际应用相结合的重要性,以及选择合适的插值方法对于提高计算精度的重要性。
牛顿插值法

牛顿插值法一、实验目的及要求1、掌握牛顿插值法的思想和解题方法;2、编程实现牛顿插值公式求函数值;3、会进行误差分析。
二、实验原理牛顿差商形式的多项式:+--+-+=))(](,,[)](,[)()(102100100x x x x x x x f x x x x f x f x P)()](,,,[1010---+n n x x x x x x x f牛顿插值多项式的余项:)(],,,[)(10x x x x f x R n n n +=ω三、研究、解答以下问题问题:1、已知27)4(=-f ,1)0(=f ,2)1(=f ,17)2(=f 作三次牛顿插值多项式,计算)345.2(-f 的近似值,并估计其误差。
2、给出节点03.37)15.3(=-f ,24.7)00.1(=-f ,05.1)01.0(=f ,03.2)02.1(=f ,06.17)03.2(=f ,05.23)25.3(=f ,分别构造一次、二次和四次牛顿插值多项式计算)09.1(f 的近似值。
3、求函数5/7)(x e x f --=在]6,2[上的五次牛顿插值多项式,计算)156.3(f ,并估计误差。
实验答案:1. 程序:a.function [A,C,L]=newtoncz(X,Y)n=length(X);A=zeros(n,n);A(:,1)=Y';for j=2:nfor i=j:nA(i,j)=(A(i,j-1)-A(i-1,j-1))/(X(i)-X(i-j+1)); endendC=A(n,n);for k=(n-1):-1:1C=conv(C,poly(X(k)));d=length(C);C(d)=C(d)+A(k,k);endL=poly2sym(C);b.X=[-4 0 1 2]Y=[27 1 2 17][A,C,L]=newtoncz(X,Y)M=polyval(C,-2.345)结果:X =-4 0 1 2Y =27 1 2 17A =27.0000 0 0 01.0000 -6.5000 0 02.0000 1.0000 1.5000 017.0000 15.0000 7.0000 0.9167C =0.9167 4.2500 -4.1667 1.0000L =11/12*x^3+17/4*x^2-25/6*x+1M =22.3211误差:function [R]=wucha(M,x,X)n=length(X);r=1;q=1;for i=1:n;r=i*r;q=(x-X(i))*q;endR=M*abs(q)/rb.syms Mx=-2.345X=[-4,0,1,2][R]=wucha(M,x,X)结果:x = -2.3450X =-4 0 1 2R =1323077530165133/562949953421312*MR =1323077530165133/562949953421312*M2.程序:a.function [A,C,L]=newtoncz(X,Y)n=length(X);A=zeros(n,n);A(:,1)=Y';for j=2:nfor i=j:nA(i,j)=(A(i,j-1)-A(i-1,j-1))/(X(i)-X(i-j+1));endendC=A(n,n);for k=(n-1):-1:1C=conv(C,poly(X(k)));d=length(C);C(d)=C(d)+A(k,k);endL=poly2sym(C);b. 一次牛顿插值多项式X=[1.02 2.03]Y=[2.03 17.06][A,C,L]=newtoncz(X,Y)M=polyval(C,1.09)结果:X =1.02002.0300Y =2.0300 17.0600A =2.0300 017.0600 14.8812C =14.8812 -13.1488L =1503/101*x-7402123036060447/562949953421312M = 3.0717c. 二次牛顿插值多项式X=[0.01 1.02 2.03]Y=[1.05 2.03 17.06][A,C,L]=newtoncz(X,Y)M=polyval(C,1.09)结果:X =0.0100 1.0200 2.0300Y =1.05002.0300 17.0600A =1.0500 0 02.0300 0.9703 017.0600 14.8812 6.8866C =6.8866 -6.1229 1.1105L =70250/10201*x^2-215429692038271/35184372088832*x+2500714087374863/2251799813685 248M =2.6185d. 四次牛顿插值多项式X=[-1.00 0.01 1.02 2.03 3.25]Y=[7.24 1.05 2.03 17.06 23.05][A,C,L]=newtoncz(X,Y)M=polyval(C,1.09)结果:X = -1.0000 0.0100 1.0200 2.0300 3.2500Y =7.2400 1.0500 2.0300 17.0600 23.0500A =7.2400 0 0 0 01.0500 -6.1287 0 0 02.0300 0.97033.5144 0 017.0600 14.8812 6.8866 1.1129 023.0500 4.9098 -4.4715 -3.5056 -1.0867C =-1.0867 3.3516 4.5230 -6.0453 1.1100L =-611762439748959/562949953421312*x^4+1886762043973075/562949953421312*x^3+50924 65223944159/1125899906842624*x^2-425397102392759/70368744177664*x+1249745430756 363/1125899906842624M = 2.70093.程序:a.function [A,C,L]=newtoncz(X,Y)n=length(X);A=zeros(n,n);A(:,1)=Y';for j=2:nfor i=j:nA(i,j)=(A(i,j-1)-A(i-1,j-1))/(X(i)-X(i-j+1));endendC=A(n,n);for k=(n-1):-1:1C=conv(C,poly(X(k)));d=length(C);C(d)=C(d)+A(k,k);endL=poly2sym(C);b.X=2:0.8:6Y=-7*exp(-X/5)[A,C,L]=newtoncz(X,Y)M=polyval(C,3.156)结果:X = 2.0000 2.8000 3.6000 4.4000 5.2000 6.0000Y =-4.6922 -3.9985 -3.4073 -2.9035 -2.4742 -2.1084A =-4.6922 0 0 0 0 0-3.9985 0.8672 0 0 0 0-3.4073 0.7390 -0.0801 0 0 0-2.9035 0.6297 -0.0683 0.0049 0 0-2.4742 0.5366 -0.0582 0.0042 -0.0002 0-2.1084 0.4573 -0.0496 0.0036 -0.0002 0.000C =0.0000 -0.0004 0.0089 -0.1389 1.3985 -6.9991L =9721799720875/1152921504606846976*x^5-3503994098647815/9223372036854775808*x^4+1607 42008798419/18014398509481984*x^3-1251152213853501/9007199254740992*x^2+62981319043 28647/4503599627370496*x-3940156929554013/562949953421312M = -3.7237误差:function [R]=wucha(M,x,X)n=length(X);r=1;q=1;for i=1:n;r=i*r;q=(x-X(i))*q;endR=M*abs(q)/rb.syms Mx=3.156X=2:0.8:6[R]=wucha(M,x,X)结果:x = 3.1560X = 2.0000 2.8000 3.6000 4.4000 5.2000 6.0000R = 5950883395542623/3242591731706757120*M。
插值数值实验报告(3篇)

第1篇一、实验目的1. 理解并掌握插值法的基本原理和常用方法。
2. 学习使用拉格朗日插值法、牛顿插值法等数值插值方法进行函数逼近。
3. 分析不同插值方法的优缺点,并比较其精度和效率。
4. 通过实验加深对数值分析理论的理解和应用。
二、实验原理插值法是一种通过已知数据点来构造近似函数的方法。
它广泛应用于科学计算、工程设计和数据分析等领域。
常用的插值方法包括拉格朗日插值法、牛顿插值法、样条插值法等。
1. 拉格朗日插值法拉格朗日插值法是一种基于多项式的插值方法。
其基本思想是:给定一组数据点,构造一个次数不超过n的多项式,使得该多项式在这些数据点上的函数值与已知数据点的函数值相等。
2. 牛顿插值法牛顿插值法是一种基于插值多项式的差商的插值方法。
其基本思想是:给定一组数据点,构造一个次数不超过n的多项式,使得该多项式在这些数据点上的函数值与已知数据点的函数值相等,并且满足一定的差商条件。
三、实验内容1. 拉格朗日插值法(1)给定一组数据点,如:$$\begin{align}x_0 &= 0, & y_0 &= 1, \\x_1 &= 1, & y_1 &= 4, \\x_2 &= 2, & y_2 &= 9, \\x_3 &= 3, & y_3 &= 16.\end{align}$$(2)根据拉格朗日插值公式,构造插值多项式:$$P(x) = \frac{(x-x_1)(x-x_2)(x-x_3)}{(x_0-x_1)(x_0-x_2)(x_0-x_3)}y_0 + \frac{(x-x_0)(x-x_2)(x-x_3)}{(x_1-x_0)(x_1-x_2)(x_1-x_3)}y_1 + \frac{(x-x_0)(x-x_1)(x-x_3)}{(x_2-x_0)(x_2-x_1)(x_2-x_3)}y_2 + \frac{(x-x_0)(x-x_1)(x-x_2)}{(x_3-x_0)(x_3-x_1)(x_3-x_2)}y_3.$$(3)计算插值多项式在不同点的函数值,并与实际值进行比较。
(牛顿插值法)

{
float x[11],y[11][11],xx,temp,newton,t,h;
int i,j,n;
printf("牛顿插值:\n请输入要运算的值:x=");
scanf("%f",&xx);
printf("输入插值的次数n=");
scanf("%d",&n);
printf("步长h=");
newton=newton+y[i][0]*temp;
}
printf("求得的结果为:f(%f)=%9f\n",xx,newton);
}
实验结果:
内容1
内容2
实验分析与总结:
结果分析:经过计算,运行结果基本达到了预期的结果。
总结:通过本次实验,我不仅学会了如何用程序实现牛顿插值的算法,而且更深刻的理解了牛顿插值的原理及方法,算法与理论相结合,更有助于我们加深理解。
牛顿插值法牛顿插值牛顿插值法matlab牛顿插值法程序陶哲轩牛顿法牛顿迭代法插值法牛顿线性插值法
宁夏大学数学统计学院实验报告
课程名称:数值分析
实验名称:牛顿插值法
实验类型:演示性实验□ 验证性实验□ 综合性实验□ 设计性实验☑
班级:XXXXX
姓名:XXXX
学号:XXXXX
实验日期:2018/3/26
printf("输入插值的次数:n=");
scanf("%d",&n);
printf("输入%d组值:\n",n+1);
for(i=0;i<n+1;i++)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
牛顿插值法
一、实验目的:学会牛顿插值法,并应用算法于实际问题。
二、实验内容:给定函数 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。
图1-1牛顿插值效果
五、实验结果分析:
由上运行(1)的程序可得,用牛顿插值法求4次Newton 插值多项式在2.15处函数的近似值)15.2(15.2N =1.4663。
由在MATLAB 中用内部函数ezplot 直接绘制出出的4次Newton 插值图形与原函数的图形知,4次Newton 插值图形在区间[0,1]与区间[4,5]内与原函数存在一定的偏差,而在区间[1,4]内误差在10的-6次方,这个精度是非常高的。
因此,在计算区间[1,4]内的值时结果是比较准确的。