MATLAB牛顿迭代法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

matlab代码1.定义函数functiony=f(x)y=f(x);%函数f(x)的表达式endfunctionz=h(x)z=h(x);%函数h(x)的表达式end2.主程序x=X;%迭代初值i=0;%迭代次数计算whilei=100%迭代次数x0=X-f(X)/h(X);%牛顿迭代格式ifabs(x0-X)0.01;%收敛判断X=x0;elsebreakendi=i+1;endfprintf('\n%s%.4f\t%s%d','X=',X,'i=',i)%输出结果牛顿迭代法(matlab)来源:徐力的日志背景:牛顿迭代法(Newton'smethod)又称为牛顿-拉夫逊方法(Newton-Raphsonmethod),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。设r是f(x)=0的根,选取x0作为r初始近似值,过点(x0,f(x0))做曲线y=f(x)的切线L,L的方程为y=f(x0)+f'(x0)(x-x0),求出L与x轴交点的横坐标x1=x0-f(x0)/f'(x0),称x1为r的一次近似值。过点(x1,f(x1))做曲线y=f(x)的切线,并求该切线与x轴交点的横坐标x2=x1-f(x1)/f'(x1),称x2为r的二次近似值。重复以上过程,得r的近似值序列,其中x(n+1)=x(n)-f(x(n))/f'(x(n)),称为r的n+1次近似值,上式称为牛顿迭代公式。现用牛顿迭代法(matlab)求方程x^3-2x-1=0的根(-1)。主函数:function[x,k]=Newtondd(f,x0,e)%%牛顿迭代法,求f(x)=0在某个范围内的根。%%f为f(x),x0为迭代初值,e为迭代精度。k为迭代次数x_a=x0;x_b=x_a-subs(f,x_a)/subs(diff(f),x_a);k=1;whileabs(x_a-x_b)e,k=k+1;x_a=x_b;x_b=x_a-subs(f,x_a)/subs(diff(f),x_a);endx=x_b;运行:symsx;f=(x^3-2*x-1)...

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功