《非线性方程组的数值算法研究》-公开DOC·毕业论文

上传人:zhuma****mei2 文档编号:136315997 上传时间:2020-06-27 格式:DOC 页数:21 大小:528KB
返回 下载 相关 举报
《非线性方程组的数值算法研究》-公开DOC·毕业论文_第1页
第1页 / 共21页
《非线性方程组的数值算法研究》-公开DOC·毕业论文_第2页
第2页 / 共21页
《非线性方程组的数值算法研究》-公开DOC·毕业论文_第3页
第3页 / 共21页
《非线性方程组的数值算法研究》-公开DOC·毕业论文_第4页
第4页 / 共21页
《非线性方程组的数值算法研究》-公开DOC·毕业论文_第5页
第5页 / 共21页
点击查看更多>>
资源描述

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

1、南 昌 工 程 学 院毕 业 论 文 理学 系(院) 信息与计算科学 专业毕业论文题目 非线性方程组的数值算法研究 学生姓名 班 级 09信息与计算科学 学 号 指导教师 完成日期2013年04月13目录摘要3Abstract4第一章 绪论5第二章、求解非线性方程组的几种方法62.1、牛顿法62.1.1牛顿法的引入与介绍62.1.2牛顿法的算法82.1.3牛顿法代码程序编程82.2、拟牛顿法112.2.1拟牛顿法的引入与介绍112.2.2拟牛顿法的算法122.2.3拟牛顿法的题例分析122.3、割线法142.3.1割线法的引入与介绍142.3.2割线法的总结陈述153.3.3割线法题例分析16

2、结束语18参考文献19致谢词20非线性方程组的数值算法研究Study on numerical algorithms for nonlinear equations总计 毕 业 论 文 21 页表 格 2 个 摘要论文讲解的是非线性方程的数值的求解方法,课本中我们接触到求解线性方程的方法比较多,相对于求解非线性方程组数值方法比较繁琐和计算量大,同时课本上只是简单介绍非线性方程组数值的求解方法。我在图书馆查阅了资料和在老师的指导下,仔细研究把思路整理如下:我在这边论文就如何求解非线性数值的求解方法阐述了牛顿法、拟牛顿法、割线法三种方法来求解非线性方程组数值,并且通过了列举了题例可以比较更鲜明的可

3、以看出3种方法的联系和特点。关键词:Newton法、迭代法、拟Newton法。. AbstractThe paper explained that the method of solving nonlinear equations numerically, text we come into contact with the method of solving linear equation more, compared with the numerical method for solving nonlinear equations is complicated and large amou

4、nt 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 library, a careful study of the ideas as follows: I how to solve nonlinear numerical solution method described the Newton method,

5、 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 see that the relationship and characteristics of 3 kinds of methods.Keywords: Newton method, iterative method, quasi Newton method

6、. 第一章 绪论 我们先了解非线性方程组的一般形式如下:我们可以看出是在空间的实值函数。我们再用向量转换下可以得到:,x=,0=我们此时可以把方程换成:。 (1)我们可以把F可以看做在区域内展开的非线性映像,表示为下面我们来介绍简单的边值问题: , 。 (2)我们此时定义f在D=上二阶可微连续,现在我们求解(2)上x的数值。我们用差分方法离散化得到: , j=0,1,2,3,、n+1 ,在得到: j+1,2,、n,我们在转化矩阵又可以得到:A=在从映像转换成:,方程(2)转化为:Ax+=0本论文将介绍求解非线性方程组的牛顿法,迭代法,牛顿法,这是本人对非线性方程数值求解的认识,我会使用这些方法

7、并为为开展进一步研究。第二章、求解非线性方程组的几种方法2.1、牛顿法2.1.1牛顿法的引入与介绍我们在学习中关于方程f(x)=0的求解这种题型接触的太多了,f(x)作为线性方程函数,解法多样也很容易求解值。我们来比较一下牛顿法,牛顿法简单的来说其实也是一种线性化方法,他的理念就是把非线性方程f(x)转化成某种类型的线性方程求解x的值。非线性方程不过是线性方程的扩展,非线性方程组就是在此基础上加以延伸。下面我们来介绍了解一下牛顿法的理论:我们看下例题: (1)从上面非线性方程组我们可以看出,. 是的多元函数,这是我们也可以用向量把它转化为 我们同时把他转化为: (2)我们可以看出时,至少有一个

8、变量是在的非线性函数,我们这时(1)就可以看作非线性方程组,非线性方程组的求解实际上就是n=1求根的应用。也就是把单一变量的函数转化为向量函数,这个时候就可以用求解单变量的方法来求解非线性方程组(2)。若果知道方程组=0的一个近似根,再用函数的分量在用多元函数泰勒的方法展开,提取线性方程就可以得到:,我们令,得到: (3)其中 (4)我们这时可以把(4)作为雅克比矩阵,(3)的线性方程组的解我们记作为,就可以得到: (k=0,1,2,.)。 (5)这就是我们所说的求解非线性方程组(2)的牛顿法。下面我们来简单介绍非线性方程组求解牛顿法的算法:从上面的实例我们可以看得出牛顿法求解非线性方程的主要

9、理论是用在(k=0,1,2,.)的基础上进行迭代计算。我们这时所要做的就是计算出F(x)的雅克比矩阵,通过得到它的逆,直到达到所需要的精度的范围内才停止迭代。2.1.2牛顿法的算法牛顿法算法如下:1首先我们把所要求解的非线性方程组定义为,并为之确定精度。2把转化为雅克比矩阵,得到。求解方法如下:3重复第二步方法,求解雅克比矩阵的逆。另外把乘以单位矩阵,我们可以用单位矩阵转换求解的逆用来保存。4与的相乘5再用 (k=0,1,2,.)来迭代。6.最后我们注意的时精度,其精度时,我们需要重复25次,一直使精度达到最小(精度)时停止迭代,最后的迭代结果为。2.1.3牛顿法代码程序编程最后我们介绍代码的

10、编程:#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.000001#define matrixNum 2double *matrixF2(double *x);int y=0;void main() int i,j,n; double p,*x; double *b;double *matrixF; /矩阵F double *matrixF_; /矩阵F的雅可比矩阵的逆 b=(double *)malloc(matri

11、xNum);matrixF=(double *)malloc(matrixNum); matrixF_=(double *)malloc(matrixNum*matrixNum); cout请输入初值:;for(i=0;i*(x+i); do p=0.0;for(i=0;imatrixNum;i+) *(b+i)=0;*matrixF=f0(*x,*(x+1); *(matrixF+1)=f1(*x,*(x+1); matrixF_=matrixF2(x);for(i=0;imatrixNum;i+)for(j=0;jmatrixNum;j+)*(b+i)+=*(matrixF_+i*matr

12、ixNum+j)*(*(matrixF+j); *(x+i)=*(x+i)-*(b+i);cout*(x+i) ; coutendl; for(i=0;ix_);cout停止迭代,最终迭代结果为*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;imatri

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

当前位置:首页 > 学术论文 > 毕业论文

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