计算机数据处理ppt,化工计算机数据与图形处理PPT-2.ppt

a7f4a3f590493a1e451dd952a488fd7c.gif 化工计算机数据与图形处理PPT-2.ppt

(56页)

09541531da228b9d85c6a8817360f91b.gif

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

29.9 积分

第二章 EXCEL解方程 本章主要内容2.1 EXCEL的迭代用法2.2 逐步逼近法解方程2.3 Newton-Raphson法解方程2.4 单变量求解解方程2.5 求微分方程数值解注:每一种方法讲完,会找同学上台操作。 2.1 EXCEL的迭代用法EXCEL迭代: A2=F(A1) 或 B1=F(A1) F(A1)为含引用单元格A1的公式,地址为相对引用。向下或向右拖曳填充柄时,EXCEL将自动更新每一步。即: A3=F(A2), A4=F(A3), …… C1=F(B1), D1=F(C1), …… 一般是向下拖曳。2.1 EXCEL的迭代用法2. 循环引用 公式引用自己所在的单元格: A1=F(A1) 无论是直接引用还是间接引用。只要打开的工作簿中有一个包含循环引用,Excel 都将无法自动计算所有打开的工作簿。 2.1 EXCEL的迭代用法2. 循环引用 但有些化工计算需要用到循环引用,计算此类公式时,EXCEL必须使用前一次迭代的结果计算循环引用中的每个单元格。使用循环引用的过程如下: 打开“工具”菜单,选择其中的“选项”指令。2.1 EXCEL的迭代用法2. 循环引用在“选项”对话框中,选择“重新计算”标签。选“迭代计算”,在此设置循环引用时最多引用次数。EXCEL默认的最多迭代次数是100次,最大误差0.001。2.1 EXCEL的迭代用法3. 循环引用举例:计算弱酸氢离子浓度 弱酸解离平衡:由此得: Ka是酸解离常数,C是总酸浓度。2.1 EXCEL的迭代用法3. 计算弱酸氢离子浓度 上式为一元二次方程,有现成求解公式,用“循环引用”也可以方便获解。例:已知有一0.2000mol/L的二氯乙酸(HAD)溶液,其中HAD的解离常数为0.050。用循环引用求其氢离子浓度。2.1 EXCEL的迭代用法3. 计算弱酸氢离子浓度 具体求解:1)打开“工具”-“选项”-“重新计算”,选中“迭代计算”,在“最大误差”栏内填入1E-12。2)A1、B1、C1单元格分别写入: HAD、Ka=、5.0E-22.1 EXCEL的迭代用法3. 计算弱酸氢离子浓度 具体求解:3)A2、B2、C2单元格分别写入: [HAD](始值)、[HAD](终值)、[H+].4) A3输入数值:0.2000, B3输入公式:=A3-C3, C3输入公式:=SQRT($C$1*(A3-C3))。 2.1 EXCEL的迭代用法3. 计算弱酸氢离子浓度2.2 逐步逼近法解方程1. 原理 对于一元方程F(x)=0,可以在工作表上用减小x取值间隔的办法逐步逼近准确解。 其原理是缩小使函数y=F(x)变号的x区间,从而找到一个x值,使得y=F(x)=0达到一个精度。2.2 逐步逼近法解方程2. 举例:碳酸钙在纯水中的溶解度 CaCO3是难溶盐,在纯水中有如下平衡: 同时由物料平衡和电荷平衡关系得:2.2 逐步逼近法解方程2. 举例:碳酸钙在纯水中的溶解度 钙离子的浓度即为CaCO3的溶解度,用x表示并将两个K值代入,得: 将x按递增序列逐渐变化,求得相应的y值。当y值变号时,表明它通过0。然后在y变号的x区间内,减少x的增值量,重复上述过程,直至达到要求精度的x值。2.2 逐步逼近法解方程2. 举例:碳酸钙在纯水中的溶解度 x的起始值可以是任意的,最终都能得到方程的解。但应该将方程作一初步分析,对x值的范围有一个大致的了解,可以较快的确定方程的解。比如对此例: 因此x必然大于 。所以可用其作为x的起始值,x的增量定为 。2.2 逐步逼近法解方程2. 举例:Excel操作步骤1) A1单元格键入x,B1单元格键入y。在A2和A3单元格分别填入5E-5和6E-5。2) 在B2单元格输入公式: 随后用自动填充功能得到B3的值。再选中A2:B3这四个单元格,拖填充柄直至y变号。 2.2 逐步逼近法解方程2. 举例:Excel操作步骤3) 重复上述过程,x起始值设为1.01E-4,增值量减为1E-6。在A10 和A11分别输入 1.01E-4和1.02E-4。拖B8单元格至B11。选中A10:B11,拖动至y变号。以此重复进行,可得到任意精度的解。2.2 逐步逼近法解方程2. 举例:迭代法快速求解 将F(x)=0可以改写成: x=f(x) 设定初始值x0,将其代入上式,得到改进值x1 : x1=f(x0)如此重复,可逐渐逼近真实解x。2.2 逐步逼近法解方程2. 举例:迭代法快速求解Excel具体步骤:1)将D1和E1单元格分别标为x和△x,代表迭代求得的解及连续两次迭代获得方程根之差值。2)D2单元格输入=SQRT(2.9E-9),在D3输入=SQRT(7.8E-7*SQRT(D2)+2.9E-9),在E3单元格输入=D3-D2。2.2 逐步逼近法解方程2. 举例:迭代法快速求解3)选中D3:E3,用自动填充功能下拉填充柄,得不同迭代次数下x值及其精度。2.3 Newton-Raphson法1. 原理: 逐步逼近法有时速度较慢, Newton- Raphson法快得多。 N-R法是一种迭代过程,迭代形式为:Si是第i步迭代函数yi的斜率(一阶导数)2.3 Newton-Raphson法1. 原理: 基本思想:先在函数可能为0的x值范围内确定一初始值x1,函数曲线在x1的斜率S1=y1/(x1-x2) ,因此由函数y在x1的斜率得到改进了的根x2: x2=x1-y1/S1 如此重复,直至xi+1-xi等于0,或小于某一值。2.3 Newton-Raphson法1. 原理: 如图:2.3 Newton-Raphson法2. Excel 步骤:以y=x3-3x2-6x+8为例1) 在A1,B1,C1分别输入:x,y,S。2) 在A2输入x的初始值5,在B2输入公式:=A2^3-3*A2^2-6*A2+8,在C2输入导数公式:=3*A2^2-6*A2-6。3) 在A3输入公式:=A2-B2/C2,得到改进了的解。 2.3 Newton-Raphson法2. Excel 步骤:以y=x3-3x2-6x+8为例4) 选中B2:C2,下拉填充柄到B3:C3。5)选中A3:C3,下拉填充柄直至x值几乎不变,即得x的真实解4。注:若方程有多个解,则N-R法的解有赖于初始值选择。因此需要先对函数图象有一大致了。省略部分。”通过改变一选定单元格(可变单元格, x)的值,使得另一单元格(目标单元格,y)的值达到预定值。 对于解方程,目标单元格为方程所在,目标值为0,可变单元格为使方程等于0的自变量值(即x)。2.4 单变量求解法1. 原理 2.4 单变量求解法2. 举例:求CaCO3溶解度A1, B1内分别输入x,y。A2输入单元格1作为初始值,B2输入公式: =A2^2-7.8E-7*SQRT(A2)-2.9E-9。打开“工具”-“单变量求解”对话框,光标停在“目标单元格”内,再单击B2单元格。“目标值”输入0,光标停在“可变单元格”内,单击A2单元格。点击“确定”。 2.4 单变量求解法 2.4 单变量求解法3)最大误差设置 从上例可以看出,所得解x=0.0222并不精确,需要重新设定最大误差: 打开“工具”-“选项”-“重新计算”。在该对话框的“最大误差”里填入想要的设置,如1.00E-12。2.4 单变量求解法3)最大误差设置 2.4 单变量求解法3)最大误差设置 分别将最大误差设置为1.00E-5, 1.00E-9, 1.00E-12, 1.00E-15, 1.00E-99,用上述单变量求解方法求得相应的x和y值。2.5 求微分方程数值解1. 原理 化学反应动力学方程一般用一阶微分方程表示,其通式为: [a, b]是自变量的定义域,f(x, y)为已知函数。2.5 求微分方程数值解1. 原理 若一函数y=F(x)代入微分方程,使得式(1)成立,即: 则该函数就是微分方程的解。 2.5 求微分方程数值解1. 原理 解微分方程用到积分,得到的解析式是含一个任意常数C的通解。若有初始条件(初值): y0=F (x0) 则通解的常数C可以确定,得到特解。2.5 求微分方程数值解1. 原理 例如对于一级反应:A→ B,其速率方程为: [A]t是反应物A在时间t时的浓度,其通解为:2.5 求微分方程数值解1. 原理 若已知t=0时A的浓度为[A]0,则在初始条件下的特解为:2.5 求微分方程数值解1. 原理 并非所有微分方程都有解析解。事实上除了一些简单的基元反应,大多数反应动力学难以得到解析解或解析式很复杂,甚至不存在解析解。此时必须求助于数值解。 另一方面反应动力学关心的问题是在t时刻反应体系内各物质的浓度[A]t , [B]t , ……,有足够精度的近似解即可。2.5 求微分方程数值解1. 原理 数值解在化工“三传一反”的模型化中都广泛应用。 数值解有普适性,可用于复杂的微分方程体系及任何初始条件。2.5 求微分方程数值解2. Euler法 常微分方程数值解采用离散方法,即找出一种有效的数值计算方法,计算自变量的离散点:x0,x1,x2,…,xn以及对应的y近似值y0,y1,y2,…,yn。最简单的是Euler法,通常取等间距的x值: x1-x0 =x2-x1=…= xn-xn-1=h h称为步长。2.5 求微分方程数值解2. Euler法 以初始条件(x0, y0)代入微分方程式(1),得到初始点P0 (x0, y0)的斜率:以差商近似微商:2.5 求微分方程数值解2. Euler法 因此有: 即x向前移动h,在x1处得到y1。 同样可以由x1, y1代入式(1)得到y2。依此类推,可得到所有x0,x1,x2,…,xn对应的y近似值y0,y1,y2,…,yn。这些数值点连成一个折线函数,用以代替原来的曲线函数。2.5 求微分方程数值解2. Euler法2.5 求微分方程数值解2. Euler法 Euler法简单易懂,几何意义明确,但误差太大。由图可知,由于误差的累加,随着x向前推进,折线越来越偏离原来的曲线。2.5 求微分方程数值解3. Euler法示例例:对一级反应动力学方程 设定:初始浓度[A]0=0.2000mol/L,反应速率常数k=0.01s-1。由上式可推得其求浓度近似值的递推公式为:2.5 求微分方程数值解3. Euler法示例具体解法如下:1)A列输入时间,间隔为20s,直到140s。2)B列用Euler法计算在时间t时的浓度[A]t。在B5单元格输入初始浓度0.2000mol/L。B6输入递推公式:=B5-B5*$D$1*$D$2。3)选定B6单元格,向下拖拽到B12。由于B5单元格为相对引用,每下一格,浓度值更新一次,得到各个时刻由Euler法计算的浓度。 2.5 求微分方程数值解3. Euler法示例4)C列是根据 计算的解析浓度值。在C5单元格输入公式: =$B$5*EXP(-$D$1*A5)。 然后自动填充得其余值。5)D列为Euler法计算值与解析值的相对误差: =100×(解析值-Euler值)/解析值。2.5 求微分方程数值解3. Euler法示例6) 减小步长h,可改进精度。如步长分别为5和1时,在140s的误差分别降为3.56%和0.70%。 2.5 求微分方程数值解4. Runge-Kutta法 Euler法产生较大误差的原因是f(x,y)为曲线,用Teller公式展开: Euler公式只取了线性项(斜率),忽略了高次项。2.5 求微分方程数值解4. Runge-Kutta法 R-K法则包括了Teller展开式的高次项,其中最常用的是四阶R-K公式。在递推公式里x取值为:xi, xi +h/2, xi +h。则微分方程通式的四阶R-K公式为:2.5 求微分方程数值解4. Runge-Kutta法微分方程通式的四阶R-K公式为:2.5 求微分方程数值解5. Runge-Kutta法示例 例子同Euler法一样。由于微分方程仅涉及因变量y,R-K法四项表达式简化为:2.5 求微分方程数值解5. Runge-Kutta法示例具体步骤:1)在F5单元格输入初始浓度0.2000mol/L。2)根据T1-T4的计算公式, 在B6输入:=-$D$1*$D$2*F5 在C6输入:=-$D$1*$D$2*(F5+B6/2) 在D6输入:=-$D$1*$D$2*(F5+C6/2) 在E6输入:=-$D$1*$D$2*(F5+D6)2.5 求微分方程数值解5. Runge-Kutta法示例具体步骤:3)根据递推公式,在F6输入:=F5+(B6+2*C6+2*D6+E6)/64)选定区域B6:F6,拖拽填充柄到第12行。5)通过与解析解的相对误差可以发现,R-K法相当精确,完全可以满足一般反应动力学研究的需要。2.5 求微分方程数值解5. Runge-Kutta法示例下周日上机练习 拷贝本次课的课件,根据课件示例,上机练习这些解方程的方法。 关 键 词: 数据 化工 ppt 处理 图形 计算机

4d91c43bfc72ca913299809b07b4968f.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值