牛顿迭代法matlab程序解线性方程组_第1页
牛顿迭代法matlab程序解线性方程组_第2页
牛顿迭代法matlab程序解线性方程组_第3页
牛顿迭代法matlab程序解线性方程组_第4页
全文预览已结束

下载本文档

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

文档简介

1、牛顿迭代法matlab程序(解线性方程组)作者:佚名来源:转载发布时间:2009-3-7 16:55:53E日 减小字体王增大字体1.功能本程序采用牛顿法,求实系数高次代数方程f(x)=aoX,+aiXn-1 + -+an-iX+an= o(a,*O )(1)的在初始值Xo附近的一个根。2使用说明(1)函数语句Y=NEWTON_1(A,N,X0,NN, EPS1)调用 M 文彳newton_1.m。(2)参数说明An+1元素的一维实数组,输入参数,按升塞存放方程系数。N整变量,输入参数,方程阶数。X0实变量,输入参数,初始迭代值。NN整变量,输入参数,允许的最大迭代次数。EPS1实变量,输入参

2、数,控制根的精度。3.方法简介解非线性方程f(x)=0的牛顿法是把非线性方程线性化的一种近似方法。把f(x)在x0点附近展开成泰勒级数f(x)=f(x 0)+(x x0)f ' (%)+(x 为)2+取其线性部分,作为非线性方程f(x)=0的近似方程,则有f(x 0)+f ' %)(x %)=0设f'(x0)K0则其解为X1=x0f(x°)/f'(x0)再把f(x)在X1附近展开成泰勒级数,也取其线性部分作 f(x)=0的近似方程。若f(X1)K。则得X2=xf(X1)/f' (X1)这样,得到牛顿法的一个迭代序列xn+1=xn-f(xn)/f

3、" (xn)4* newton_1.m!序function y=newton_1(a,n,x0,nn,epsx(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(i>nn)error( / nn is full / );return;end end y=x(i); i程序中调用的n_f.m和n_df.m文件如下: function y=n_df(a,n,x)%方程一阶导数的函数y=0.0;for i=1:ny=y

4、+a(i)*(n +1-i)*xA(n-i);endfunction y=n_df(a,n,x)y=0.0;for i=1:ny=y+a(i)*(n + 1 -i)*x?(n-i);end5 .程序附注(1)程序中调用n_f.m和n_df.m文件。n_fm是待求根的实数彳t数方程的函数,n_f.m是方程一阶导数的函数。由使用者自己编写。(2)牛顿迭代法的收敛速度:如果f(x)在零点附近存在连续的二阶微商,卫是f(x)的一个重零点,且初始值xo充分接近于那么牛顿迭代是收敛的,其收 敛速度是二阶的,即平方收敛速度。6 .例题用牛顿法求下面方程的根f(x)=x 3+2x2+10x-20y=y+a(i

5、)*(n + 1-i)*xA(n-i);7 .运行结果>>a=1,2,10,-20;>>n=3 ;>>x0=1 ;>>nn=1000;>>eps1=1e-8;>>y=newton_1(a,n,x0,nn,eps1)y=1.368808107821373e+000i=6function fp = newton_interpolation(x,y,p)% Script for Newton's Interpolation.% Muhammad Rafiullah Arain% Mathematics & Bas

6、ic Sciences Department% NED University of Engineering & Technology - Karachi% Pakistan.% x and y are two Row Matrices and p is point of interpolation% Example% >> x=1,2,4,7,8% >> y=-9,-41,-189,9,523% >> newton_interpolation(x, y, 5)% OR% >> a = newton_interpolation(x, y, 5)n = length(x);a(1) = y(1);for k = 1 : n - 1d(k, 1) = (y(k+1) - y(k)/(x(k+1) - x(k);endfor j = 2 : n - 1for k = 1 : n - jd(k, j) = (d(k+1, j - 1) - d(k, j - 1)/(x(k+j) - x(k); endenddfor j = 2 : na(j) = d(1, j

温馨提示

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

评论

0/150

提交评论