龙格现象实验报告
- 格式:doc
- 大小:50.00 KB
- 文档页数:5
1 / 21数值分析实验二:插值法1 多项式插值的震荡现象1.1 问题描述考虑一个固定的区间上用插值逼近一个函数。
显然拉格朗日插值中使用的节点越多,插值多项式的次数就越高。
我们自然关心插值多项式的次数增加时, 是否也更加靠近被逼近的函数。
龙格(Runge )给出一个例子是极著名并富有启发性的。
设区间[-1,1]上函数21()125f x x=+ (1)考虑区间[-1,1]的一个等距划分,分点为n i nix i ,,2,1,0,21 =+-= 则拉格朗日插值多项式为201()()125nn ii iL x l x x ==+∑(2)其中的(),0,1,2,,i l x i n =是n 次拉格朗日插值基函数。
实验要求:(1) 选择不断增大的分点数目n=2, 3 …. ,画出原函数f(x)及插值多项式函数()n L x 在[-1,1]上的图像,比较并分析实验结果。
(2) 选择其他的函数,例如定义在区间[-5,5]上的函数x x g xxx h arctan )(,1)(4=+=重复上述的实验看其结果如何。
(3) 区间[a,b]上切比雪夫点的定义为 (21)cos ,1,2,,1222(1)k b a b ak x k n n π⎛⎫+--=+=+ ⎪+⎝⎭(3)以121,,n x x x +为插值节点构造上述各函数的拉格朗日插值多项式,比较其结果,试分析2 / 21原因。
1.2 算法设计使用Matlab 函数进行实验, 在理解了插值法的基础上,根据拉格朗日插值多项式编写Matlab 脚本,其中把拉格朗日插值部分单独编写为f_lagrange.m 函数,方便调用。
1.3 实验结果1.3.1 f(x)在[-1,1]上的拉格朗日插值函数依次取n=2、3、4、5、6、7、10、15、20,画出原函数和拉格朗日插值函数的图像,如图1所示。
Matlab 脚本文件为Experiment2_1_1fx.m 。
可以看出,当n 较小时,拉格朗日多项式插值的函数图像随着次数n 的增加而更加接近于f(x),即插值效果越来越好。
数值分析上机实验理学院11级统计01班41108030125鲁庆实验报告一一.实验名称误差与误差估计二.实验目的掌握数值运算的误差估计方法三.数学原理 1.绝对误差(*)e x设某一量的准确值为x ,近似值为x*,则x*与x 之差叫做近似值x*的绝对误差(简称误差),记为*(*)*e e x x x ==- 2.绝对误差限适当小的正数,使|(*)||*|*e x x x ε=-≤则称*ε为近似值 x * 的绝对误差限。
(有时用*x x ε*=±表示近似值x *的精度或准确值的所在范围。
3.相对误差(*)r e x绝对误差与准确值之比*(*)*(*),0r r e x x xe e x x x x-===≠称为x *的相对 误差。
4.相对误差限(*)r x ε若指定一个适当小的正数 (*)r x ε,使|(*)||(*)|(*)||r r e x e x x x ε=≤则称(*)r x ε为近似值 x *的相对误差限。
5.有效数字若近似值x*的绝对误差限是某一位的半个单位,该位到x*的第一位非零数字一共有n 位,则称近似值x*有n 位有效数字,或说x*精确到该位。
6.绝对误差的运算:)()()(2121x x x x εεε+=± )()()(122121x x x x x x εεε+≈22122121+=x x x x x x x )()()(εεε (f(x))()(x)f x εε'≈四.实验内容1. 计算I n=e 1-⎰10nxe x 2dx (n=0,1,...)并估计误差。
解: >> I0 = exp(-1)*quad('(x.^0).*exp(x.^2)',0,1,10^(-10));>> vpa(I0,10) ans =.5380795069>> I1= exp(-1)*quad('(x.^1).*exp(x.^2)',0,1,10^(-10)); >> vpa(I1,10) ans =.3160602794>> I2 = exp(-1)*quad('(x.^2).*exp(x.^2)',0,1,10^(-10)); >> vpa(I2,10) ans =.2309602465>> I3 = exp(-1)*quad('(x.^3).*exp(x.^2)',0,1,10^(-10)); >> vpa(I3,10) ans =.1839397206>> I4 = exp(-1)*quad('(x.^4).*exp(x.^2)',0,1,10^(-10)); >> vpa(I4,10) ans =.1535596302>> I5 = exp(-1)*quad('(x.^5).*exp(x.^2)',0,1,10^(-10)); >> vpa(I5,10) ans =.1321205588>> I6 = exp(-1)*quad('(x.^6).*exp(x.^2)',0,1,10^(-10)); >> vpa(I6,10) ans =.1161009245>> I7 = exp(-1)*quad('(x.^7).*exp(x.^2)',0,1,10^(-10)); >> vpa(I7,10) ans =.1036383235>> I8 = exp(-1)*quad('(x.^8).*exp(x.^2)',0,1,10^(-10)); >> vpa(I8,10) ans =.9364676413e-1>> I9 = exp(-1)*quad('(x.^9).*exp(x.^2)',0,1,10^(-10)); >> vpa(I9,10) ans =.8544670595e-1 2.计算x255的值。
三、四阶Runge-Kutta 法求解常微分方程一、龙格库塔法的思想根据第九章的知识可知道,Euler 方法的局部截断误差是2()O h ,而当用Euler 方法估计出1,()(1)n n n n y y hf x y +=+ 再用梯形公式111[(,)(,)](2)2n n n n n n h y y f x y f x y +++=++进行校正,即采用改进Euler 方法得出数值解的截断误差为3()O h 。
由Lagrange 微分中值定理'11()()()()()(,())(3)n n n n n y x y x y x x y x hf y ξξξ++=+-=+ 记*(,())k hf y ξξ=,得到*1()()(4)n n y x y x k +=+这样只要给出一种计算*k 的算法,就能得到相应的计算公式。
用这种观点的来分析Euler 方法和改进Euler 方法,Euler 方法的迭代公式可改写为111(,)n n n n y y k k hf x y +=+=改进Euler 方法的预报-校正公式可改写为 1121211()2(,),(,)n n n n n n y y k k k hf x y k hf x h y k +=++==++ Euler 方法实际上是用一个点处的值1k 近似*k ,而改进Euler 方法是用两个点处的值1k ,和2k ,做算术平均值近似*k 自然改进Euler 方法要优于Euler 方法。
因此,可以想到假如在1[,]n n x x +内多预报几个点值i k ,并用他们的加权平均值作为*k 的近似值,则有可能构造出具有更高精度的计算公式,这就是Runge-Kutta 法的基本思想。
二、四阶龙格库塔法由Runge-Kutta 的基本思想,构造四阶Runge-Kutta 法是利用1234,,k k k k 和的加权平均值来近似*k ,因此令1112233441211132211243312213(,)(,)(5)(,)(,)n n n n n n n n n n y y w K w K w K w K K hf x y K hf x h y K K hf x h y K K K hf x h y K K K αβαβγαβγη+=++++⎧⎪=⎪⎪=++⎨⎪=+++⎪⎪=++++⎩使得511()()n n y x y O h ++-=即其总体截断误差为4()O h 。
南昌航空大学实验报告2012年4月22日课程程名称:计算方法 实验名称:Lagrange 和Newton 插值多项式 班级: ____ 姓名:______一、实验目的理解插值的基本原理, 掌握Lagrange 、Newton 插值算法的定义与异同, 观察Lagrange 插值的龙格现象。
二、实验原理1)插值原理已知数据:0011(,),(,),,(,)n n x y x y x y , 根据插值基本定理:n +1个互异的数据点, 可以唯一确定一个满足插值条件的n 次插值多项式。
最简单的两种插值多项式是Lagrange 插值多项式与Newton 插值多项式。
2)Lagrange 插值多项式公式为:()()nn i ii L x l x y ==∑, 其中0()()()nj i j i j j ix x l x x x =≠-=-∏;牛顿插值多项式是拉格朗日插值多项式的另一种等价表示方式, 与Lagrange 插值多项式相比, 当节点数增加时,能充分利用已有的计算数据, 且总计算量小的特点。
它的公式为:00100120101011()()[,]()[,,]()()[,,,]()()()n n n N x f x f x x x x f x x x x x x x f x x x x x x x x x -=+-+--+++--- 其中01[,]f x x 、012[,,]f x x x 、 、01[,,,]n f x x x 依次为一阶、二阶、 、n 阶差商。
(3)相关说明:poly 函数 求多项式的系数(由已知根求多项式的系数) 调用格式:Y = poly (V) X1=[1,2]; l1=poly(X1), l1=[ 1 -3 2]poly2sym 函数 将多项式系数向量转为解析式形式 调用格式:poly2sym (C) poly2sym(l1) ans =x^2 - 3*x + 2polyval 函数 给定多项式系数向量,求某点的值 调用格式:Y = polyval(P ,X) polyval(l1,2) ans = 0conv 函数 求多项式相乘后的多项式系数。
山东师范大学数学科学学院实验报告x 0.1 0.5 1 1.5 2 2.5 3y 0.95 0.84 0.86 1.06 1.5 0.72 1.9y' 1 1.5 2 2.5 3 3.5 4求质点在时刻1.8时的速度,并画出插值多项式的图像。
1)运用Hermite插值法画出图像,如图4-1,并求质点在时刻1.8时的速度。
>>clear>>clc>>X=[0.1 0.5 1 1.5 2 2.5 3;0.95 0.84 0.86 1.06 1.5 0.72 1.9;1 1.5 2 2.5 3 3.5 4];>> x=0.1:0.01:3;>> H=Hermite1(X,x);>> plot(x,H)>> hold on>> plot(X(1,:),X(2,:),'r*')>> H1_8=Hermite(X,1.8);>> plot(1.8,H1_8,'go')>> legend('插值图像','原始点','目标点');图4-1二、验证高次插值的Runge现象问题分析和算法设计(一)Language插值代码function [Ln] =Lagrange(X,x)%请输入2*n+1矩阵X,X中第一行每个元素都是插值节点,X中第二行每个元素都是插值节点对应的函数值;%第二章P24例一拉格朗日插值n=size(X,2);d=0;for m=1:1:nif x==X(1,m);d=m;breakendend运行结果和总结 运行结果 例:给定函数55,11)(2≤≤-+=x xx f ; (1) 验证表2-10的误差结果(高次插值的Runge 现象);(2) 以0.1为步长分别进行Language 插值、分段线性插值、分段三次Hermite插值,画出三种插值函数以及f(x)的图像,比较三种插值结果。
汕 头 大 学 实 验 报 告学院: 工学院 系: 计算机系 专业: 计算机科学与技术 年级: 2010 姓名: 林金正 学号: 2010101032 完成实验时间: 5月24日一.实验名称:拉格朗日插值的龙格现象二.实验目的:通过matlab 处理,观察拉格朗日插值的龙格现象.三.实验内容:(1)学习matlab 的使用(2)以实验的方式,理解高阶插值的病态性,观察拉格朗日插值的龙格现象。
四.实验时间、地点,设备:实验时间:5月24日实验地点: 宿舍 实验设备:笔记本电脑五,实验任务在区间[-5,5]上取节点数n=11,等距离h=1的节点为插值点,对于函数25()1f x x =+进行拉格朗日插值,把f(x)与插值多项式的曲线花在同一张图上。
六.实验过程拉格朗日插值函数定义:对某个多项式函数,已知有给定的k + 1个取值点:其中对应著自变数的位置,而对应著函数在这个位置的取值。
假设任意两个不同的xj 都互不相同,那麼应用拉格朗日插值公式所得到的拉格朗日插值多项式为:其中每个为拉格朗日基本多项式(或称插值基函数),其表达式为:[3] 拉格朗日基本多项式的特点是在 上取值为1,在其它的点 上取值为0。
1.使用matlab,新建function.m 文件,使用老师所给代码,构建拉格朗日函数.%lagrange.mfunction y=lagrange(x0,y0,x)n=length(x0);m=length(x);for i=1:mz=x(i);s=0;for k=1:nL=1;for j=1:nif j~=kL=L*(z-x0(j))/(x0(k)-x0(j));endends=s+L*y0(k);endy(i)=s;endy;程序解释:(x0,y0):已知点坐标x:所求点的横坐标,y:由(x0,y0)所产生的插值函数,以x 为参数,所的到的值2.再一次新建function.m 文件.构建自定义函数: 25()1f x x=+ %f.mfunction y = f(x)y = 5/(1+x*x);end3.在脚本窗口中输入:>>a = [-10:0.2:10]>>for I = 1:length(a)b(i) = f(a(i))end ;%画出原函数(a,b)>>>>for i = 1:length( c)d(i) = f(c(i))end ;%获取插值坐标(c,d)>>e = [-5:0.2:5]>>z = largange(c,d,e);%获取插值坐标函数(e,z) >>plot(a,b,’r-‘,e,z);%画图过程及插图七:实验所得:这次实验是我初步学会Matlab的使用,学会新建function函数,在matlab命令窗口敲入一些基础的命令,同时更深刻地了解了拉格朗日插值的龙格现象。
实验报告:牛顿差值多项式&三次样条问题:在区间[-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-14*x^3-16.855*x^2-6.6594e-16*x+1.0并且这里也能得到该牛顿插值多项式的在[-1,1]上的图形,并和原函数进行对比(见Fig.1)。
数值分析实验报告数值分析实验报告姓名:张献鹏学号:173511038专业:冶金工程班级:重冶二班目录1拉格朗日插值 (1)11.1问题背景.....................................................................................................11.2数学模型.....................................................................................................1.3计算方法1.....................................................................................................21.4数值分析.....................................................................................................2复化辛普森求积公式 (2)2.1问题背景2.....................................................................................................32.2数学模型.....................................................................................................32.3计算方法.....................................................................................................2.4数值分析5.....................................................................................................3矩阵的 LU 分解 (6)63.1问题背景.....................................................................................................3.2数学模型6.....................................................................................................3.2.1理论基础 (6)3.2.2实例 (7)73.3计算方法.....................................................................................................3.4小组元的误差 (8)4二分法求方程的根 (9)94.1问题背景.....................................................................................................94.2数学模型.....................................................................................................4.3计算方法9.....................................................................................................4.4二分法的收敛性 (11)5雅可比迭代求解方程组 (11)115.1问题背景...................................................................................................5.2数学模型11...................................................................................................5.2.1理论基础 (11)5.2.2实例 (12)5.3计算方法 (12)5.4收敛性分析 (13)6Romberg 求积法 (14)6.1问题背景 (14)6.2数学模型: (14)6.2.1理论基础 (14)6.2.2实例 (14)6.3计算方法 (15)6.4误差分析 (16)7幂法 (16)7.1问题背景 (16)7.2数学模型 (16)7.2.1理论基础 (16)7.2.2实例 (17)7.3计算方法 (17)7.4误差分析 (18)8改进欧拉法 (18)8.1问题背景 (18)8.2数学模型 (19)8.2.1理论基础 (19)8.2.2实例 (19)8.3数学模型 (19)8.4误差分析 (21)1拉格朗日插值1.1问题背景1f ( x)2, 5 x 5 求拉格朗日插值。