数学实验报告样本_第1页
数学实验报告样本_第2页
免费预览已结束,剩余9页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精品文档数学实验报告实验序号:3日期: 2013年12月14日班级应数一班姓名陈菲学号1101114209实验 名称求代数方程的近似根问题背景描述:求代数方程f(x) 0的根是最常见的数学问题之一,当f(x)是一次多项式时,称f(x) 0 为线性方程,否则称之为非线性方程.当f(x) 0是非线性方程时,由于f(x)的多样性,尚无一般的解析解法可使用,但如果 对任意的精度要求,能求出方程的近似根,贝U可以认为求根的计算问题已经解决,至少能满 足实际要求.本实验介绍一些求方程实根的近似值的有效方法,要求在使用这些方法前先确定求根区间 a,b,或给出某根的近似值X。.实验目的:1. 了解代数方程求根

2、求解的四种方法:对分法、迭代法、牛顿切线法2. 掌握对分法、迭代法、牛顿切线法求方程近似根的基本过程。实验原理与数学模型:1 .对分法对分法思想:将区域不断对分,判断根在某个分段内,再对该段对分,依此类推,直到满足精 度为止.对分法适用于求有根区间内的单实根或奇重实根.设 f(x)在a,b上连续,f(a) f(b) 0,即 f(a) 0 , f(b) 或 f(a) 0 , f(b) o.则根据 连续函数的介值定理,在(a, b)内至少存在一点,使f( ) 0 .下面的方法可以求出该根:a b 令*2 ,计算f(x0);若f(X0) 0,则X。是f(x) 0的根,停止计算,输出结果X X。.a

3、3 若 f(a) f(Xo)0,则令aia,biXo,若 f (a) f(Xo)0,则令印Xo,d b ;X, .bXk,有ak、bk以及相应的2.x ak 4 (3)若f(Xk)(为预先给定的精度要求),退出计算,输出结果2;反之,返回(1),重复(1),.以上方法可得到每次缩小一半的区间序列 ak,bk,在(ak,bk)中含有方程的根.x ak bk 当区间长bk ak很小时,取其中点k 2 为根的近似值,显然有1 11 1|xkI (bkak);-(bk1 ak 1)L 7(ba)2 22 2以上公式可用于估计对分次数k .2.迭代法迭代法的基本思想:由方程f(x)0构造一个等价方程x

4、(x)从某个近似根xo出发,令xk 1(Xk)k 0,1,2,可得序列xk,这种方法称为迭代法. 若xk收敛,即*lim xkxk kxkmHkxkmHkn* *X (X )可知,Xk的极限X是X (X)的根,也就是f(X)0的根.当然,若Xk发散,迭代法就失败.迭代过程Xk 1(Xk )收敛的常用判别标准:当根区间a,b较小,且对某一 Xo a,b,(x)明显小于1时,则迭代收敛2)迭代法的加速:a)松弛法:若(X)与Xk同是X*的近似值,则Xk1 (1为权重,现通过确定k)Xkk (Xk)是两个近似值的加权平均,其中k称k看能否得到加速.迭代方程是:X (X) 其中(X)(1)x当(X)

5、1时,有(X),令1(x),即当(X)1(X)0,试确定:(Xk)1(Xk)时,可望获得较好的加速效果,于是有松弛法:Xk 1(1k)Xkk (Xk)k11(Xk)X(:X )X是它的根,X。是其近似根.设X1(Xo)X2(XJ,因为*XX2*XX2*X2 (X )(X1)X2( )(XX2X1(xj(Xo)用差商X1:XoX1 Xo近似代替(),有*XX2X2X1 ( (X*XjXXo解出*X,得b) Altken 方法:Xi)(X2 X1)2XX2由此彳得出公式(Xk);X2)(xk1):(xk2)xk1)2Xk 1XkXk2xk1Xkk o,1,2X?2为Xq这就是Altken公式。3.

6、牛顿(Newt on)法(牛顿切线法)1)牛顿法的基本思想:f(x)0是非线性方程,一般较难解决,多采用线性化方法.f ( )2f (x) f(Xo) f(x)(x xo) Xo)记:P(x) f (xo) f(Xo)(X Xo)o的近似方程.P(x)是一次多项式,用P(x)o作为f(x)P(x) f(Xo) f (Xo)(X Xo) o 的解为XXof (Xo)f (Xo)(f(xo) o)记为X1,一般地,记Xk 1Xkf(Xk)f(Xk)o,1,2,即为牛顿法公式。实验所用软件及版本:Matlab R2oi2b主要内容(要点):分别用对分法、普通迭代法、松弛迭代法、Altken迭代法、牛

7、顿切法线等5种方法,求方程t x sin( x)的正的近似根,0 t 1 .(建议取t 0.5 .)实验过程记录(含基本步骤、主要程序清单及异常情况记录等)1对分法syms x fx; a=0.001;b=3; fx=0.5*x-si n(x); x=(a+b)/2;k=0; ffx=subs(fx,x,x);if ffx=0;disp(the root is: ,nu m2str(x)else disp(k ak bk f(xk)while abs(ffx)0.0001 &ab;disp(num2str(k), ,num2str(a), ,num2str(b), ,num2str(ffx)

8、fa=subs(fx,x,a);ffx=subs(fx,x,x);if fa*ffx0.0001;disp(num2str(k), ,num2str(x), ,num2str(ffx); x=subs(gx,x,x);ffx=subs(fx,x,x);k=k+1;enddisp(num2str(k), ,num2str(x), ,num2str(ffx) fprintf(所求的解是:x=%f,迭代步数是:%d/n,x,k)【调试结果】0 1.1-0.341211 1.7824 -0.0864852 1.9554 0.0507393 1.8539 -0.0332384 1.9204 0.0206

9、775 1.879 -0.0133576 1.9057 0.00844337 1.8889 -0.0054168 1.8997 0.00344319 1.8928 -0.002201710 1.8972 0.001402811 1.8944 -0.0008958412 1.8962 0.0005712513 1.895 -0.0003646214 1.8958 0.0002325915 1.8953 -0.0001484216 1.8956 9.4692e-005所求的解是:x=1.895610迭代步数是:163. 松弛迭代法syms fx gx x dgx;gx=si n( x)*2;fx=

10、0.5*x-si n( x);dgx=diff(gx,x); x=1.8;k=0;ggx=subs(gx,x,x);ffx=subs(fx,x,x);dgxx=subs(dgx,x,x); disp(k x w)while abs(ffx)0.0001;w=1/(1-dgxx);disp(num2str(k), ,num2str(x), ,num2str(w) x=(1-w)*x+w*ggx;k=k+1;ggx=subs(gx,x,x);ffx=subs(fx,x,x);dgxx=subs(dgx,x,x); enddisp(num2str(k), ,num2str(x), ,num2str(

11、w) fprintf(所求的解是:x=%f,迭代步数是:dn,x,k)【调试结果】k x w0 1.8 0.687571 1.9016 0.606242 1.8955 0.60624所求的解是:x=1.895515迭代步数是:24. altke n 法syms fx gx x ;gx=s in( x)*2;fx=0.5*x-s in( x);disp(k x x1 x2)x=1.5;k=0;ffx=subs(fx,x,x);while abs(ffx)0.0001;u=subs(gx,x,x);v=subs(gx,x,u);disp(num2str(k), ,num2str(x), ,num2

12、str(u), ,num2str(v)x=v-(v-u)A2/(v-2*u+x);k=k+1;ffx=subs(fx,x,x);enddisp(num2str(k), ,num2str(x), ,num2str(u), ,num2str(v) fprintf(所求的解是:x=%f,迭代步数是:dn,x,k)【调试结果】k x x1 x20 1.5 1.995 1.82271 1.8672 1.9128 1.88422 1.8952 1.8957 1.89543 1.8955 1.8957 1.8954所求的解是:x=1.895494迭代步数是:35. 牛顿法syms x fx gx;fx=0.

13、5*x-si n(x);gx=diff(fx,x);x1=0.8;x2=1.5;x3=4;k=0;disp(k x1 x2 x3)fx仁 subs(fx,x,x1);fx2=subs(fx,x,x2);fx3=subs(fx,x,x3); gx1=subs(gx,x,x1);gx2=subs(gx,x,x2);gx3=subs(gx,x,x3);while abs(fx1)0.0001|abs(fx2)0.0001|abs(fx3)0.0001;disp( nu m2str(k), ,nu m2str(x1), ,nu m2str(x2), ,n um2str(x3) x仁 x1-fx1/gx

14、1;x2=x2-fx2/gx2;x3=x3-fx3/gx3;k=k+1;fx仁 subs(fx,x,x1);fx2=subs(fx,x,x2);fx3=subs(fx,x,x3); gx1=subs(gx,x,x1);gx2=subs(gx,x,x2);gx3=subs(gx,x,x3);enddisp(num2str(k), ,num2str(x1), ,num2str(x2), ,num2str(x3)fprintf(所求的解是:x1= %f,x2=%f,x3=%f,迭代步数:%dn,x1,x2,x3,k)【调试结果】k x1 x2 x30 0.8 1.5 41 -0.81335 2.07

15、66 1.61042 0.89679 1.9105 1.973 -1.7856 1.8956 1.89844 -1.9037 1.8955 1.89555 -1.8955 1.8955 1.8955所求的解是:x仁-1.895533,x2=1.895494,x3=1.895494迭代步数:5【情况记录】1. 对分法简单,然而,若丿在工是有几个零点时,只能算出其中一个零点,它不能求重根, 也不能求虚根.另一方面,即使,:1在上有零点,也未必有。这就限制了对分法的使用范围。对分法只能计算方程.的实根。对分法的收敛速度较慢,它常用来试探实根的分布区间,或求根的近似值.寻找满足定理条件的等价形式是难于

16、做到的。事实上,如果厂为-儿的零点,若能构造等价形式而1,由:的连续性,一定存在的邻域,其上有于-& 1,这时若初值;| - -八;丄迭代也就收敛了。由此构造收敛迭代式有两个要素,其一,等价形式,应满足门丨;其二,初值必须取自匚的充分小邻域,这个 邻域大小决定于函数,及做出的等价形式沁,。松弛法的加速效果明显,甚至不收敛的迭代函数经加速后也能获得收敛.松弛法要先计算(Xk),在使用中有时不方便,而 Altken公式,它的加速效果是十分明显的, 它同样可使不收敛的迭代格式获得收敛。5.牛顿法的收敛速度明显快于对分法。牛顿法也有局限性。牛顿法至少是二阶收敛的,而在重 根附近,牛顿法是线性收敛的,且

17、重根收敛很慢。另外,在牛顿法中,选取适当迭代初始值 是求解的前题,当迭代的初始值门在某根的附近时迭代才能收敛到这个根,有时会发生从一个 根附近跳向另一个根附近的情况,尤其在导数数值很小时。实验结果报告及实验总结:调试结果:1. 对分法所求的解是:x=1.895327迭代步数是:132. 普通迭代法所求的解是:x=1.895610迭代步数是:163. 松弛迭代法所求的解是:x=1.895515迭代步数是:24. altke n 法所求的解是:x=1.895494迭代步数是:35. 牛顿法所求的解是:x仁-1.895533,x2=1.895494,x3=1.895494迭代步数:5总结:在调试和运行的过程中,选取不同的等价方程和不同的初值, 得到的结果不同,精确度也有相 差异。但五种方法所得的数值相近,基本在误差允许范围内。且从运行结果知,相对而言,二分法和 普通迭代法的收敛速度过慢,不是最佳方法。松弛迭代法

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论