数值分析作业-陈曦

数值分析作业-陈曦

ID:41707907

大小:59.05 KB

页数:5页

时间:2019-08-30

数值分析作业-陈曦_第1页
数值分析作业-陈曦_第2页
数值分析作业-陈曦_第3页
数值分析作业-陈曦_第4页
数值分析作业-陈曦_第5页
资源描述:

《数值分析作业-陈曦》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、五种迭代法解非线性方程编程实践张天翼(学院:土木工程学院、学号:2015210056)摘要:使用二分法、牛顿法、简易牛顿法、steffensen法和割线法共五种迭代法解非线性方程,利用MATLAB软件,对上述五种算法进行编程实践。并通过计算结果、收敛速度和使用时间,对五种算法就行对比和优化。最后使用若干个实例行进数值实验报告的编写。关键词:非线性方程;使用对分法;牛顿法;简易牛顿法;steffensen法;割线法;数值实验引言在科学研究和科学计算中常常碰到非线性方程求解问题,非线性方程的解一般不能解析求出,通过计算机使用MATLAB软件,可以対非

2、线性方程进行数值解的求解,下面将介绍五种迭代法在MATLAB里的实现程序。2五种算法在MATLAB中的程序实现2.1二分法2.1.1简介若f是区间[a,b]的连续函数,且f(a)f(b)<0,则f在[a,b]内必有一个零点。因为f(a)f(b)<0,所以函数f在区间[a,b]上改变符号,因此它在这个区间内至少存在一个零点。这是中值定理的结论,因此利用区间减半的方法对这一数值计算思想进行实践运算。2.1.2MATLAB程序代码formatlonga=input('闭区间下限');b二input('闭区间上限');M=input('最大循环次数');

3、f二inline('x"2-cos(x)')%输入函数u=f(a),v=f(b);fork=l:M;e=b~a,e=e/2,c=a+e,w=f(c);辻abs(e)<0.0000011

4、abs(w)<0.000001;elseifsign(w厂二sign(u);b=c,v=w;elsea=c,u=w;kendendc2.2牛顿法2.2.1简介牛顿法是一种能在许多不同情况下应用的通用过程。特別的,当用它来求实变量实值函数零点时,常常被成为牛顿一拉弗森迭代。由于其收敛是二次的而不是线形或超线性的,所以通常牛顿法对分法和割线法要快。一旦二次收敛变得有效

5、时,即牛顿法序列的值能充分地接近根时,其收敛很快以至于仅仅再需要几个数值即可。不完美的是,牛顿法不能保证总是收敛,所以实际计算中常常将其与其他较慢的方法结合形成一种数值上整体收敛的混合方法。假设我们有一个函数f,其零点由数值计算得出。设r是f的零点,而x是r的一个近似。若f''存在并且连续,则由泰勒定理,得0=f(r)=f(x+h)=f(x)+hf,(x)+0(h2)其中h=r-Xf若//较小(即兀在厂附近),则有理由略去0(/22)项,并且在余下的方程中求力,其结果是若兀是厂的一个近似,则-爲应该是厂的一个更好的近似。牛顿从厂的一个估计。兀开始

6、,然后归纳定义.Sif-需20)2.1.2MATLAB程序代码formatlong,symsxy二x"2-cos(x)%输入函数input('最大循环次数');v二cliff(y);x=input(,计算起始位置');fork=l:Mu=subs(y,'x‘,x);v=subs(v,'x‘,x);ifabs(u)<0.00001abs(u/v)<0.00001;elsex二x-u/v;kendendx2.3简易牛顿法2.3.1简介简易牛顿法与牛顿法大致思想相同,都是运用切线和坐标轴相交进行迭代运算,不同的是简易牛顿法在进行迭代运算时只取用了初始值

7、的导函数值,使得算法整体运算量相对较小。具体来说为克服牛顿法无法计算零点处不可导的缺点,将函数的导数厂(心),替换为初始点时的导数,然后在进行迭代。即:心+1心)F匕。)2.3.2MATLAB程序代码formatlong,symsxy二x"2-cos(x)%输入函数x=input('计算起始位置')M二input('最大循环次数');fork=l:Mu=subs(y,,x,,x);ifabs(u)<=0.00001;elsex二x-u/2;kendendx2.4stenffensen法2.4.1简介Steffensen算法是为了克服用牛顿迭代法时

8、存在函数不可导的这一缺点而提出的另一种迭代法,同时也避免了进行割线法迭代时因为两个值之间相差很近时造成的算法误差。其迭代公式为:X^i=xn-f(xn)/g(xn)其中g(x)=[f(x+/(%))-/(%)]//(x)2.4.2MATLAB程序代码formatIong,symsxy二x"2-cos(x)%输入函数x=input('计算起始位置');M二input('最大循环次数');fork=l:Mifabs(x)<0.00001elseu=subs(y,'x',x);v=subs(y,,x,,x+u);x二x-u2/(v~u);kendend

9、x2.5割线法2.5.1算法介绍及实现方法牛顿法仍然存在缺点,如局部收敛,需要求函数零点导数等。因此为克服存在函数不可导的这一缺点,人们

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。