非线性方程组的数值算法研究

上传人:aa****6 文档编号:39227947 上传时间:2018-05-13 格式:DOC 页数:22 大小:582.50KB
返回 下载 相关 举报
非线性方程组的数值算法研究_第1页
第1页 / 共22页
非线性方程组的数值算法研究_第2页
第2页 / 共22页
非线性方程组的数值算法研究_第3页
第3页 / 共22页
非线性方程组的数值算法研究_第4页
第4页 / 共22页
非线性方程组的数值算法研究_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《非线性方程组的数值算法研究》由会员分享,可在线阅读,更多相关《非线性方程组的数值算法研究(22页珍藏版)》请在金锄头文库上搜索。

1、南南 昌昌 工工 程程 学学 院院毕毕 业业 论论 文文理学 系(院) 信息与计算科学 专业毕业论文题目 非线性方程组的数值算法研究 学生姓名 张浩浩 班 级 09 信息与计算科学 学 号 指导教师 禹海雄 完成日期 2013 年 04 月 131非线性方程组的数值算法研究非线性方程组的数值算法研究Study on numerical algorithms for nonlinear equations总计 毕 业 论 文 21 页表 格 2 个2摘要摘要论文讲解的是非线性方程的数值的求解方法,课本中我们接触到求解线性方程的方法比较多,相对于求解非线性方程组数值方法比较繁琐和计算量大,同时课本

2、上只是简单介绍非线性方程组数值的求解方法。我在图书馆查阅了资料和在老师的指导下,仔细研究把思路整理如下:我在这边论文就如何求解非线性数值的求解方法阐述了牛顿法、拟牛顿法、割线法三种方法来求解非线性方程组数值,并且通过了列举了题例可以比较更鲜明的可以看出 3 种方法的联系和特点。关键词:Newton 法、迭代法、拟 Newton 法。.3AbstractThe paper explained that the method of solving nonlinear equations numerically, text we come into contact with the method o

3、f solving linear equation more, compared with the numerical method for solving nonlinear equations is complicated and large amount of calculation, at the same time the textbook only briefly method for solving nonlinear equations. I looked up information and under the guidance of the teacher in the l

4、ibrary, a careful study of the ideas as follows: I how to solve nonlinear numerical solution method described the Newton method, for solving nonlinear equations of the numerical quasi-Newton method, secant method three methods in this paper, and through the examples cited can be more clear we can se

5、e that the relationship and characteristics of 3 kinds of methods.Keywords: Newton method, iterative method, quasi Newton method.4第一章第一章 绪论绪论1.1了解非线性方程组的一般形式如下:1123123,.,0,.,.,0,nnnfx x xxfx x xx 可以看出是在空间的实值函数。1,2,3,.,if innR再用向量转换下可以得到:,x=,0= F x 1 .nfxfx 1 .nxx 0 . . . 0 此时可以把方程换成:。 0F x (1.1)把 F

6、可以看做在区域内展开的非线性映像,表示为nR:nnFDRR1.2下面来介绍简单的边值问题:, 。 ,xf t s01t 0,xa 1x(1.2)此时定义 f 在 D=上二阶可微连续,,|01,t xtx 现在求解(1.2)上 x 的数值。我们用差分方法离散化得到:5, j=0,1,2,3, 、 、n+1 ,1,1hnjtjh在得到:j+1,2, 、 、 、n, 11212,jjjjx txxxh在转化矩阵又可以得到:210 12. 0.1 .12A 在从映像转换成:, 2xh1,.nxx方程(1.2)转化为:Ax+=0 x本文将介绍求解非线性方程组的牛顿法,迭代法,牛顿法,这是本人对非线性方程

7、数值求解的认识,我会使用这些方法并为为开展进一步研究。6第二章、求解非线性方程组的第二章、求解非线性方程组的牛顿法牛顿法2.1 牛顿法的引入与介绍牛顿法的引入与介绍在学习中关于方程的求解这种题型接触的太多了,作为线性方 0f x f x程函数,解法多样也很容易求解值。我们来比较一下牛顿法,牛顿法简单的来说其实也是一种线性化方法,他的理念就是把非线性方程转化成某种类型的线性方 f x程求解 x 的值。非线性方程不过是线性方程的扩展,非线性方程组就是在此基础上加以延伸。下面我们来介绍了解一下牛顿法的理论:我们看下例题:1123123,.,0,.,.,0,nnnfx x xxfx x xx (2.1

8、)从上面非线性方程组我们可以看出,. 是的多元函数,这是我1fnf1,.nxx们也可以用向量把它转化为11,.,.,TTn nnxxxRFff我们同时把他转化为: 0F x (2.2)可以看出时,至少有一个变量是在的非线性函数,2n 1,.,if in1,.,ix in我们这时(2.1)就可以看作非线性方程组,非线性方程组的求解实际上就是 n=1 求根的应用。也就是把单一变量的函数转化为向量函数,这个时候就可以 f x F x用求解单变量的方法来求解非线性方程组(2.2) 。若果知道方程组=0 的一个近 F x似根,再用函数的分量在用多元函数泰勒 1,.,Tkkk nxxx F x 1,.,i

9、fxin kx的方法展开,提取线性方程就可以得到:7, kkkF xF xFxxx令, 0F x 得到:(2.3) kkkF xFxxx 其中: 1111222212212.nnnnnfxfxfx xxxfxfxfx F xxxxfxfxfx xxx (2.4)这时可以把(2.4)作为雅克比矩阵, (2.3)的线性方程组的解我们记作为,1kx就可以得到:(k=0,1,2,.) 。 (2.5) 11kkkkxxxFxF x这就是我们所说的求解非线性方程组(2.5)的牛顿法。从上面的实例我们可以看得出牛顿法求解非线性方程的主要理论是用在(k=0,1,2,.)的基础上进行迭代计算。我们这时所 11k

10、kkkxxFxF x要做的就是计算出 F(x)的雅克比矩阵,通过得到它的逆,直 Fx Fx 1Fx到达到所需要的精度的范围内才停止迭代。_xk2.2 牛顿法的算法牛顿法的算法牛顿法算法如下:第一步:首先我们把所要求解的非线性方程组定义为,并为之确定精度。 F x_xk第二步:把转化为雅克比矩阵,得到。求解方法如下: F x Fx8111,.,_,.,.,.,.,.,_ijnijnijnjfxxxxfxxxfxxxxx第三步:重复第二步方法,求解雅克比矩阵的逆。另外把乘以单 Fx 1Fx Fx位矩阵,我们可以用单位矩阵转换求解的逆用来保存。1001 K M OM L Fx第四步:与的相乘 Fx

11、Fx第五步:再用 (k=0,1,2,.)来迭代。 11kkkkxxxFxF x第六步:最后我们注意的时精度,其精度时,我们需要重复 25 次,一直_ixkxk使精度达到最小(精度)时停止迭代,最后的迭代结果为。_xk_ixk 2211 11_,.,iiii innxkxxxx2.3 牛顿法代码程序编程牛顿法代码程序编程最后介绍代码的编程:#include #include #include #include #define f0(x1,x2) (x1+2*x2-3) #define f1(x1,x2) (2*x1*x1+x2*x2-5) #define x_ 0. #define matrix

12、Num 2 double *matrixF2(double *x); int y=0; void main() int i,j,n;double p,*x;double *b; double *matrixF; /矩阵 Fdouble *matrixF_; /矩阵 F 的雅可比矩阵的逆 b=(double *)malloc(matrixNum); matrixF=(double *)malloc(matrixNum);matrixF_=(double *)malloc(matrixNum*matrixNum);9cout*(x+i);do p=0.0; for(i=0;ix_); cout“停

13、止迭代,最终迭代结果为“*x,*(x+1)“endl;delete matrixF;delete matrixF_;getch(); double *matrixF2(double *x) int i,j;double t; double *matrixF1; /矩阵 F 的雅可比矩阵double *matrixF2; /矩阵 F 的雅可比矩阵的逆 matrixF1=(double *)malloc(matrixNum*matrixNum);matrixF2=(double *)malloc(matrixNum*matrixNum);for(i=0;imatrixNum;i+)for(j=0;jmatrixNum;j+) if(i=j)*(matrixF2+i*matrixNum+j)=1; else *(matrixF2+i*matrixNum+j)=0;*matrixF1=(f0(*x+x_),*(x+1)-f0(*x,*(x+1)/x_;*(ma

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

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