数值计算方法matlab 第二章 求根.docx

上传人:牧羊曲112 文档编号:5306045 上传时间:2023-06-24 格式:DOCX 页数:7 大小:146.22KB
返回 下载 相关 举报
数值计算方法matlab 第二章 求根.docx_第1页
第1页 / 共7页
数值计算方法matlab 第二章 求根.docx_第2页
第2页 / 共7页
数值计算方法matlab 第二章 求根.docx_第3页
第3页 / 共7页
数值计算方法matlab 第二章 求根.docx_第4页
第4页 / 共7页
数值计算方法matlab 第二章 求根.docx_第5页
第5页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《数值计算方法matlab 第二章 求根.docx》由会员分享,可在线阅读,更多相关《数值计算方法matlab 第二章 求根.docx(7页珍藏版)》请在三一办公上搜索。

1、第二章作业问题描述:不同温度的两种流体进入混合器混合,流出时具有相同的温度。流体A和B的热容(单 位:cal/(mol K)分别为:c a = 3.381+ 1.804x10-2T -4.300x10-6T2c = 8.592+ 1.290X10-1T - 4.078x10-5 T 2 pB焓变(单位:cal/mol)为 AH = j& c dT。A进入混合器的温度为400C, B进入混合器的温度为700C, A的量(mol)是B的量 (mol)的两倍,试确定流体离开混合器的温度。问题分析:初始情况下,气体A的温度比气体B的温度低,故在混合过程中,气体A温度升高, 气体B温度降低。由于没有外界

2、加热或者做功,混合气体整体的焓变应该为零。设A有2mol,B有1mol,根据焓变公式计算得到:AH = fT2 2c dT=fT (6.762+3.608x10-2T -8.600x10-6T2)dTAT1pA 400=6.762T +1.804x 10-2T2 - 2.867 x 10-6T3 - 5407.712AH =fT2c dT=fT (8.592+1.290x10-1T-4.078x10-5T2)dTB T pB 700=8.592T + 0.645x 10-1T2 -1.359x 10-5T3 - 32958.030而AHa +AHB = 0,故该问题最后变成求解方程f (T)

3、= 15.354T + 8.254x 10-2T2 -16.457 x 10-6T3 -38365.742的根的问题。接下来将采用二分法、试位法以及牛顿法进行改方程的求解。方程保存为 f.m,可在压缩文件中找到。一、二分法二分法的基本思想为,确定有根区间,然后不断将区间二等分,通过判断f(x)的符号, 逐步将区间缩小,直到有根区间足够小,便可满足精度要求的近似根。本例中,可以清楚的得到有根区间为(400,700)。取容限误差为0.5x10-3%,可以保证5位有效数字。程序编写存储于bisec.m。其中,bisec函数定义为:function bisec(f_name,a,c,xmin,xmax

4、,n_points)调用时: bisec(f,400,700,400,700,1000)相当于取了 a=400;c=700;作图时横坐标取得是从400700的范围,采样点为1000个。运行结果:迭代过程:Itf a=f (a)abs (f c-f a)abs r c-a. /2400.000000550.C00000700.000000550.000000625.000000700.000000101213141516025.000000625.000000525.0J0000625.000000629.687500629.687500629.687500630.273438630.27343

5、8630.419922630.419922630.456543630.474854630.474854662.500000643.750000634.375000629.687500632.031250630.859375630. 273438630. 566406630.419922630.493164630. 456543630. 474854630.484009630.479431700.Q00000662.500000643.750000634.375000634.375000632.031250630.859375630.859375630.566406630.566406630.4

6、93164630.493164630.493164630.484009-20070. 990000 7181.907000 2. 725e+00-?690. 725375 7181. 907000-545.126766-545. 126706-545. 126765-545. 1267661.500e+0021.487e+0047.500e+0017181.9070003243. 3142711333.7493437. 727e-i-0033. 793e-H0031. B79e4-0033.750e+00L1.875e+009.375e+QOO4.688e+000389.8095094. 68

7、6e+0022. 344e+U00155.22817S2. 340e+0021. 172e+00038.148931. 169e+002L 859e-U0138.148935.849e+0012. 9300018.9011692.924e+0011. 465e0018.9011691.462e+0017. 3240021.5906077.310e+0003. 6620021.59060:3.655e+0001. 831e-0021.59060:1.S28e+000S. 155e0030.6768269. 138e-0014. 578003389. 8095099.349e+D02-78. 78

8、9159-78. 789159-78. 789159-20. 337763-20. 337763-5. 7194XK-5. -1940j-2. 064467-0. 236947-0. 23694717630.474854630.477142630.479431-0. 2369470.2199384.569e-0Ol2. 28900318630.477142630.478287630.479431-0. 00850E0.2199382.284e-0011. 144e-003319S30.477142S30. 477715030. 4782S7-0. 0085050. 1057171. 142e-

9、0015. 722eQ0A20630.477142630.477428630.477715-0. 00850E0.0486065.711e-0022. 86100421630.477142630.477285630.477428-0. 0085050.02005:2.S56e-0021. 43100422630.477142630.477214630.477285-0. 00850E0.0057731.428e-0027. 15300523630.477214630.477250630.477285-0. 0013660.0057737. 139e-0033. 57600524630.4772

10、14630.477232630.477250-0. 00136S0.0022043.569e-0031. 78800525630.477214630.477223630.477232-0. 0013660.0004101.785e-0038. 94100626630.477223630.477227630.477232-0.0004730.0004198.924e-0D44. 470e-006Tolerance is satisfied.Final result ; Root= 630.477227经过26次的迭代,计算出了符合精度的解为:Final result ; Root= 630.47

11、7227由于二分法的特殊性,当已知最终的期望绝对误差时,可以计算迭代次数:n _ log(L0 / tolerance) _ log(300 / 0.000005) _ 2583 26n log 2log 2.和结果相符合。实验结果分析:二分法的优点非常明显,计算过程简单,并且通常可以在给定区间内找到跟。但是迭代 次数比较多,并且必须已知根的上下限,否则计算无法进行。二、试位法由于二分法的收敛速度相对较慢,因此试位法进行了改进。二分法使用的是区间a,c 的中点进行迭代,而试位法则采用的是经过点(a,f(a)和(c,f(c)的割线L于x轴交点(b,0) 进行下一次迭代。和二分法相同,可以清楚的得

12、到有根区间为(400,700)。取容限误差为0.5X10-3%,可以保证5位有效数字。程序编写存储于regul.m。其中,bisec函数定义为:function regul(f_name,a,c,xmin,xmax,n_points)调用时: regul(f,400,700,400,700,1000)相当于取了 a=400;c=700;作图时横坐标取得是从400700的范围,采样点为1000个。运行结果:迭代过程:It400.000000620.941539700.000000220. 941539-20070. 990000 -947. 0500911. 912e+D04620.941539

13、630. L52108700.0000009. 210569-947.050091-32.4441269.U6e+002630.152108630.466226700.0000000. 314117-32.444126-L. 0980763.135e+001630.466226630.476855700.0000000. 010630-1.09B076-0. 0371491.061e+000630. 476855630.477215700.0000000. 000360-0.037149-0. 0012573.589e-002630.477216630.477227700.OOOOOO0. 0

14、00012-0. 0012E7-0. 0000431.214e-003630.477227630.477228700.0000000. 000000-0.000043-0. 0000014.10Be-005abs (f c-f a)Tolerance is satisfled.Final result ; Root= 630.177228实验结果分析:作为二分法的改进算法,试位法明显有着更快的收敛速度,误差减小的更快。本例中, 出现了 “一个划界点不变”的现象,即C点不变,但是并没有出现“很差的收敛性”。由于 所得的根更接近于C点,可以考虑改进该算法,更好的提高收敛性。三、牛顿法迭代法通常的形

15、式是不唯一的,而采用牛顿迭代法是其中一种形式比较固定的构造方法。 牛顿迭代法的思想是:设法讲非线性方程转化为某种线性方程解决,其解决问题的基础是 Taylor多项式。取容限误差为0.5 10-3%,可以保证5位有效数字。去迭代点x0=600和x0=400分别进行迭代。程序编写存储于newtm。其中,bisec函数定义为:function Newt(f,x0,xmin,xmax,n_points)调用时:当x0=600时 newt(f,600,400,700,1000)当x0=400时 newt(f,400,400,700,1000)运行结果:1) x0=600求根示意图:Newton meth

16、od-0.5450500final soiutian-2.5400迭代过程:y=-2.99365e+003y=5. 03005e-i-001y=l.30S63e-002y=7.62520e-009k=6.000aae+00230S81e+002x=6.30477e+002x=6.30477e+002Final resultRoot= 630.477228n=1,x=4. 00000e+002y=2.0071Qe+004il=%e=6.73124e+002y=4.34874e+00311=3,i=6. 31351e-l-002y=8.72426e+001n=x=6. 30478e+002y=3.

17、S2345e-00211=k=6.30477e+002y=2.31580e-008Final result:Root= 630.47722B实验结果分析:正常情况下,牛顿法的收敛速度很快。当改变迭代初值时,牛顿法的迭代次数会发生变 化,但是总体看来变化不大。当迭代初值接近于根时,迭代次数较小,否则会相应增加迭代 次数。本例中,由于函数是单调的,所以不存在极值点,因此没有体现出牛顿法的缺点。小结:非线性方程求根的数值计算方法,首先要确定根的分布区间,并且具有局部收敛性的迭 代格式其初始区间要尽可能的小。运用各种数值求解方法时,要考虑解的收敛性,进而考虑 收敛速度和计算量。计算本例所用的三种办法各有优劣性。而真正在应用时,要根据应用要求的不同选出最 适合问题的方法,不能硬套公式。如本文中没有提到的割线法,也有它适合的使用范围。工 程上喜欢使用的图解法,也是一种快速而粗略的求解办法。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号