关于牛顿迭代法的课程设计实验指导精品文档9页

关于牛顿迭代法的课程设计实验指导精品文档9页
关于牛顿迭代法的课程设计实验指导精品文档9页

关于牛顿迭代法的课程设计实验指导

非线性方程(或方程组)问题可以描述为求 x 使得f (x ) = 0。在求解非线性方程的方法中,牛顿迭代法是求非线性方程(非线性方程组)数值解的一种重要的方法。牛顿是微积分创立者之一,微积分理论本质上是立足于对世界的这种认识:很多物理规律在微观上是线性的。近几百年来,这种局部线性化方法取得了辉煌成功,大到行星轨道计算,小到机械部件设计。牛顿迭代法正是将局部线性化的方法用于求解方程。

一、牛顿迭代法及其收敛速度

牛顿迭代法又称为牛顿-拉夫逊方法(Newton-Raphson method ),是一种在实数域和复数域上通过迭代计算求出非线性方程的数值解方法。方法的基本思路是利用一个根的猜测值x 0

做初始近似值,使用函数f (x )在x 0处的

泰勒级数展式的前两项做为函数f (x )的

近似表达式。由于该表达式是一个线性

函数,通过线性表达式替代方程f (x ) = 0中的f (x )求得近似解x 1。即将方程f (x ) = 0在x 0处局部线性化计算出近

似解x 1,重复这一过程,将方程f (x ) = 0在x 1处局部线性化计算出x 2,求得近似解x 2,……。详细叙述如下:假设方程的解x *在x 0附近(x 0是方程解x *的近似),函数f (x )在点x 0处的局部线化表达式为

由此得一次方程 0)()()(000='-+x f x x x f

求解,得 如图1所示,x 1比x 0更接近于x *。该方法的几何意义是:用曲线上某点(x 0,

图1 牛顿迭代法示意

y 0)的切线代替曲线,以该切线与x 轴的交点(x 1,0)作为曲线与x 轴的

交点(x *,0)的近似(所以牛顿迭代法又称为切线法)。设x n 是方程解x *

的近似,迭代格式

)()(1n n n n x f x f x x '-=+ ( n = 0,1,2,……) 就是著名的牛顿迭代公式,通过迭代计算实现逐次逼近方程的解。牛顿迭代法的最大优点是收敛速度快,具有二阶收敛。以著名的平方根算法为例,说明二阶收敛速度的意义。

例1.已知4.12≈,求2等价于求方程f (x ) = x 2 – 2 = 0的解。由于x x f 2)(='。应用牛顿迭代法,得迭代计算格式

)/2(2

11n n n x x x +=+,(n = 0,1,2,……) 取x 0= 1.4为初值,迭代计算3次的数据列表如下

其中,第三栏15位有效数是利用MATLAB 的命令sqrt(2)计算结果。观察表中数据,第一次迭代数据准确到小数点后四位,第二次迭代数据准确到小数点后八位,……。二阶收敛速度可解释为,每迭代一次,近似值的有效数位以二倍速度递增。对于计算任意正数C 的平方根,牛顿迭代法计算同样具有快速逼近的性质。

二、牛顿迭代法的收敛性

牛顿迭代法在使用受条件限制,这个限制就是通常所说的牛顿迭代法的局部收敛性。

定理 假设f (x )在x *的某邻域内具有连续的二阶导数,且设f (x *

)=0,

0)(*≠'x f ,则对充分靠近x *的初始值x 0,牛顿迭代法产生的序列{x n }收敛

于x *。

下面例子是牛顿迭代法不收敛的反例。反例说明,牛顿迭代法局部收敛性要求初始点要取得合适,否则导致错误结果。

例2用牛顿迭代法解方程 f (x ) = x 3 – x – 3 = 0。

分析:利用MATLAB 求多项式零点命令roots(p),计算得三次方程的三个根如下表

1

为了使用牛顿迭代法计算,对于 f (x ) = x 3 – x – 3 ,首先求导数,得13)(-='x x f 。取x 0 = 0和x 0 = 1取分别用牛顿迭代法计算,得

对于迭代初值取x 0=0x 0 = 0附近,算

法将陷入死循环。

图2 牛顿迭代法初值不收敛示意图

而迭代初值取x 0=1,可以使牛顿迭代法得到收敛。

三、特殊代数方程的牛顿迭代法收敛区域

将牛顿迭代法用于求解高阶代数方程时,首先回顾一个代数基本定理,即“一个n 阶多项式在复数域内有n 个根”。根据牛顿迭代法的局部收敛性质,任意取一个数据做为牛顿迭代的初值,可能导致迭代不收敛,即使这一个初值可以使迭代法收敛,下一个有趣的问题是“迭代序列将收敛于哪一个根”,其规律如何?

例3牛顿迭代法的收敛区域问题:Newton 迭代法可以用于求解复数方程 z 3 – 1 = 0,该方程在复平面上三个根分别是

选择中心位于坐标原点,边长为4的正方形内的任意点作初始值,进行迭代,将不收敛的点定义为第一类,给它们标一种颜色;再把收敛到三个根的初值分为三类,并分别标上不同颜色。对充分多的初始点进行实验,绘出牛顿迭代法对该方程的收敛域彩色图。

图3 牛顿迭代法收敛区域色图

问题分析:记f (z ) = z 3 – 1,则23)(z z f =',所以牛顿迭代公式为 由于牛顿迭代法的二阶收敛速度,对于一个取定的初值z 0,如果z 0是一个

可以导致迭代收敛的初值,则迭代10次已经达到足够精度,故可以取迭代次数为10。考虑以坐标原点为中心的正方形区域

取步长h =0.02,在区域内取离散网格点

????+-=?+-=h k y h j x k

j 22,( j ,k =0,1,…,200) 由此可以构造出规则的复数

z jk = x j + i y k ,( j ,k =0,1, (200)

对于这些点,逐一用牛顿迭代法取初值进行迭代实验,判断是否收敛?如果收敛,到底以该点为初值的迭代序列收敛到哪方程的一个根?

为了记录实验结果,构造四个阶数均为201×201矩阵:Z 0、Z 1、Z 2、Z 3,开始时这四个矩阵都设为全零矩阵。如果以z jk 为初值的迭代实验结果是不收敛,则将Z 0的第j 行第k 列的元素改写为1;如果以z jk 为初值的迭代实验结果是收敛到第一个根,则将Z 1的第j 行第k 列的元素改写为1;

如果以z jk 为初值的迭代实验结果是收敛到第二个根,则将Z 2的第j 行第k

列的元素改写为1;如果以z jk 为初值的迭代实验结果是收敛到第三个根,则将Z 3的第j 行第k 列的元素改写为1。

首先分析矩阵Z0的数据,由于该矩阵在开始时刻为全零矩阵,而在迭代实验结束后,不收敛的点对应元素被改写为“1”。所以,矩阵的元素只可能是“0”或“1”,根据该矩阵的全部的非零元素所在的位置可以使用MATLAB的图形绘制命令spy()或pcolor()等显示出一个特殊的图形。根据Z0数据绘的图形如下所示

图4 牛顿迭代法不收敛区域色图

导致牛顿迭代法不收敛的初始点所形成的平面点集是一个著名的集合,称为茹莉亚集(为纪念法国女数学家茹莉亚而命名)。

为了得到全局的收敛或不收敛情况,需要对四个矩阵进行叠加。如果直接相加将导致一个全“1”矩阵,不可能得出希望的结果。故,对矩阵做如下组合处理,令

Z = Z0 + 2Z1 + 3Z2 + 4Z3

则矩阵Z的元素由“1”、“2”、“3”、“4”这四个元素组成。该矩阵的某一位置上数据为“1”,说明这一位置上的复数做初值导致牛顿迭代法不收敛;位置上数据为“2”,说明这一位置上的复数做初值导致牛顿迭代法收敛到第一个根;位置上数据为“3”,说明这一位置上的复数做初值导致牛顿迭代法收敛到第二个根;位置上数据为“4”,说明这一位置上的复数做初值导致牛顿迭代法收敛到第三个根。所以该矩阵包含了矩阵区域内离散点集合做为牛顿迭代法收敛实验结果的全部信息。将这一矩阵用MATLAB作图命令pcolor()作用,将绘出图3所示的收敛区域色图。

导致牛顿迭代法收敛到第一个根的初始点所形成的平面点集,可以根据Z1数据绘图形

matlab实验十七__牛顿迭代法(可打印修改)

实验十七牛顿迭代法 【实验目的】 1.了解牛顿迭代法的基本概念。 2.了解牛顿迭代法的收敛性和收敛速度。 3.学习、掌握MATLAB软件的有关命令。 【实验内容】 用牛顿迭代法求方程的近似根,误差不超过。 3210 ++-=3 10- x x x 【实验准备】 1.牛顿迭代法原理 2.牛顿迭代法的几何解析 3.牛顿迭代法的收敛性 4.牛顿迭代法的收敛速度 5.迭代过程的加速 6.迭代的MATLAB命令 MATLAB中主要用for,while等控制流命令实现迭代。 【实验重点】 1.牛顿迭代法的算法实现 2.牛顿迭代法收敛性和收敛速度 【实验难点】 1.牛顿迭代法收敛性和收敛速度 【实验方法与步骤】 练习1用牛顿迭代法求方程在x=0.5附近的近似 3210 ++-= x x x

根,误差不超过。 310-牛顿迭代法的迭代函数为 322()1()()321 f x x x x g x x x f x x x ++-=-=-'++相应的MATLAB 代码为 >>clear; >>x=0.5; >>for i=1:3 >>x=x-(x^3+x^2+x-1)/(3*x^2+2*x+1) >>end 可算的迭代数列的前3项0.5455,0.5437,0.5437。经三次迭代,就大大超过了精度要求。 练习2 用牛顿迭代法求方程的近似正实根,由此建2(0)x a a =>立一种求平方根的计算方法。 由计算可知,迭代格式为,在实验12的练习4中1()()2a g x x x =+已经进行了讨论。 【练习与思考】 1.用牛顿迭代法求方程的近似根。 ln 1x x =2.为求出方程的根,在区间[1,2]内使用迭代函数进行310x x --=迭代,纪录迭代数据,问迭代是否收敛?对迭代进行加速,对比加速前的数据,比较加速效果。 3.使用在不动点的泰勒公式,证明牛顿迭代法收敛原理。*x

插值法数值上机实验报告

插值法数值上机实验报告 实验题目: 利用下列条件做插值逼近,并与R (x) 的图像比较 考虑函数:R x y=1 1+x2 (1)用等距节点X i=?5+i,i=0,1,...,10.给出它的10次Newton插值多项式的图像; π),i=0,1,...,20.给出它的20次Lagrange插值多项式(2)用节点X i=5cos(2i+1 42 的图像; (3)用等距节点X i=?5+i,i=0,1,...,10.给出它的分段线性插值函数的图像;(4)用等距节点X i=?5+i,i=0,1,...,10.给出它的三次自然样条插值函数的图像; (5)用等距节点X i=?5+i,i=0,1,...,10.给出它的分段三次Hermite插值函数的图像; 实验图像结果:

实验结果分析: 1.为了验证Range现象,我还特意做了10次牛顿插值多项式和20次牛顿插值多项式的对比图像,结果如下图(图对称,只截取一半) 可以看出,Range现象在高次时变得更加明显。这也是由于高次多项式在端点处的最值随次数的变大很明显。可以料定高次多项式在两侧端点处剧烈震荡,在更小的间距内急剧上升然后下降,Range现象非常明显。

2.分析实验(2)的结果,我们会惊讶地发现,由于取21个点逼近,原本预料的Range现象会很明显,但这里却和f(x)拟合的很好。(即下图中Lagrange p(x)的图像)。可是上图中取均匀节点的20次牛顿多项式逼近的效果在端点处却很差。料想是由于节点X i=5cos2i+1 42 π ,i=0,1,...,20 取得很好。由书上第五章的 知识,对于函数y=1 1+x ,y 1 2对应的cherbyshev多项式的根恰好为X i= 5cos2i+1 42 π ,i=0,1,...,20 。由于所学限制,未能深入分析。 (3)比较三次样条插值图像和Hermit插值图像对原函数图像的逼近情形。见下图:

等厚干涉牛顿环实验报告材料97459

等厚干涉——牛顿环 等厚干涉是薄膜干涉的一种。薄膜层的上下表面有一很小的倾角是,从光源发出的光经上下表面反射后在上表面附近相遇时产生干涉,并且厚度相同的地方形成同一干涉条纹,这种干涉就叫等厚干涉。其中牛顿环是等厚干涉的一个最典型的例子,最早为牛顿所发现,但由于他主张微粒子学说而并未能对他做出正确的解释。光的等厚干涉原理在生产实践中育有广泛的应用,它可用于检测透镜的曲率,测量光波波长,精确地测量微笑长度、厚度和角度,检验物体表面的光洁度、平整度等。 一.实验目的 (1)用牛顿环观察和分析等厚干涉现象; (2)学习利用干涉现象测量透镜的曲率半径; 二.实验仪器 读数显微镜钠光灯牛顿环仪

三. 实验原理 牛顿环装置是由一块曲率半径较大的平凸面放在一块光学玻璃平板(平镜)上构成的,如图。平凸透镜的凸面与玻璃平板之间的空气层厚度从中心到边缘逐渐增加,若以平行单光垂直照射到牛顿环上,则经空气层上、下表面反射的两光束存在光程差,他们在平凸透镜的凸面相遇后,将发生干涉。从透镜上看到的干涉花样是以玻璃接触点为中心的一系列明暗相间的圆环,称为牛顿环。同一干涉环上各处的空气层厚度是相同的,因此他属于等厚干涉。 图2 图3 由图2可见,若设透镜的曲率半径为R ,与接触点O 相距为r 处空气层的厚度为d ,其几何关系式为 2222222)(r d Rd R r d R R ++-=+-= 由于r R >>,可以略去d 2得

R r d 22 = (1) 光线应是垂直入射的,计算光程差时还要考虑光波在平玻璃上反射会有半波损失,,从而带来2λ的附加程差,所以总光程差为 2 2λ + =?d (2) 所以暗环的条件是 2 ) 12(λ +=?k (3) 其中 3,2,1,0=k 为干涉暗条纹的级数。综合(1)(2)(3)式可得第可k 级暗环的半径为 λkR r k =2 (4) 由式(4)可知,如果单色光源的波长λ已知,测出第m 级的暗环半径r m,,即可得出平图透镜的曲率半径R ;反之,如果R 已知,测出r m 后,就可计算出入射单色光波的波长λ。但是用此测量关系式往往误差很大,原因在于凸面和平面不可能是理想的点接触;接触压力会引起局部形变,使接触处成为一个圆形平面,干涉环中心为一暗斑。或者空气间隙层有了灰尘,附加了光程差,干涉环中心为一亮(或暗)斑,均无法确定环的几何中心。实际测量时,我们可以通过测量距中心较远的两个暗环半径r m 和r n 的平方差来计算曲率半径R 。因为 λMR r m =2 λnR r n =2 两式相减可得 λ)(22n m R r r n m -=-

MAAB计算方法迭代法牛顿法二分法实验报告

姓名 实验报告成绩 评语: 指导教师(签名) 年 月 日 说明:指导教师评分后,实验报告交院(系)办公室保存。 实验一 方程求根 一、 实验目的 用各种方法求任意实函数方程0)(=x f 在自变量区间[a ,b]上,或某一点附近的实根。并比较方法的优劣。 二、 实验原理 (1)、二分法 对方程0)(=x f 在[a ,b]内求根。将所给区间二分,在分点 2a b x -=判断是否0)(=x f ;若是,则有根2a b x -=。否则,继续判断是否0)()(

+)(0x f 0))(('0=-x x x f 设0)('0≠x f ,则=x -0x )(') (00x f x f 。取x 作为原方程新的近似根1x ,然后将1x 作为0x 代入上式。迭代公式为:=+1 k x -0x )(')(k k x f x f 。 三、 实验设备:MATLAB 软件 四、 结果预测 (1)11x = (2)5x = (3)2x =0,09052 五、 实验内容 (1)、在区间[0,1]上用二分法求方程0210=-+x e x 的近似根,要求误差不超 过3105.0-?。 (2)、取初值00=x ,用迭代公式=+1 k x -0x )(') (k k x f x f ,求方程0210=-+x e x 的近似根。要求误差不超过3105.0-?。 (3)、取初值00=x ,用牛顿迭代法求方程0210=-+x e x 的近似根。要求误差 不超过3105.0-?。 六、 实验步骤与实验程序 (1) 二分法 第一步:在MATLAB 软件,建立一个实现二分法的MATLAB 函数文件如下: function x=agui_bisect(fname,a,b,e) %fname 为函数名,a,b 为区间端点,e 为精度 fa=feval(fname,a); %把a 端点代入函数,求fa fb=feval(fname,b); %把b 端点代入函数,求fb if fa*fb>0 error('两端函数值为同号'); end

牛顿环实验报告

北京师范大学珠海分校大学物理实验报告 实验名称:牛顿环实验测量 学院工程技术学院 专业测控技术与仪器 学号 1218060075 姓名钟建洲 同组实验者 1218060067余浪威 1218010100杨孟雄 2013 年 1 月 17日

实验名称 牛顿环实验测量 一、实验目的 1.观察牛顿环干涉现象条纹特征; 2.学习用光的干涉做微小长度的测量; 3.利用牛顿环干涉测量平凸透镜的曲率半径; 4.通过实验掌握移测显微镜的使用方法 二、实验原理 在一块平面玻璃上安放上一焦距很大的平凸透镜,使其凸面与平面相接触,在接触点 o 附近就形成一层空 气膜。当用一平行的准单色光垂直照射时,在空气膜上表面反射的光束和下表面反射的光束在膜上表面相遇相干,形成以 o 为圆心的明暗相间的环状干涉图样,称为牛顿环。如果已知入射光波长,并测得第 k 级 暗环的半径 r k ,则可求得透镜的曲率半径 R 。但 实际测量时,由于透镜和平面玻璃接触时,接触点有压力产生形变或有微尘产生附加光程差,使得干涉条纹的圆心和环级确定困难。第m 环与第n 环 用直径 D m 、 D n 。 () λ n m n D m D R +-= 42 2此为计算 R 用的公式,它与附加厚度、

圆心位置、绝对级次无关,克服了由这些因素带来的系统误差,并且D m 、 D n 可以是弦长。 三、实验内容与步骤 用牛顿环测量透镜曲率半径 (1).按图布置好实验器材,使用单色扩展光源,将牛顿环装置放在读数显微镜工作台毛玻璃中央,并使显微镜筒正对牛顿环装置中心。 (2).调节读数显微镜。 1.调节目镜,使分划板上的十字刻度线清晰可见,并转动目镜,使十字刻度线的横线与显微镜筒的移动方向平行。 2.调节45度反射镜,使显微镜视觉中亮度最大,这时基本上满足入射光垂直于待测量透镜的要求。 1.转动手轮A,使显微镜平移到标尺中部,并调节调焦手轮B,使物镜接近牛顿环装置表面。 2.对显微镜调焦。缓慢地转动调焦手轮B,使显微镜筒由下而上移动进行调焦,直到从目镜中清楚地看到牛顿环干涉条纹且无视差为止;然后移动牛顿环装置,使目镜中十字刻度线交点与牛顿环中心重合 (1).观察条纹的特征。 观察各级条纹的粗细是否一致,其间距有无差异,并做出解释。观察牛顿环中心是亮斑还是暗斑? (2).测量暗环的直径 转动读数显微镜的读数鼓轮,同时在目镜中观察,使十字刻度线由牛顿环中心缓慢地向一侧移动到43环;然后再回到第42环。自42环起,单方向移动十字刻度,每移3环读数一——直到测量完成另一侧的第42环。并将所测量的第42环到第15环各直径的左右两边的读数记录在表格内。 四、数据处理与结果 1.求透镜的曲率半径。 测出第15环到第42环暗环的直径,取m-n=15,用逐差法求出暗环的直径平方 差的平均值,按算出透镜的曲率半径的平均值R。 R1=(d422-d272)/[4(42-27]λ= 895.85 mm R2=(d392-d242)/[4(39-24]λ= 896.97 mm R3=(d362-d212)/(4(36-21)λ= 887.94mm R4=(d332-d182)/(4(33-18)λ= 893.30mm

迭代法实验

实验五线性方程组的迭代法实验 一. 实验目的 (1)深入理解线性方程组的迭代法的设计思想,学会利用系数矩阵的性质以保证迭代过程的收敛性,以及解决某些实际的线性方程组求解问题。 (2)熟悉Matlab编程环境,利用Matlab解决具体的方程求根问题。 二. 实验要求 建立Jacobi迭代公式、Gauss-Seidel迭代公式和超松弛迭代公式,用Matlab软件实现线性方程组求解的Jacobi迭代法、Gauss-Seidel迭代法和超松弛迭代法,并用实例在计算机上计算。 三. 实验内容 1. 实验题目 (1)分别利用Jacobi迭代和Gauss-Seidel迭代求解下列线性方程组,取x0={0 ,0,0,0,0-,o}t (2)分别取w=1、1.05、1.1、1.25和 1.8,用超松弛法求解上面的方程组,要求精度为510 。 2. 设计思想 1.Jacobi迭代: Jacobi迭代的设计思想是将所给线性方程组逐步对角化,将一般形式的线性方程组的求解归结为对角方程组求解过程的重复。 2.Gauss-Seidel迭代: Gauss-Seidel迭代的设计思想是将一般形式的线性方程组的求解过程归结为下三角方程组求解过程的重复。 3.超松弛迭代:基于Gauss-Seidel迭代,对i=1,2,…反复执行计算迭代公式,即为超松弛迭代。 3. 对应程序 1.Jacobi迭代: function [x,k]=Jacobimethod(A,b,x0,N,emg) %A是线性方程组的左端矩阵,b是右端向量,x0是迭代初始值 % N表示迭代次数上限,emg表示控制精度,k表示迭代次数,x是解 n=length(A); x1=zeros(n,1); x2=zeros(n,1); x1=x0;k=0; r=max(abs(b-A*x1)); while r>emg for i=1:n sum=0; for j=1:n if i~=j sum=sum+A(i,j)*x1(j); end end x2(i)=(b(i)-sum)/A(i,i); end r=max(abs(x2-x1)); x1=x2; k=k+1; if k>N disp('迭代失败,返回'); return; end end

数值分析实验报告记录

数值分析实验报告记录

————————————————————————————————作者:————————————————————————————————日期:

数值分析实验报告 (第二章) 实验题目: 分别用二分法、牛顿迭代法、割线法、史蒂芬森迭代法求方程 的根,观察不同初始值下的收敛性,并给出结论。 问题分析: 题目有以下几点要求: 1.不同的迭代法计算根,并比较收敛性。 2.选定不同的初始值,比较收敛性。 实验原理: 各个迭代法简述 二分法:取有根区间的重点,确定新的有根区间的区间长度仅为区间长度的一版。对压缩了的有根区间重复以上过程,又得到新的有根区间,其区间长度为的一半,如此反复,……,可得一系列有根区间,区间收敛到一个点即为根。 牛顿迭代法:不动点迭代法的一种特例,具有局部二次收敛的特性。迭代格式为 割线法:是牛顿法的改进,具有超线性收敛的特性,收敛阶为1.618. 迭代格式为 史蒂芬森迭代法:采用不动点迭代进行预估校正。至少是平方收敛的。迭代格式为 这里可采用牛顿迭代法的迭代函数。 实验内容:

1.写出该问题的函数代码如下: function py= f(x) syms k; y=(k^2+1)*(k-1)^5; yy=diff(y,k); py(1)=subs(y,k,x); py(2)=subs(yy,k,x); end 2.分别写出各个迭代法的迭代函数代码如下: 二分法: function y=dichotomie(a,b,e) i=2; m(1)=a; while abs(a-b)>e t=(a+b)/2; s1=f(a); s2=f(b); s3=f(t); if s1(1)*s3(1)<=0 b=t; else a=t; end m(i)=t; i=i+1; end y=[t,i+1,m]; end 牛顿迭代法: function y=NewtonIterative(x,e) i=2; en=2*e;m(1)=x; while abs(en)>=e s=f(x); t=x-s(1)/s(2); en=t-x; x=t; m(i)=t; i=i+1; end y=[x,i+1,m]; end 牛顿割线法: function y=Secant(x1,x2,e) i=3; m(1)=x1,m(2)=x2; while abs(x2-x1)>=e s1=f(x1); s2=f(x2); t=x2-(x2-x1)*s2(1)/(s2(1)-s1( 1)); x1=x2; x2=t; m(i)=t; i=i+1; end

牛顿插值法试验报告

. 牛顿插值法一、实验目的:学会牛顿插值法,并应用算法于实际问题。 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) 回车得到:

数值分析实验报告-插值、三次样条(教育教学)

实验报告:牛顿差值多项式&三次样条 问题:在区间[-1,1]上分别取n=10、20用两组等距节点对龙格函数2 1()25f x x 作多项式插值及三次样条插值,对每个n 值,分别画出插值函数及()f x 的图形。 实验目的:通过编程实现牛顿插值方法和三次样条方法,加深对多项式插值的理解。应用所编程序解决实际算例。 实验要求: 1. 认真分析问题,深刻理解相关理论知识并能熟练应用; 2. 编写相关程序并进行实验; 3. 调试程序,得到最终结果; 4. 分析解释实验结果; 5. 按照要求完成实验报告。 实验原理: 详见《数值分析 第5版》第二章相关内容。 实验内容: (1)牛顿插值多项式 1.1 当n=10时: 在Matlab 下编写代码完成计算和画图。结果如下: 代码: clear all clc x1=-1:0.2:1; y1=1./(1+25.*x1.^2); n=length(x1); f=y1(:); for j=2:n for i=n:-1:j f(i)=(f(i)-f(i-1))/(x1(i)-x1(i-j+1)); end end syms F x p ; F(1)=1;p(1)=y1(1); for i=2:n F(i)=F(i-1)*(x-x1(i-1)); p(i)=f(i)*F(i);

end syms P P=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 on xlabel('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)。 Fig.1 牛顿插值多项式(n=10)函数和原函数图形 从图形中我们可以明显的观察出插值函数在两端点处发生了剧烈的波动,产生了极大的误差,即龙格现象,当n=20时,这一现象将更加明显。 1.2 当n=20时: 对n=10的代码进行修改就可以得到n=20时的代码。将“x1=-1:0.2:1;”改为“x1=-1:0.1:1;”即可。运行程序,我们得到n=20时的牛顿插值多项式,结果为:P20(x)= 260188.0*x^20 - 1.0121e6*x^18 + 2.6193e-12*x^17 + 1.6392e6*x^16 + 2.248e-11*x^15 - 1.4429e6*x^14 - 4.6331e-11*x^13 + 757299.0*x^12 + 1.7687e-11*x^11 - 245255.0*x^10 + 2.1019e-11*x^9 + 49318.0*x^8 + 3.5903e-12*x^7 - 6119.2*x^6 - 1.5935e-12*x^5 + 470.85*x^4 + 1.3597e-14*x^3 - 24.143*x^2 - 1.738e-14*x + 1.0 同样的,这里得到了该牛顿插值多项式的在[-1,1]上的图形,并和原函数进行对比(见Fig.2)。

关于牛顿迭代法的课程设计实验指导

y x O x * x 1 x 0 关于牛顿迭代法的课程设计实验指导 非线性方程(或方程组)问题可以描述为求 x 使得f (x ) = 0。在求解非线性方程的方法中,牛顿迭代法是求非线性方程(非线性方程组)数值解的一种重要的方法。牛顿是微积分创立者之一,微积分理论本质上是立足于对世界的这种认识:很多物理规律在微观上是线性的。近几百年来,这种局部线性化方法取得了辉煌成功,大到行星轨道计算,小到机械部件设计。牛顿迭代法正是将局部线性化的方法用于求解方程。 一、牛顿迭代法及其收敛速度 牛顿迭代法又称为牛顿-拉夫逊方法(Newton-Raphson method ),是一种在实数域和复数域上通过迭代计算求出非线性方程的数值解方法。方法的基本思路是利用一个根的猜测值x 0做初始近似值,使用函数f (x )在x 0处的泰勒级数展式的前两项做为函数f (x )的近似表达式。由于该表达式是一个线性函数,通过线性表达式替代方程中的求得近似解x 1。即将方程f (x ) = 0在x 0处局部线性化计算出近似解x 1,重复这一过程,将方程f (x ) = 0在x 1处局部线性化计算出x 2,求得近似解x 2,……。详细叙述如下:假设方程的解x *在x 0附近(x 0是方程解x *的近似),函数f (x )在点x 0处的局部线化表达式为 )()()()(000x f x x x f x f '-+≈ 由此得一次方程 0)()()(000='-+x f x x x f 求解,得 ) ()(0001x f x f x x '-= 如图1所示,x 1比x 0更接近于x *。该方法的几何意义是:用曲线上某点(x 0,y 0)的切线代替曲线,以该切线与x 轴的交点(x 1,0)作为曲线与x 轴的交点(x *,0)的近似(所以牛顿迭代法又称为切线法)。设x n 是方程解x *的近似,迭代格式 ) ()(1n n n n x f x f x x '-=+ ( n = 0,1,2,……) 就是著名的牛顿迭代公式,通过迭代计算实现逐次逼近方程的解。牛顿迭代法的最大优点是收敛速度快,具有二阶收敛。以著名的平方根算法为例,说明二阶收敛速度的意义。 例1.已知4.12≈,求2等价于求方程f (x ) = x 2 – 2 = 0的解。由于x x f 2)(='。应用牛顿迭代法,得迭代计算格式 )/2(2 11n n n x x x +=+,(n = 0,1,2,……) 取x 0= 1.4为初值,迭代计算3次的数据列表如下 迭代次数 近似值 15位有效数 误差 0 1.4 1.41421356237310 -1.42e-002 1 1.41428571428571 1.41421356237310 7.21e-005 2 1.41421356421356 1.41421356237310 1.84e-009 3 1.41421356237309 1.41421356237310 - 2.22e-016 图1 牛顿迭代法示意图

牛顿环测量曲率半径实验报告

实验名称:牛顿环测量曲率半径实验 1.实验目的: 1 观察等厚干涉现象,理解等厚干涉的原理和特点 2 学习用牛顿环测定透镜曲率半径 3 正确使用读数显微镜,学习用逐差法处理数据 2.实验仪器: 读数显微镜,钠光灯,牛顿环,入射光调节架 3.实验原理 图1 如图所示,在平板玻璃面DCF上放一个曲率半径很大的平凸透镜ACB,C点为接触点,这样在ACB和DCF之间,形成一层厚度不均匀的空气薄膜,单色光从上方垂直入射到透镜上,透过透镜,近似垂直地入射于空气膜。分别从膜的上下表面反射的两条光线来自同一条入射光线,它们满足相干条件并在膜的上表面相遇而产生干涉,干涉后的强度由相遇的两条光线的光程差决定,由图可见,二者的光 程差等于膜厚度e的两倍,即

此外,当光在空气膜的上表面反射时,是从光密媒质射向光疏媒质,反射光不发生相位突变,而在下表面反射时,则会发生相位突变,即在反射点处,反射光的相位与入射光的相位之间相差π,与之对应的光程差为λ/2 ,所以相干的两条光线还具有λ/2的附加光程差,总的光程差为 (1) 当?满足条件 (2) 时,发生相长干涉,出现第K级亮纹,而当 (3) 时,发生相消干涉,出现第k级暗纹。因为同一级条纹对应着相同的膜厚,所以干涉条纹是一组等厚度线。可以想见,干涉条纹是一组以C点为中心的同心圆,这就是所谓的牛顿环。 如图所示,设第k级条纹的半径为,对应的膜厚度为,则 (4) 在实验中,R的大小为几米到十几米,而的数量级为毫米,所以R >> e k, e k 2相对于2Re k 是一个小量,可以忽略,所以上式可以简化为 (5) 如果r k是第k级暗条纹的半径,由式(1)和(3)可得 (6)代入式(5)得透镜曲率半径的计算公式

牛顿环实验报告

等厚干涉——牛顿环 【实验目的】 (1)用牛顿环观察和分析等厚干涉现象; (2)学习利用干涉现象测量透镜的曲率半径; (3)学会使用读数显微镜测距。 【实验原理】 在一块平面玻璃上安放上一焦距很大的平凸透镜,使其凸面与平面相接触,在接触点附近就形成一层空气膜。当用一平行的准单色光垂直照射时,在空气膜上表面反射的光束和 下表面反射的光束在膜上表面相遇相干,形成以接触点为圆心的明暗相间的环状干涉图样,称为牛顿环,其光路示意图如图。 如果已知入射光波长,并测得第k 级暗环的半径 k r ,则可求得透镜 的曲率半径R 。但实际测量时,由于透镜和平面玻璃接触时,接触点有压力产生形变或有微尘产生附加光程差,使得干涉条纹的圆心和环级确定困难。用直径 m D 、n D ,有 λ)(42 2n m D D R n m --= 此为计算R 用的公式,它与附加厚光程差、圆心位置、绝对级次无关,克服了由这些因素带来的系统误差,并且 m D 、n D 可以是弦长。 【实验仪器】 JCD3型读数显微镜,牛顿环,钠光灯,凸透镜(包括三爪式透镜夹和固定滑座)。 【实验内容】 1、调整测量装置 按光学实验常用仪器的读数显微镜使用说明进行调整。调整时注意: (1)调节450玻片,使显微镜视场中亮度最大,这时,基本上满足入射光垂直于透镜的要求(下部反光镜不要让反射光到上面去)。 (2)因反射光干涉条纹产生在空气薄膜的上表面,显微镜应对上表面调焦才能找到清

晰的干涉图像。 (3)调焦时,显微镜筒应自下而上缓慢地上升,直到看清楚干涉条纹时为止,往下移动显微镜筒时,眼睛一定要离开目镜侧视,防止镜筒压坏牛顿环。 (4)牛顿环三个压紧螺丝不能压得很紧,两个表面要用擦镜纸擦拭干净。 2、观察牛顿环的干涉图样 (1)调整牛顿环仪的三个调节螺丝,在自然光照射下能观察到牛顿环的干涉图样,并将干涉条纹的中心移到牛顿环仪的中心附近。调节螺丝不能太紧,以免中心暗斑太大,甚至损坏牛顿环仪。 (2)把牛顿环仪置于显微镜的正下方,使单色光源与读数显微镜上45角的反射透明玻璃片等高,旋转反射透明玻璃,直至从目镜中能看到明亮均匀的光照。 (3)调节读数显微镜的目镜,使十字叉丝清晰;自下而上调节物镜直至观察到清晰的干涉图样。移动牛顿环仪,使中心暗斑(或亮斑)位于视域中心,调节目镜系统,使叉丝横丝与读数显微镜的标尺平行,消除视差。平移读数显微镜,观察待测的各环左右是否都在读数显微镜的读数范围之内。 3、测量牛顿环的直径 (1)选取要测量的m和n(各5环),如取m为55,50,45,40,35,n为30,25,20,15,10。 (2)转动鼓轮。先使镜筒向左移动,顺序数到55环,再向右转到50 环,使叉丝尽量对准干涉条纹的中心,记录读数。然后继续转动测微鼓轮,使叉丝依次与45,40,35,30,25,20,15,10,环对准,顺次记下读数;再继续转动测微鼓轮,使叉丝依次与圆心右10,15,20,25,30,35,40,45,50,55环对准,也顺次记下各环的读数。注意在一次测量过程中,测微鼓轮应沿一个方向旋转,中途不得反转,以免引起回程差。 4、算出各级牛顿环直径的平方值后,用逐差法处理所得数据,求出 直径平方差的平均值代入公式求出透镜的曲率半径,并算出误差。.注意: (1)近中心的圆环的宽度变化很大,不易测准,故从K=lO左右开始比较好; (2)m-n应取大一些,如取m-n=25左右,每间隔5条读一个数。 (3)应从O数到最大一圈,再多数5圈后退回5圈,开始读第一个数据。 (4)因为暗纹容易对准,所以对准暗纹较合适。,

迭代法实验报告

迭代法实验报告 一. 实验目的:掌握迭代方法的用处 二. 实验环境:Cfree5.0 三. 实验时间:2013年6月20日 四. 实验地点:电子信息楼1201教室 五. 实验内容:运用编程实现迭代方法可以更好的解线性方程组,得到线性方程的解。 六. 实验理论依据: 高斯-赛德尔(Gauss-Seidel )迭代公式 我们注意到在雅可比迭代法中并没有对新算出的分量11k x +,12k x +, , 11k i x +-进行充分利用.不妨设想,在迭代收敛的条件下,我们把 (1)()()()11211331111(1)()()()22112332222(1)()()()1122,111()1(1(k k k k n n k k k k n n k k k k n n n n n n nn x a x a x a x b a x a x a x a x b a x a x a x a x b a +++--?=---+???=---+?????=---+?? 式中第一个方程算出的11k x +立即投入到第二个方程中,代替()1k x 进行计算,当12 k x +算出后代替()2k x 马上投入到第三个方程中计算,依次进行下去,这样也许会得到 更好的收敛效果.根据这种思路建立的一种新的迭代格式,我们称为高斯-赛德尔(Gauss-Seidel )迭代公式, 高斯=赛德尔迭代法的分量形式:

(1)()()()11211331111(1)(1)()()22112332222(1)(1)(1)(1)1122,111()1(1(k k k k n n k k k k n n k k k k n n n n n n nn x a x a x a x b a x a x a x a x b a x a x a x a x b a +++++++--?=---+???=---+?????=---+?? 高斯-赛德尔迭代法的矩阵形式: (1)(),(0,1,2,)k k x Bx f k +=+= 其中 1()B D L U -=- ,1()f D L b -=- B 称为高斯-赛德尔迭代矩阵,f 称为高斯-赛德尔迭代常量.. 七. 运行代码如下: #include"stdio.h" #include"math.h" int main() { bool pan1=true; int n,n1,n2=0,k=0; double num[100][100],L[100][100],U[100][100],x[100],y[100],num1=0,b[100],D[100][100],x1[200][200],x2[200][200]; printf("\n"); printf("*******************************高斯迭代法解如下********************************"); printf("输入要输入矩阵的阶数为(按Enter 输入矩阵数字):");//

matlab(迭代法-牛顿插值)Word版

实验报告内容: 一:不动点迭代法解方程 二:牛顿插值法的MATLAB实现 完成日期:2012年6月21日星期四 数学实验报告一 日期:2012-6-21

所以,确定初值为x0=1 二:不断迭代 算法: 第一步:将f(x0)赋值给x1 第二步:确定x1-x0的绝对值大小,若小于给定的误差值,则将x1当做方程的解,否则回到第一步 编写计算机程序: clear f=inline('0.5*sin(x)+0.4'); x0=1; x1=f(x0); k=1; while abs(x1-x0)>=1.0e-6 x0=x1; x1=f(x0); k=k+1; fprintf('k=%.0f,x0=%.9f,x1=%.9f\n',k,x0,x1) end 显示结果如下: k=2,x0=0.820735492,x1=0.765823700 k=3,x0=0.765823700,x1=0.746565483 k=4,x0=0.746565483,x1=0.739560873

k=6,x0=0.736981783,x1=0.736027993 k=7,x0=0.736027993,x1=0.735674699 k=8,x0=0.735674699,x1=0.735543758 k=9,x0=0.735543758,x1=0.735495216 k=10,x0=0.735495216,x1=0.735477220 k=11,x0=0.735477220,x1=0.735470548 k=12,x0=0.735470548,x1=0.735468074 k=13,x0=0.735468074,x1=0.735467157 >>。。。 以下是程序运行截图:

牛顿迭代法实验报告

用牛顿迭代法求非线性方程的根 一、 实验题目 求方程()013=--=x x x f 在5.1附近的根。 二、 实验引言 (1)实验目的 1. 用牛顿迭代法求解方程的根 2. 了解迭代法的原理 3. 改进和修缮迭代法 (2)实验意义 牛顿迭代法就是众多解非线性方程迭代法中比较普遍的一种,求解方便实用。 三、 算法设计 (1)基本原理 给定初始值0x ,ε为根的容许误差,η为()x f 的容许误差,N 为迭代次数的容许值。 1.如果()0='x f 或迭带次数大于N ,则算法失败,结束;否则执行2. 2.计算()() 0001x f x f x x '-=. 3.若ε<-21x x 或()η<1x f ,则输出1x ,程序结束;否则执行4. 4.令10x x =,转向1. (2)流程图

四、程序设计program nndd01 implicit none real,parameter::e=0.005 real,parameter::n=9 real::x1 real::x0=1.5 integer::k real,external::f,y do k=1,9 if (y(x0)==0) then write(*,*)"失败" else x1=x0-f(x0)/y(x0) if (abs(x1-x0)

else x0=x1 end if end if end do end function f(x) implicit none real::f real::x f=x*x*x-x-1 return end function function y(x) implicit none real::y real::x y=3*x*x-1 return end function 五、求解结果 3 1.324718 4 1.324718 5 1.324718 6 1.324718 7 1.324718 8 1.324718 9 1.324718 六、算法评价及讨论 1.在求解在1.5处附近的根,不难发现在输入区间左端值为1时 需要迭代6次,而输入区间左端值为1.5时,却只要4次。初

等厚干涉牛顿环实验报告

等厚干涉——牛顿环等厚干涉是薄膜干涉的一种。薄膜层的上下表面有一很小的倾角是,从光源发出的光经上下表面反射后在上表面附近相遇时产生干涉,并且厚度相同的地方形成同一干涉条纹,这种干涉就叫等厚干涉。其中牛顿环是等厚干涉的一个最典型的例子,最早为牛顿所发现,但由于他主张微粒子学说而并未能对他做出正确的解释。光的等厚干涉原理在生产实践中育有广泛的应用,它可用于检测透镜的曲率,测量光波波长,精确地测量微笑长度、厚度和角度,检验物体表面的光洁度、平整度等。 一. 实验目的 (1)用牛顿环观察和分析等厚干涉现象; (2)学习利用干涉现象测量透镜的曲率半径; 二. 实验仪器 读数显微镜钠光灯牛顿环仪 三. 实验原理 牛顿环装置是由一块曲率半径较大的平凸面放在 一块光学玻璃平板(平镜)上构成的,如图。平凸透 镜的凸面与玻璃平板之间的空气层厚度从中心到边缘逐渐增加,若以平行单光垂直照射到牛顿环上,则经空气层上、下表面反射的两光

束存在光程差,他们在平凸透镜的凸面相遇后,将发生干涉。从透镜上看到的干涉花样是以玻璃接触点为中心的一系列明暗相间的圆环,称为牛顿环。同一干涉环上各处的空气层厚度是相同的,因此他属于等厚干涉。 图2图3 由图2可见,若设透镜的曲率半径为R ,与接触点O 相距为r 处空气层的厚度为d ,其几何关系式为 由于r R >>,可以略去d 2得 R r d 22 =(1) 光线应是垂直入射的,计算光程差时还要考虑光波在平玻璃上反射会有半波损失,,从而带来2λ的附加程差,所以总光程差为 2 2λ + =?d (2) 所以暗环的条件是 2 ) 12(λ +=?k (3) 其中K 3,2,1, 0=k 为干涉暗条纹的级数。综合(1)(2)(3)式可得第可k 级暗环的半径为 λkR r k =2(4) 由式(4)可知,如果单色光源的波长λ已知,测出第m 级的暗环半径r m,,即可得出平图透镜的曲率半径R ;反之,如果R 已知,测出r m 后,就可计算出入射单色光波的波长λ。但是用此测量关系式往往误差很大,原因在于凸面和平面不可能是理想的点接触;接触压力会引起局部形变,使接触处成为一个圆形平面,干涉环中心为一暗斑。或者空气间隙层有了灰尘,附加了光程差,干涉环中心为一亮(或

实验解线性方程组的基本迭代法实验

数值分析实验报告

0 a 12 K a 1,n 1 K a 2,n 1 U O M 则有: 第一步: Jacobi 迭代法 a 1n a 2n M , 则有: A D L U a n 1,n Ax b A A x D b L U (D L U)x b Dx (L U)x b x D (L U)x D b 令 J D (L U) 则称 J 为雅克比迭代矩阵 f D b 由此可得雅克比迭代的迭代格式如下: x (0) , 初始向量 x (k 1) Jx (k) f ,k 0,1,2,L 第二步 Gauss-Seidel 迭代法 Ax b (D L U )x b (D L)x Ux b x (D L) Ux (D L) b A D L U a 11 a 12 L a 1n a 11 A a 21 a 22 L a 2n a 22 M MM MO a n1 a n2 L a nn a 11 得到 D a 22 O a nn 由 a 21 0 M M O a n 1,1 a n 1,2 L 0 a nn a n1 a n2 L a n,n a 21 L M M O a n 1,1 a n 1,2 L a n1 a n2 L a n,n 1 a 12 K a 1,n 1 a 1n 0 K a 2,n 1 a 2n O M M a n 1,n 10

令 G (D L) U ,则称G 为Gauss-Seidel 迭代矩阵 f (D L) b 由此可得 Gauss-Seidel 迭代的迭代格式如下: x (0) , 初始向量 第三步 SOR 迭代法 w0 AD L U 1 ( D 1 wL ((1 w)D wU )) (D 1 wL) ((1 w)D wU ) w w w 令M w 1 (D wL), N 1 ((1 w)D wU )则有:A MN w w Ax b AM L W N M (M N )x b Mx Nx b x M Nx M b N M, 令W f Mb 带入 N 的值可有 L W ((1 w)D wU) (D wL) 1((1 w)D wU) (D wL) f 1 b w 1(D wL) 1b 1 (D wL) w 称 L W 为 SOR 迭代矩阵,由此可得 SOR 迭代的迭代格式如下: x (0) ,初始向量 二、算法程序 Jacobi 迭代法的 M 文件: function [y,n]=Jacobi(A,b,x0,eps) %************************************************* %函数名称 Jacobi 雅克比迭代函数 %参数解释 A 系数矩阵 % b 常数项 % x0 估计解向量 x (k 1) Gx (k) f ,k 0,1,2,L (k 1) f,k 0,1,2,L

相关文档
最新文档