非线性方程组研究毕业论文.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
非线性方程组研究毕业论文 第一章 绪论 1.1了解非线性方程组的一般形式如下: 可以看出是在空间的实值函数。 再用向量转换下可以得到: ,x=,0= 此时可以把方程换成: 。 (1.1) 把F可以看做在区域内展开的非线性映像,表示为 1.2下面来介绍简单的边值问题: , 。 (1.2) 此时定义f在D=上二阶可微连续, 现在求解(1.2)上x的数值。 我们用差分方法离散化得到: , j=0,1,2,3,、、n+1 , 在得到: j+1,2,、、、n, 在转化矩阵又可以得到: 在从映像转换成: , 方程(1.2)转化为: Ax+=0 本文将介绍求解非线性方程组的牛顿法,迭代法,牛顿法,这是本人对非线性方程数值求解的认识,我会使用这些方法并为为开展进一步研究。 第二章、求解非线性方程组的牛顿法 2.1牛顿法的引入与介绍 在学习中关于方程的求解这种题型接触的太多了,作为线性方程函数,解法多样也很容易求解值。我们来比较一下牛顿法,牛顿法简单的来说其实也是一种线性化方法,他的理念就是把非线性方程转化成某种类型的线性方程求解x的值。非线性方程不过是线性方程的扩展,非线性方程组就是在此基础上加以延伸。 下面我们来介绍了解一下牛顿法的理论: 我们看下例题: (2.1) 从上面非线性方程组我们可以看出,... 是的多元函数,这是我们也可以用向量把它转化为 我们同时把他转化为: (2.2) 可以看出时,至少有一个变量是在的非线性函数,我们这时(2.1)就可以看作非线性方程组,非线性方程组的求解实际上就是n=1求根的应用。也就是把单一变量的函数转化为向量函数,这个时候就可以用求解单变量的方法来求解非线性方程组(2.2)。若果知道方程组=0的一个近似根,再用函数的分量在用多元函数泰勒的方法展开,提取线性方程就可以得到: , 令, 得到: (2.3)其中: (2.4) 这时可以把(2.4)作为雅克比矩阵,(2.3)的线性方程组的解我们记作为,就可以得到: (k=0,1,2,.....)。 (2.5) 这就是我们所说的求解非线性方程组(2.5)的牛顿法。 从上面的实例我们可以看得出牛顿法求解非线性方程的主要理论是用在(k=0,1,2,...)的基础上进行迭代计算。我们这时所要做的就是计算出F(x)的雅克比矩阵,通过得到它的逆,直到达到所需要的精度的范围内才停止迭代。 2.2牛顿法的算法 牛顿法算法如下: 第一步:首先我们把所要求解的非线性方程组定义为,并为之确定精度。 第二步:把转化为雅克比矩阵,得到。求解方法如下: 第三步:重复第二步方法,求解雅克比矩阵的逆。另外把乘以单位矩阵,我们可以用单位矩阵转换求解的逆用来保存。 第四步:与的相乘 第五步:再用 (k=0,1,2,.....)来迭代。 第六步:最后我们注意的时精度,其精度时,我们需要重复2—5次,一直使精度达到最小(精度)时停止迭代,最后的迭代结果为。 2.3牛顿法代码程序编程 最后介绍代码的编程: #include iostream.h #include stdlib.h #include math.h #include conio.h #define f0(x1,x2) (x1+2*x2-3) #define f1(x1,x2) (2*x1*x1+x2*x2-5) #define x_ 0.000001 #define matrixNum 2 double *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(matrixNum); matrixF=(double *)malloc(matrixNum); matrixF_=(double *)malloc(matrixNum*matrixNum); cout请输入初值:;

文档评论(0)

你好世界 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档