牛顿迭代法 matlab程序

上传人:hs****ma 文档编号:487256139 上传时间:2023-09-21 格式:DOCX 页数:4 大小:11.75KB
返回 下载 相关 举报
牛顿迭代法 matlab程序_第1页
第1页 / 共4页
牛顿迭代法 matlab程序_第2页
第2页 / 共4页
牛顿迭代法 matlab程序_第3页
第3页 / 共4页
牛顿迭代法 matlab程序_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《牛顿迭代法 matlab程序》由会员分享,可在线阅读,更多相关《牛顿迭代法 matlab程序(4页珍藏版)》请在金锄头文库上搜索。

1、牛顿迭代法matlab程序(解线性方程组)作者:佚名来源:转载发布时间:2009-3-7 16:55:53- +减小字体 增大字体1. 功能本程序采用牛顿法,求实系数高次代数方程汽乂)=(2户+(2尸-1+. +an 1x+an= 0(a声 0 )(1)的在初始值x0附近的一个根。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)+(x x)f (x)+(x x。)2 + . . 取其线性部分,作为非线性方程f(x)=0的近似方程,则有f(x)+f (x)(x x)=0设f (x#0则其解为xx0 f(x)/f (x)再把f(x)在x,附近展开成泰勒级数,也取其线性部分作f(x)=0的近似方程。若f(x,)0,则得x2=x,f(x,)/f (x)这样,得到牛顿法的一个迭代序列xn+1=xn f(xn)/f %)4. newton_1.m 程序function y=newt

3、on_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);n_f.m和 n_df.m g:function y=n_df(a,n,x)%方程一阶导数的函数y=0.0;for i=1:ny=y+a(i)*(n+1-i)*xA(n-i);endfunction y=n_df(a,n,x)y=0.0;for i=1:ny=y+a

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

5、n_1(a,n,x0,nn,eps1)y=1.368808107821373e+000i=function fp = newton_interpolation(x,y,p)% Script for Newtons Interpolation.% Muhammad Rafiullah Arain% Mathematics & Basic Sciences Department% NED University of Engineering & Technology Karachi% Pakistan.% % x and y are two Row Matrices and p is point o

6、f 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);endDf(1) = 1;c(1) = a(1);for j = 2 : nDf(j) = (p - x(j-1) .* Df(j-1);c(j) = a(j) .* Df(j);endfp=sum(c);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号