化工数值计算-2.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
化工数值计算-2

? 非线性代数方程的数值解 用代数方法求解一元线性方程式或一元二次方 程式是比较简单的,但求解一元三次或高次的代;数方程式却相当麻烦。这类问题在化学化工计 算中并不少见。例如,适用于中压范围的范德华 方程式为: ? 如果要计算在温度T和压力P时,某种气体的摩尔;体积V,将会遇到如下形式的一元三次方程式: ? 再如计算一定温度和压力下,气体反应达平衡时 各组分的含量,也时常要解一元三次、一元四次 甚至更高次的代数方程。这些高次方程,求解析;解不可能,只能用数值方法求近似解。 以计算机为工具,利用数值计算法处理以上问题, 很容易得到极为准确的近似解。这些非线性代 数方程的数值计算方法及计算程序,即为本章的 主要内容。 2.1????逐步扫描法求根的初始近似值;?   通常把方程f(x)=0的解叫做方程的根,也称为 函数f(x)的零点。若f(x)是n次多项式,对应的方程 为n次代数方程,这时方程的根也称为多项式的 根。根有实根和复根之分,这里仅研究实根的求 法。可分两步来求方程的根,先找出根的某个粗;略近似值,又称之为“初始近似值”,进一步将初 始近似值逐步加工成满足精度要求的结果。下 面先讨论求根的初始近似值的方法。 2.1.1 方法概述 设待解方程为: ?;  在直角坐标系中给出相应于y=f(x)的曲线,如图2-1所 示。显然,此曲线与x轴的交点就是方程f(x)= 0的根。若函数f (x)在区间(a,b)连续,且f(a)与f(b)异号,则区间(a,b)内必定至少 有一个实根。若函数f(x)在区间(a,b)连续并单调(单调上升或 单调下降),则在区间(a,b)必定只有一个实根(见图2-2)。这时, 选定一个步长h,并计算函数f(a),f(a+h),f(a+2h),…的值,直至相 邻两个函数值异号,则所求的根必在这两个x值之间。可取xi 或xi+h作为所求根的近似值。这个方法叫迈步法或逐步扫描;法。;2.1.2 程序框图 上述算法的程序框图如图2-3所示。;程序框图中的主要变量: A  初值 H  步长 X1  区间始点x1 X2  区间终点x2;Y1  区间始点函数值f(x1) Y2  区间终点函数值f(x2) 计算过程从初值A开始,每增加一个步长H,便对该区间的始点 和终点的函数值符号作一次检验。若两函数值乘积大于零, 说明该区间内无实根。这时,把区间的终点作为下一次迈步 的始点。如此反复向前迈步,直至两函数值的乘积小于或等 于零,并把两函数乘积小于或等于零的区间的始点作为方程;式根的近似值。显然,步长缩小,精度提高。因此,当精度要求 较高时,步长要求很小,计算机循环计算的次数将会很大,因 此,用这种方法求根是不切实际,它只能用于求根的初始近似 值。 2.1.3 计算实例;例2-1;  Cls A = 0: H = 0.1 Print Print A=; A: Print H=; H X1 = A: Y1 = Y(X1) OKstop = 1 Do While OKstop 0   X2 = X1 + H: Y2 = Y(X2)   OKstop = Y1 * Y2   If OKstop 0 Then    X1 = X2: Y1 = Y2   End If Loop Print X=; X1 End Sub ’****************** Function Y(X) ’******************  Y = X ^ 3 - X - 1 End Function 执行结果: A=0 H=0.1 X= 1.30;源程序中将待求解方程写成y = f(x)= 0的形式,函数y = f(x)的 计算采用函数子程序,这样当求解方程改变时,只要改变函数 子程序即可。 2.2????求根的精确解 ?   用迈步法求得非线性代数方程根的初始近;似值后,可用以下介绍的二分法、迭代法、牛顿 法、弦截法等寻求根的精确值。 2.2.1 二分法 2.2.1.1 方法概述 设求解方程f(x)= 0通过逐步扫描法已知有根区间为(x1,x2),如图2-4 所示。;图2-4 二分法求根的精确值;现取x1与x2的中点x0,即 ?   从而将区间(x1,x2)分为相等的两部分。然后检查f(x0)与f(x1)的 符号是否相同,如为同号,根必在x0与x2之间。令 ?   如为异号,则根必在x1与x0之间。令;图2-5 二分法通用计算程序框图;? 然后再取新区间(x1,x2)的中点,重复以上步骤,直至x1与x2之间的距离 小于某指定值E为止。取前一区间的中点x0作为方程式根的精确 值。这个方法称为“二分法”或“对分法”。 若将二分过程无限地进行下去,上述有根区间最终必会收缩于一 点x*,x*就是所求的根。用这种方法,可以获得一个近似根的序列: ?;该

文档评论(0)

骨干 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档