牛顿迭代法-matlab程序(解线性方程组)(共4页).doc
《牛顿迭代法-matlab程序(解线性方程组)(共4页).doc》由会员分享,可在线阅读,更多相关《牛顿迭代法-matlab程序(解线性方程组)(共4页).doc(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上牛顿迭代法 matlab程序(解线性方程组)作者:佚名来源:转载发布时间:2009-3-7 16:55:53减小字体 增大字体 1功能本程序采用牛顿法,求实系数高次代数方程f(x)=a0xn+a1xn-1+an-1x+an=(an ) (1)的在初始值x0附近的一个根。2.使用说明(1)函数语句Y=NEWTON_1(A,N,X0,NN,EPS1)调用M文件newton_1.m。(2)参数说明A n+1元素的一维实数组,输入参数,按升幂存放方程系数。N 整变量,输入参数,方程阶数。X0 实变量,输入参数,初始迭代值。NN 整变量,输入参数,允许的最大迭代次数。EPS1实
2、变量,输入参数,控制根的精度。3方法简介解非线性方程f(x)=0的牛顿法是把非线性方程线性化的一种近似方法。把f(x)在x0点附近展开成泰勒级数f(x)=f(x0)+(xx0)f(x0)+(xx0)2 +取其线性部分,作为非线性方程f(x)=0的近似方程,则有f(x0)+f(x0)(xx0)=0设f(x0)0则其解为x1=x0f(x0)/f(x0)再把f(x)在x1附近展开成泰勒级数,也取其线性部分作f(x)=0的近似方程。若f(x1)0,则得x2=x1f(x1)/f(x1)这样,得到牛顿法的一个迭代序列xn+1=xnf(xn)/f(xn)4newton_1.m程序function y=new
3、ton_1(a,n,x0,nn,eps1)x(1)=x0;b=1;i=1;while(abs(b)eps1*x(i)i=i+1;x(i)=x(i-1)-n_f(a,n,x(i-1)/n_df(a,n,x(i-1);b=x(i)-x(i-1);if(inn)error(nn is full);return;endendy=x(i);i程序中调用的n_f.m和n_df.m文件如下:function y=n_df(a,n,x)%方程一阶导数的函数y=0.0;for i=1:ny=y+a(i)*(n+1-i)*x(n-i);endfunction y=n_df(a,n,x)y=0.0;for i=1:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 牛顿 迭代法 matlab 程序 线性方程组
限制150内