《数值分析》课程设计报告_第1页
《数值分析》课程设计报告_第2页
《数值分析》课程设计报告_第3页
《数值分析》课程设计报告_第4页
《数值分析》课程设计报告_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

课程设计报告课程设计题目:牛顿迭代法求解非线性方程组学生姓名:专业:班级:指导教师:题目:在化学工程中常常研究在一个封闭系统中同时进行的两种可逆反应其中A,B,C和D代表不同的物质。反应达到平衡是有如下的平衡关系:其中称为平衡常数,代表平衡状态时该物质的浓度。假定反应开始时各种物质的浓度为:而且反应达到平衡时,由第一和第二种反应生成的C物质浓度分别为,于是平衡时满足的方程为:用数值方法求解上述方程。所涉及的知识——非线性方程组解法。一、摘要在matlab环境下运用编程语言通过牛顿迭代法求解非线性方程组的理论基础对非线性方程组求根,编写牛顿迭代法的程序,在运行完程序后对运行结果做出各方面的分析和比较,最后对此方法做出评估。二、设计目的用Matlab7.1软件求出二元非线性方程组;了解如何用牛顿迭代法求解非线性方程组;掌握牛顿迭代法求解非线性方程组的原理;提高我们运用数学软件编程解决问题的能力。三、理论基础牛顿迭代法:非线性方程组写成向量形式F(x)=0,这里,。求解问题,即是求,使满足F()=0,为了求F(x)=0的解,等价形式为,其中,的不动点,就是F(x)=0的解。适当选取初始向量,作迭代,若的每个分量对变量是连续的,则当{}收敛时,其极限就是的不动点。取,那么当为非奇异矩阵,则与F(x)=0等价。当取A(x)=A,detA0时,迭代。若充分接近,则迭代收敛于。取,其中为F(x)的Jacobi矩阵。此时,F(x)=0的等价形式为,而在F(x)=0的解x=处,有=0,只要充分接近,迭代收敛于,上述迭代式称为牛顿迭代法。四、程序代码及运算结果程序代码:Jacobi矩阵:symsx1x2;y1=0.0004*(50-2*x1)^2*(20-x1)-5-x1-x2;y2=0.037*(50-x2)*(10-x2)-5-x2-x1;y=[diff(y1,x1)diff(y1,x2);diff(y2,x1)diff(y2,x2)]运行结果:y=[-1/625*(50-2*x1)*(20-x1)-1/2500*(50-2*x1)^2-1,-1][-1,-161/50+37/500*x2]主程序代码:functiony=fc(x)y(1)=0.0004*(50-2*x(1))^2*(20-x(1))-5-x(1)-x(2);y(2)=0.037*(50-x(2))*(10-x(2))-5-x(2)-x(1);y=[y(1)y(2)];functiony=df2(x)y=[-1/625*(50-2*x(1))*(20-x(1))-1/2500*(50-2*x(1))^2-1-1;-1-161/50+37/500*x(2)];symsx1;x0=[12]x1=x0-fc(x0)*inv(df2(x0));n=1;while(norm(x1-x0)>=1.0e-4)&&(n<=1000)x0=x1;x1=x0-fc(x0)*inv(df2(x0));n=n+1;endx1n运行结果:x1=3.68973.1615n=1x0=33x1=3.68973.1615n=3x0=12x1=3.68973.1615n=4用Matlab内部函数编写程序:functionf=group(x)f=[0.0016*x(1)^3-0.112*x(1)^2+3.6*x(1)+x(2)-15;0.037*x(2)^2-3.22*x(2)-x(1)+13.5];[x,fval]=fsolve('group',[22])运行结果:x=3.68973.1615fval=1.0e-009*-0.12190.0045用Matlab画出非线性方程组解的图形:ezplot('0.0004*(50-2*x1)^2*(20-x1)-5-x1-x2')holdonezplot('0.037*(50-x2)*(10-x2)-5-x2-x1')text(0,-2,'0.0004*(50-2*x1)^2*(20-x1)-5-x1-x2')text(-4,4,'0.037*(50-x2)*(10-x2)-5-x2-x1')title('非线性方程组的解')运行结果:图1非线性方程组解的图形五、结果分析根据牛顿迭代法求非线性方程组的原理将所求的非线性方程组先化为一般的标准形式,求出它的Jacobi矩阵,然后再用牛顿迭代公式计算出我们所要求的函数值。牛顿迭代法是求解非线性方程组的一个重要的方法之一,其最大的有点是收敛速度快,具有平方收敛,常常能快速的求出其他方法求不出或很难求出的解。根据本文的分析,利用牛顿迭代法求解非线性方程组,代入接近精确解的初值,其每次收敛到精确解的次数都很少,可见其收敛速度较快。使用牛顿迭代法时要计算它的Jacobi矩阵,显然有时候工作量会很大,并且要求它的Jacobi矩阵非奇异,如果奇异或者病态,会导致解非线性方程组失败或产生的数值不稳定。对于本文用的牛顿迭代法求解非线性方程组的过程,其迭代次数少,所求出的结果误差也比较小。六、设计心得七、参考文献[1]孙祥,徐流美,吴清.Matlabl7.0基础教程[M].北京:清华大学出版社,2005.[2]奚梅成.数值分析方法.合肥:中国科学技术大学,2003.[3]丁丽娟,程杞元.数值计算方法[M].北京:北

温馨提示

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

评论

0/150

提交评论