ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:72.07KB ,
资源ID:11778212      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11778212.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(用牛顿法求解非线性方程.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

用牛顿法求解非线性方程.docx

1、用牛顿法求解非线性方程实验七 非线性方程求根一、实验目标1. 掌握常用的非线性方程求根算法(二分法、不动点迭代法与Newton法)及加速技术(Aitken加速与Steffsen加速).2. 会编写计算机程序实现给定迭代函数的迭代算法及其加速;掌握迭代算法的精度控制方法.二、实验问题求代数方程的实根.三、实验要求1方程有一个实根:. 将方程以下面六种不同方式等价地改写,构造迭代格式,计算:(a), (b), (c),(d) (e), (f).2. 对每一种迭代格式,编制一个程序进行运算,观察每种格式的敛散情况;用事后误差估计来控制迭代次数,并且输出迭代的次数;观察不同初值的结果.3. 从理论上分

2、析各种格式的收敛性及收敛阶.4. 将收敛较慢的一种格式分别用Atken 方法及 Steffsen 方法加速,通过输出结果了解加速效果.5. 将一种不收敛的方法用Steffsen 方法加速得到收敛的迭代.附录一:数值分析实验报告(模板)【实验课题】 用牛顿迭代法求非线性方程根 【实验目标】明确实验目标1. 掌握常用的非线性方程求根算法(二分法、不动点迭代法与Newton法)及加速技术(Aitken加速与Steffsen加速).2. 会编写计算机程序实现给定迭代函数的迭代算法及其加速;掌握迭代算法的精度控制方法.3探索不同方式改写方程的收敛程度【理论概述与算法描述】1.牛顿法 设已知方程f(x)=

3、0有近似根 xk,将函数f(x)在点xk展开,有 f(x)=f(xk)+f(xk)(x-xk),于是方程可表示为 f(xk)+f(xk)(x-xk)=0, 这是个线性方程,记其根为x(k+1), 则x(k+1)=xk-f(xk)/f(xk),这就是牛顿迭代法求根.2. 埃特金加速收敛方法 设是根的某个近似值,用迭代一次得,而由微分中值定理,有 其中介于和之间。假设改变不大,近似地取某个近似值L,则有 若将校正值再迭代一次,又得由于将它与前面的式子联立,消去未知的L,有 由此推知 ,记 称为埃特金加速方法。3.斯特芬森迭代法 将埃特金加速技巧与不动点迭代结合,则可得到如下的迭代法 即为斯特芬森迭

4、代法【实验问题】 1.求代数方程的实根.2方程有一个实根:. 将方程以下面六种不同方式等价地改写,构造迭代格式,计算:(a), (b), (c),(d) (e), (f).3. 对每一种迭代格式,编制一个程序进行运算,观察每种格式的敛散情况;用事后误差估计来控制迭代次数,并且输出迭代的次数;观察不同初值的结果.4. 从理论上分析各种格式的收敛性及收敛阶.5. 将收敛较慢的一种格式分别用Atken 方法及 Steffsen 方法加速,通过输出结果了解加速效果.6. 将一种不收敛的方法用Steffsen 方法加速得到收敛的迭代.【实验过程与结果】1.用matlab编程计算代数方程的根2.分别编写6

5、个迭代法编程,对结果进行分析【结果分析、讨论与结论】迭代公式1:x1 = 2.0000 1.5000 2.0000 1.5000 2.0000 1.5000 2.0000 1.5000 2.0000 1.5000 2.0000 1.5000 2.0000 1.5000 2.0000 1.5000 2.0000 1.5000 2.0000 1.5000迭代公式2:x2 = 1.0e+142 * 0.0000 0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -1.4947 -Inf -Inf -Inf -Inf -Inf

6、 -Inf -Inf -Inf -Inf -Inf迭代公式3:x3 = 2.0000 3.3166 3.8665 4.0743 4.1500 4.1773 4.1871 4.1906 4.1919 4.1923 4.1925 4.1926 4.1926 4.1926 4.1926 4.1926 4.1926 4.1926 4.1926 4.1926迭代公式4:x4 = 2.0000 5.0000 0.2273 -1.6959 -40.3095 0.0031 -1.6667 -22.5018 0.0099 -1.6667 -22.5185 0.0099 -1.6667 -22.5185 0.00

7、99 -1.6667 -22.5185 0.0099 -1.6667 -22.5185迭代公式5:x5 = 2.0000 2.3452 2.2654 2.2819 2.2784 2.2791 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790迭代公式6:x6 = 2.0000 2.3333 2.2806 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.279

8、0 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790从上述的运算结果可以看出,迭代公式1、2、4不收敛,3虽然收敛,但与其他迭代法的结果差异太大,对5和6分别用埃特金加速和斯特芬森迭代得到结果如下:对于5埃特金加速结果:B = 2.0000 2.2804 2.2791 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 0斯特芬森迭代结果:x = 2.0000 2.1547 2.2792 2

9、.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790 2.2790对于6埃特金加速结果:B = 2.0000 2.2878 2.2790 2.2790 2.2790 2.2790斯特芬森迭代结果:x = 2.0000 2.1544 2.2838 2.27902.2790从以上结果可以看出,埃特金加速方法和斯特芬森迭代法确实可以加快收敛速度,且在此题的情况下,两种方法的加速效果差不多,但埃特金加速方法较斯特芬森迭代法来说更为简单易

10、理解,运算步骤也少一些,因此对于此题,我们可以选用埃特金加速方法。【附程序】function k,x,da,g= newton(x0,tol)k=1;g1=fun1(x0);g2=fun2(x0);x1=x0-g1/g2;while abs(x1-x0)tol x0=x1; g1=fun1(x0); g2=fun2(x0); k=k+1; x1=x0-g1/g2;endk;x=x1;da=abs(x1-x0)/2;g=fun1(x);endfunction g1=fun1(x)g1=x3-3*x-5;endfunction g2=fun2(x)g2=3*x2-3;endfunction g1=

11、fun1(x)g1=x3-3*x-5;endfunction x=Aitken(A);n=length(A);x=zeros(n,1);t=0;x(1)=A(1);for i=1:n-2 x(i+1)=A(i)-(A(i+1)-A(i)2)/(A(i)-2*A(i+1)+A(i+2);endfunction x=Steffsen(A,B)n=length(B);x=zeros(n,1);x(1)=B(1);for i=2:n x(i)=A(i)-(B(i-1)-A(i)2)/(B(i)-2*B(i-1)+A(i);end%构造迭代算法x=(3*x+5)/(x2)function x=dieda

12、i1(x0,tol,N)%x0 是初值,tol为迭代精度,N是迭代最大次数x=zeros(N,1);x(1)=x0;k=1;t=0;while k=N for i=2:N x(i)=(3*x(i-1)/(x(i-1)2); end k=k+1; t=x(i)-x(i-1); if abs(t)=tol break; endend%构造迭代算法x=(x3-5)/3function x=diedai2(x0,tol,N)%x0 是初值,tol为迭代精度,N是迭代最大次数x=zeros(N,1);x(1)=x0;k=1;t=0;while k=N for i=2:N x(i)=(x(i-1)3-5)

13、/3; end k=k+1; t=x(i)-x(i-1); if abs(t)=tol break; endend%构造迭代算法x=(3*x+5)(1/3)function x=diedai3(x0,tol,N)%x0 是初值,tol为迭代精度,N是迭代最大次数x=zeros(N,1);x(1)=x0;k=1;t=0;while k=N for i=2:N x(i)=(3*x(i-1)+5)(1/2); end k=k+1; t=x(i)-x(i-1); if abs(t)=tol break; endend%构造迭代算法x=5/(x2-3)function x=diedai4(x0,tol,

14、N)%x0 是初值,tol为迭代精度,N是迭代最大次数x=zeros(N,1);x(1)=x0;k=1;t=0;while k=N for i=2:N x(i)=5/(x(i-1)2-3); end k=k+1; t=x(i)-x(i-1); if abs(t)=tol break; endend%构造迭代算法x=sqrt(3+5/x)function x=diedai5(x0,tol,N)%x0 是初值,tol为迭代精度,N是迭代最大次数x=zeros(N,1);x(1)=x0;k=1;t=0;while k=N for i=2:N x(i)=sqrt(3+5/x(i-1); end k=k+1; t=x(i)-x(i-1); if abs(t)=tol break; endend%构造迭代算法x=x-(x3-3*x-5)/(3*(x2-1)function x=diedai6(x0,tol,N)%x0 是初值,tol为迭代精度,N是迭代最大次数x=zeros(N,1);x(1)=x0;k=1;t=0;while k=N for i=2:N x(i)=x(i-1)-(x(i-1)3-3*x(i-1)-5)/(3*(x(i-1)2-1); end k=k+1; t=x(i)-x(i-1); if abs(t)=tol break; endend

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1