Matlab与化学化工计算
Matlab与化工数值计算-第1讲 简介与基本数学运算
Superpro Designer
Fluent CHEMKIN
本课程的学习目的
学会Matlab的使用,可以利 用Matlab求解较为复杂的化 工数学模型 Matlab 对于数值分析 的内容不过多 涉及,只注意 数值计算结果 的准确性 化工专业知识 作为背景,不 涉及模型的推 导,注重模型 求解过程的方 法与技巧
>> 2000^1.8*(10^(-10.2158+1.7925e3/283+1.773e-2*2831.2631e- 5*283^2))^0.2/(20000*0.5^4.8*(0.3471*0.274^(-(1283/647.13)^0.28574))/0.2323) 回车可以得到结果 ans = 287.8245
短格式科学格式
长格式 长格式科学格式 有理格式 十六进制格式 银行格式
程序的组成
变量 数据输入
键盘输入 文件输入
变量 运算
数学运算 关系运算 逻辑运算
数据输出
屏幕输出 文件输出 图形输出
流程控制
变量
• 变量的命名方式:
– 变量名由字母、数字和下划线组成;
– 变量名中的英文字母大小写是有区别的;
– 变量名的最大长度是有规定的
0.01
基本数学运算符的使用
计算以下表达式的值: 1) [1 2 3]*[3 2 1] 2) [1 2 3].*[3 2 1] 3) [1 2 3]^2 4) [1 2 3].^2 5) 1+3*2^2 6) (3*2)^2 7) (3*2)^2; 8) (-8)^(1/3)
Matlab的计算器功能
u 2 2u2 0.170 2 F (u1 u 2 ) t x
化工数值计算与MATLAB课程设计
化工数值计算与MATLAB课程设计一、课程背景作为化学工程专业的一门课程,化工数值计算与MATLAB课程设计是一门综合性较强的课程,旨在让学生掌握化工工程中常见的数值计算方法以及MATLAB编程技能,为学生日后从事化工工程工作提供有力的帮助。
二、教学内容本门课程的主要内容包括以下三个方面:1. 常见的数值计算方法这一部分主要介绍化工工程中常用的数值计算方法,包括插值、数值积分、微分方程求解、最小二乘法等。
学生需要掌握这些方法的理论知识和具体应用,能够熟练地运用这些方法解决化工过程中遇到的实际问题。
2. MATLAB编程技能的掌握作为一种强大的计算工具,MATLAB在化工工程中有着广泛的应用。
这一部分主要介绍MATLAB编程语言的基础知识以及一些常见的编程技巧,包括变量、循环、函数、图形输出等。
学生需要通过实践掌握MATLAB编程技能,能够利用MATLAB对化工问题进行编程求解。
3. 化工数值计算与MATLAB综合设计这一部分是本门课程的重点,主要通过一个小型的化工流程仿真设计项目来综合运用前两部分的知识,设计的具体内容需要由教师根据学生实际情况进行调整。
通过这一部分的课程设计,学生能够加深对化工数值计算理论和MATLAB编程技能的理解,提高化工工程问题的解决能力。
三、教学方法本门课程采用理论授课与实践相结合的教学方式。
在理论授课环节,教师主要介绍化工数值计算的理论知识,说明相应的代码实现过程,并举一些实际例子来讲解。
在实践环节,学生需要利用所学知识实现对化工过程的仿真设计。
在实践过程中,教师会提供必要的指导,学生需要通过实践来掌握相应的技能和知识。
四、教学评价为了保证本门课程的教学效果,将采用以下几个方面的考核策略:1. 课堂测试教师会根据课程的重点内容设置相应的测试题目,在测试中检测学生掌握知识的程度。
2. 大作业大作业是本门课程的重要考核方式之一。
学生需要利用所学知识设计并实现一个小型的化工工艺仿真项目,并撰写实验报告。
化工设计及计算中MATLAB的应用
化工设计及计算中MATLAB的应用摘要:在化工领域里,计算机的应用技术促进了行业的变革和发展。
在本文中主要介绍了计算机在化工行业的发展历程,以及在化工领域中运用较为广泛的一些相关软件。
其中,MATLAB的应用大大提高了计算机与化工行业的融合性与适应性。
MATLAB具有用法简单、灵活、结构性强、延展性好等优点,广泛用于数值计算、符号计算、数据分析、工程绘图、建模与仿真模拟、控制系统设计等。
关键词:计算机应用;化工;MATLAB1 前言随着科学技术的进步,计算机的应用广泛而深入的渗透到我们生活中的各个领域。
不仅促进了社会文明的发展,而且在国民经济中占重要地位的化工行业中也起到了至关重要的作用。
计算机的应用,由局部辅助发展到全面辅助,由特殊计算发展到普遍适用的过程,对化工设计的影响有着深远而长久的意义。
对于现代工业中化工设计而言,从由分子结构出发预测物质的物性到工艺过程的设计、数据的分析处理乃至绘图和可视化操作,均可由计算机完成。
简单地概括起来,计算机在化工工业中的应用方向主要是模拟计算和绘图。
2 计算机在化工领域应用中的发展2.1 发展历程1946年2月14日世界上第一台电子计算机ENIAC诞生以来,其发展以一种超乎人们想象的速度渗透到人们的工作和生活之中。
20世纪6O年代未,计算机技术受到越来越多的关注,开始较多地应用于化工生产过程控制等领域,至2O世纪8O年代起进入了较快发展阶段,计算机的应用渗透到了化工过程的多个分支领域,尤其是进入21世纪,计算机在化学化工方面的联合应用有了突飞猛进的发展。
2.2 计算机在我国化工中的发展历程就我国而言,化工部门较早采用电子计算机。
上世纪60 年代后,我国电子工业和计算机技术发展迅速,生产出我国第一代晶体管计算机。
这时,化工设计院和兰州化五院都尝试利用计算机编程,结合设计需要解决一些实际的工艺问题。
1973年后,化工部直属各设计院相继都建立了计算站,开始在化工等设计工作中应用计算机。
【doc】用Matlab求解化工原理计算问题的教学初探
用Matlab求解化工原理计算问题的教学初探第23卷第6期大学化学2008年12月用Matlab求解化工原理计算问题的教学初探唐正姣王存文孙炜欧阳贻德(武汉工程大学化工与制药学院湖北武汉430073)摘要以管路计算中的设计型问题和精馏过程计算中的操作型问题为例,分析了求解问题的思路,列出了详尽的Matlab计算源程序.计算过程及结果表明,利用Matlab求解化工原理计算问题具有数值稳定性好,使用方便,高效,快速等特点.化工原理的计算通常涉及2种类型:一类是设计型计算,即根据规定的生产任务设计出经济合理的设备或管路;另一类为操作型计算,指对某个过程或设备在一定条件下能够完成的任务进行计算或核定某个参数的指标.二者均为化工单元操作原理及其规律的具体应用,让学生进行设计型与操作型计算的训练是提高学生实际综合应用能力和水平的有效措施.化工原理的计算问题通常以工程实际问题为背景,求解过程经常涉及非线性方程(组),插值,曲线拟合,数值积分,图解等工程计算方法,往往要进行多次试差计算才能得到结果.学生在平时学习和做作业时遇到的主要困难是试差计算.教师的讲解只能够让学生理解用试差法求解问题的思路.试差计算必然遇到两个问题,即(1)如何设置变量的初值;(2)当第一次所设变量初值不能满足计算精度要求时如何重设变量值.这是学生最初应用试差法的两道障碍.笔者在上课时也给学生讲解用牛顿迭代法求解非线性方程的根,但学生较难掌握具体算法.因此,对于本科生而言,若有一种计算软件,只需弄清待求问题的求解思路,便能获得问题的解,将有助于提高解题效率.Matlab是目前流行的一种科学计算软件.Matlab语言是一种广泛应用于工程计算和数值分析领域的新型高级语言,它拥有大量的命令集和可用函数集,集数值计算功能,符号运算功能和图形处理功能于一身,形式简便,易于掌握J.使用Matlab编程与人进行科学计算的思路和表达方式相似.笔者在化工原理教学过程中,对应用Matlab软件求解化工原理计算问题进行了探索.现以管路计算中的设计型问题和精馏过程计算中的操作型问题为例进行介绍.1Matlab知识简介】Matlab程序的基本构成:(1)程序的定义.其作法是在程序首行用function定义,如func.tionflowrate.(2)主程序,它一般包括数据输入(已知参数),计算过程和结果输出(数值和图形结果),且计算过程往往要调用外部函数或/和自定义的内部函数.主程序代码紧接程序定义名后.(3)程序的内部函数.它是在程序中定义的函数,只供该程序调用.一般把定义这些内部函数的代码置于主程序之后.Matlab为单变量非线性方程和非线性方程组的求解分别提供了fzero函数和fsolve函数.37fzero函数结合使用二分法,割线法和可逆二次内插法进行求解,fsolve函数的算法为最小二乘法.因此Matlab的算法可靠,运行稳定.fzero函数的使用方法如下:调用格式:=fzero(@fun,n)输人参数:fun为用户定义的目标函数的函数名,定义单变量非线性方程f()=0中的.厂();为迭代初值.输出参数:为方程的根.fsolve函数的使用方法如下:调用格式::fsolve(@fun,‰)输人参数:fun为用户定义的目标函数的函数名,定义非线性方程组f()=0中的f(z), 该函数返回一个列向量;.为迭代初值向量.输出参数:为方程组的根向量.所以,当采用Matlab求解非线性方程(组)时,学生并不需要编制只有具备数值分析知识才能理解的算法程序,而只需要定义待求的非线性方程(组).对于变量的初值,由于Matlab的算法稳定,对初值的要求比较宽松.2计算实例算例1l2]:管路计算.已知一自来水总管内水压为2×10Pa(表压),现需从总管引出一支管,将自来水以3m./h的流量送至lO00m远的用户(常压),管路上有90.标准弯头l0个,球心阀(半开)2个.试计算该支管的直径.已知水温20℃,由于输送距离较长,位差可忽略不计.解:从支管引出处(上游1截面)至用户(下游2截面)之间列机械能守恒方程为:==(A寺+∑)争2(1)其中4=(2)将式(2)代入式(1)得:=(Al+∑)(3)摩擦系数A的计算式为:=1.74-21g(2号+18.7(4)其中::,-ff(5)式(1)~(5)中,d为管内径,z为管长,q为流量,P,P:分别为支管引出处,用户处的压强,u为流体的流速,为管子的粗糙度,为局部阻力系数,A为摩擦系数,为流体的粘度,P为流体的的密度.据已知条件:P:2×10Pa(表压),P.=0(表压),q:3m/h,z=lO00m.查文献[2],P:lO00kg/m,=1.005×10~Pa?So90.标准弯头10个:=0.75x10:7.5,球38心阀(半开)2个:=9.5×2=19;i~∑=.+=26.5.为确定适宜的管径,必须先选定管子的粗糙度,然后联立求解由式(3),(4)组成的非线性方程组,求出管径d与摩擦系数A,最后核算流速是否在经济流速范围内.利用Matlab提供的fsolve函数求解,非线性方程组)=0中的)定义如下:,d)=一(A寺+∑),2(A'd)=174+2fg(2音+)待求变量为A和d.Matlab程序(flowrate.m)清单如下:functionflowrate%程序定义已知流量,求适宜的管径clearall;clc%主程序开始globallengthroughplp2densiviscoqvlength=1000;%管子的长度与粗糙度pl=2e5;p2=0;%总管与用户处水压visco=1.005e一3;densi=1000;%水的粘度与密度qv:3/3600;%水的流量rough=input(管子的粗糙度(mm)=);rough=rough1e一3:x0:[0.03,0.05];x=fsolve(@NonlinEqs,x0);lamda=x(1);%摩擦系数计算值d=x(2);%管径计算值U=4qv/(3.14159d'2);fprinff(\nlamda=%.4f\td=%.ifmmu=%.2fm/s\n,lamda,d1000,u)%主程序结束functionf=NonlinEqs(x)%自定义的内部函数globallengthroughplp2densiviscoqvpai=3.14159:lamda=x(1);d=x(2);U=4qv/(pai:Icd'2);sumc=26.5:f(1)=(pl—p2)/densi一(1amdalength/d+sumc):I=u~2/2;%机械能守恒式Re=4densiqv/(paid%visco);f(2)=lamda(一0.5)一1.74+2logl0(2rough/d+18.7/Re/sqrt(1amda));%摩擦系数计算式从上述程序清单可见,程序的可读性强,编程量小,几乎是计算思路的直接演绎.根据文献[2],水煤气用新钢管的粗糙度为0.1—0.3mm,水在管内的适宜流速范围为0.5~3In?s~.表1列出了选用不同粗糙度的管材时的计算结果.可见,程序运行结果可靠.39表1不同粗糙度管材的适宜管径算例2]:计算回流比变化时的产品组成及塔板组成分布.某精馏塔有1O块理论板,用于分离苯.甲苯溶液,原料中苯的组成=0.25(摩尔分数,下同),于第8板(自塔顶开始计数)加料,物系的相对挥发度=2.47.已知回流比R:5,泡点进料时馏出液产品组成=0.98,釜液产品组成:0.085.若将回流比改为8,塔顶采出率D/F及进料热状况均不变,求塔顶,塔底的产品组成.,w及塔内各板的气液相组成. 解:原工况(R=5)时,据全塔物料衡算,有:::0.1844,D一w新工况(R=8)时,据全塔物料衡算,有::(6)^1,一D/F精馏段操作线方程为:RDy提馏段操作线方程为:R+F,DF/D一,n~w(7)(8)相平衡方程为:=—一(9)一d一(一1)Y,计算方法是以w为试差变量,利用式(6)~(9)求出.及塔板上两相组成分布(见图1),式(6)~(9)中,,Y分别指液相与气相中轻组分的摩尔分数,下标n或(n十1)为塔板序号,塔板自塔顶开始计数.若}w—.J≤(为收敛精度),则表明假设的w值正确,计算终止.显然,手算过程很繁琐.由上述分析可知,尽管运算过程复杂,但仅有一个未知变量w,可利用Matlab提供的fzero函数求解.定义函数.厂()为f()=.一w,.为w的复杂函数,其值通过逐板计算确定. 按R=5时的产品组成对w赋初值.x1X2X3X4X5X8X9X10ff\1\f\f\f\f\ff\fxD—y1y2y3y4y5y6y1y8Y9Ylo图1塔板气液组成的计算思路Matlab程序(distillation.13q)清单如下:functionditillation%程序定义clear;clc%主程序开始globalDTFxfalphaNMNRglobalYxxdDTF=0.1844;alpha=2.47;N=10;NM:8;%第6行xf=0.25;%第7行R=8;%第8行xw0=0.085;XW=fzero(@func,xw0);fprinff(\txd=%8.5f\txw=%8.5f\n,xd,xw);fprinff(\tNo\tx\ty\n);fori=1:Nfprintf(\t%3d\t%8.5f\t%8.5f\n,i,x(i),Y(i));end%主程序结束functionf=func(XW)%自定义内部函数globalDTFxfalphaRNMNYxxdxd=(xf—XW(1一DTF))/DTF;ifxd<0xd=0:elseifxd>1xd=1:endY(1)=xd;fori=1:(NM一1)x(i)=Y(i)/(alpha一(alpha一1)Y(i));%相平衡方程y(i+1)=R/(R+1)x(i)+xd/(R+1);%精馏段操作线方程ify(i+1)<0Y(i+1)=0;elseifY(i+1)>1Y(i+1)=1;endendfori=NM:(N一1)x(i)=Y(i)/(alpha一(alpha一1)Y(i));y(i+1)=(R:l=DTF+1)x(i)一(1一DTF)XW;Y(i+1)=Y(i+1)/(R+1)/DTF;%提馏段操作线方程ifY(i+1)<0Y(i+1):0;elseifY(i+1)>1Y(i+1)=1;endendx(N)=Y(N)/(alpha一(alpha一1)Y(N));f=x(N)一XW;程序运行结果:.=0.993,w:0.0821.各板组成见表2.41文献[3]的结果为初设值w=0.0821,.=0.0825,所以本程序运行结果可靠.本算例表明,fzero函数对待求单变量非线性方程f()=0中的函数)的定义很灵活,其形式繁简皆宜.表2塔板气液组成分布No.YNo.Y10.9820.99360.5200.72820.9600.98470.3520.57230.9150.96480.2290.42340.8310.92490.1480.30150.6950.849100.08210.18l算例3_3J:进料组成变动对精馏塔操作的影响:文献[3]指出:若一个精馏塔的进料组成由下降至,则在同一回流比及塔板数下塔顶馏出液组成将由.下降至,塔釜组成将由w下降至.理论教学时,常采用作图法阐释上述结论.如果让学生自己计算,不但可以加深对教学内容的理解,而且运算结果更具说服力.表3列出了进料组成变动(其他条件不变,即D/F=0.1844,回流比R=5,相对挥发度=2.47,总板数N=10,于第8板加料)时,采用distillation.ITI程序的运行结果.可见计算结果与预测趋势相符.表3进料组成变动对精馏结果的影响FXDXWFXDXW0.100.4610.O18O.200.8800.0460.150.6790.0300.220.9410.0570.180.8030.0390.250.9800.085若要预测加料位置,原料组成,回流比变化时产品质量的变化趋势,只要分别修改distil.1ation.m程序清单的第6行,第7行和第8行.以上3个算例表明,由于Matlab自带丰富的函数,学生只要清楚被求解问题的计算思路,掌握用Matlab编程的基础知识,就能很快利用Matlab求解化工原理计算问题.应用Matlab求解化工原理操作型计算问题,学生不需编制较难的数值计算程序(如求解非线性方程(组)),只需弄清问题的求解思路,编程难度大为降低,程序可读性强,计算快捷,准确.从笔者的教学实践看,当教师提供了示例程序清单后,学生能很快地掌握Matlab的编程方法,并在教师的示例程序基础上灵活变通,这样既提高了学生的学习积极性,又克服了学生对复杂计算的畏难情绪,可让学生有更多的精力用于创造性学习.参考文献1黄华江.实用化工计算机模拟——Madab在化学工程中的应用.北京:化学工业出版社,20042何潮洪,冯霄.化工原理(上册).北京:科学出版社,20013陈敏恒,丛德兹,方图南,等.化工原理(下册).第3版.北京:化学工业出版社,2006 42。
Matlab与化工数值计算-第5讲常微分方程数值解
Matlab与化工数值计算-第5 讲常微分方程数值解
odefile的编写
求解初值问题:
y
'
y
2x y
y ( 0 ) 1
(0x1)
y' f (x, y)
y(a)
y0
ode输入函数
输出变量为因变量 导数的表达式
function f=fun(x,y) f=y-2*x/y;
自变量在前,因变 量在后
可以设置的参数参见odeset ❖ P1,P2,…的作用是传递附加参数P1,P2,…到ode文件。当options缺省时,应
在相应位置保留[],以便正确传递参数。
常微分方程初值问题解算指令比较
解算指 令
算法
ode45 ode23 ode113
四五阶Runge-Kutta法
二三阶Runge-Kutta法
1.根据常微分方程要求的求解精度与速度要求
求解初值问题:
y
'
y
2x y
y ( 0 ) 1
(0x1)
比较ode45和ode23的求解精度和速度
ode45和ode23的比较
function Cha5demo1 %Comparison of results obtained from ode45 and ode23 solver format long y0=1; tic,[x1,y1]=ode45(@fun,[0,1],y0);t_ode45=toc tic,[x2,y2]=ode23(@fun,[0,1],y0);t_ode23=toc plot(x1,y1,'b-',x2,y2,'m-.'), xlabel('x'),ylabel('y'), legend('ODE45','ODE23','location','Northwest')
Matlab在化工数值计算中的应用
Matlab 在化工数值计算中的应用(提纲) 基础知识Command Window 指令窗简介最简单的计算器使用方法加减乘除和幂运算符、矩阵的输入形式、常见表达式形式数值、变量和表达式数值的表示方法(十进制、科学记数)、变量命名规则(对大小写敏感,变量名的第一个字母必须为英文字母,不得含空格,但可含下划线链接符)、Matlab 默认的预定义变量(ans/inf/i 或j/pi/NaN 等)、复数和复数矩阵(把复数作为一个整体处理、real(z),imag(z),abs(z)/模,angle(z)/相角)。
例1:已知/612334,12,2i z i z i z e π=+=+=,并计算123/z z z z =计算结果的图形表示。
例2:画出衰减振荡曲线/3sin3t y e t -=及它的包络线并计算/30t y e -=。
t 的取值范围是[]04π, t=0:pi/80:4*pi; %定义自变量取值数组y0=exp(-t/3); %计算与自变量相应的y0数组y=exp(-t/3).*sin(3*t);%计算与自变量相应的y 数组plot(t,y,'-r',t,y0,':b',t,-y0,':b') %用不同颜色,不同线条绘制曲线数值计算结果的显示格式format/format short, format long, format short e, format long e, 标点符号的使用指令窗的常用控制指令clc, clear,edit, help, exit/quit, typeM 角本文件的编写与运算路径的制定帮助系统数值数组及其运算数组及其运算是Matlab 的核心内容2.1 一维数组的创建与赋值(逐个元素输入法、冒号生成法);2.2 二维数组的创建与复制(直接输入法)2.3 执行数组运算的常用函数三角函数、反三角函数、幂指对函数、复数函数(abs,angle,conj (共厄复数),imag,real)2.4 数组运算与矩阵运算A.’, A’,S./B,s*inv(B),A.^n,A^n,A.*B,A*B,A./B,A/B,f(A)注意运算符的小黑点。
计算机在化学中的应用——利用MATLAB求解化学计算题
晋中学院本科毕业论文(设计)题目计算机在化学中的应用-利用MATLAB求解化学计算题院系化学化工学院专业化学姓名学号0909111113学习年限2009年9月至2013年7月指导教师申请学位学士学位2013年5 月15日计算机在化学中的应用——利用MATLAB求解化学计算题摘要:MATLAB是由美国Math works公司发布的主要面对科学计算、可视化以及交互式程序设计计算环境。
它能有效地解决数值线性代数、数值逼近、最优化等科学和工程问题。
编制程序方便,求解化学计算题高效快速。
本文分别以结构、分析、化工三方面的典型例题,来说明MATLAB在化学中的应用。
关键词:MATLAB;化学计算题;计算应用;结构;分析;化工Applications of MATLAB in Chemistry—Use MATLAB SolvingChemical Calculation ProblemsAuthor’s Name:Lijiajia Tutor: DongtaoABSTRACT:MATLAB, released by the America Mathwoks Company, is the computing environment mainly in the face of scientific computing, visualization and interactive programming. It can efficiently solve problems in science and engineering such as numerical linear algebra, digital approximation, and optimization. It also has characters of convenient programming and efficiently and quickly solving chemical calculation problems. This paper will explain MATLAB in the application of chemistry by referencing typical examples about structural chemistry, analytical chemistry and chemical industry.KEYWORDS:MATLAB;Chemical calculation problems;Computing applications;Structural chemistry;Analytical chemistry ;Chemical industry目录1 MATLAB简介 (1)1.1MATLAB的简要发展 (1)1.2 MATLAB的功能介绍 (1)2 MATLAB在化学中的应用 (2)2.1 MATLAB在结构化学计算中的应用—休克尔分子轨道的计算 (2)2.2 MATLAB在分析化学中的应用—计算溶液的pH (3)2.2.1 一元强酸(碱)中H+的计算 (3)2.2.2 一元弱酸(碱)溶液pH的计算 (4)2.3 MATLAB在化工计算中的应用—解非线性方程(组) (6)2.3.1 解非线性方程 (6)2.3.2 解非线性方程组 (7)3结语 (8)注释 (9)参考文献 (10)致谢 (11)1 MALAB简介1.1MATLAB的发展历史MATLAB是Math works公司推出的适用于科学和工程计算的数学软件系统,MATLAB即Matrix(矩阵)和Laboratory(实验室)的简称,雏形是Cleve Moler教授为学生编写的用于Linspack和Eispack的接口程序。
利用MATLAB甲醇-庚烷二元体系汽液平衡的模拟计算
计算机在化学化工中的应用结课作业专业与班级:******* 姓名:***** 序号: ** 成绩:甲醇-庚烷二元体系汽液平衡的模拟计算一、问题描述1.MALTAB简介:Matlab (Matrix Laboratory) 是美国Mathwork公司推出的一种面向科学和工程计算的高级语言,它具有强大的符号、数值运算,矩阵运算以及图形显示的功能,特别是在矩阵运算方面具有其他语言难以比拟的优越性,因此Matlab已经成为国际公认的科技应用软件.在化工生产中,为了获得混合物汽液相平衡的热力学基础数据,往往要利用有关的数学模型来进行数据关联和推算.而这些数学模型一般都是含有双参数或多参数的超越方程,因此免不了要做一些繁琐而复杂的科学计算.随着计算机的迅速发展,人们纷纷运用各种计算机高级语言来做这方面的工作.然而运用如Basic, C语言等编制计算机程序,既需要对相关算法有深刻的了解,还需要熟练地掌握所用语言的语法及编程技.对许多科学工作者而言,这是有一定难度的.Matlab 的出现,解决计算困难。
2.问题的产生甲醇是一种化工生产比较常用的一种物质,他容易与许多物质形成共沸体系,需要利用恒沸精馏的方法经行分离。
而庚烷是一种能作为恒沸精馏的恒沸剂,如碳酸二甲酯(DMC)-甲醇共沸体系,正庚烷为恒沸剂。
为了能确立恒沸精馏的数学模型,则就必须要研究二元共沸体系与恒沸剂组成的三元体系的汽液平衡数据。
由于三元体系实验数据的测定比较麻烦,因此利用二元物系的实验数据,选用Wilson状态方程经行推算,为建立精馏分离数学模型提供必要的数据。
3.以甲醇-庚烷二元体系为例进行模拟计算:实验数据如下表:表一:CH3OH-C7H16汽液平衡实验数据T/K x CH3OH yCH3OH371.60 0.0000 0.0000367.11 0.0129 0.1374357.66 0.0540 0.3840352.65 0.0891 0.4946348.10 0.1646 0.6223 347.15 0.3137 0.8909 333.05 0.3942 0.9029 331.95 0.6594 0.8749 332.15 0.8120 0.8806 331.75 0.8650 0.9432 337.85 1.0000 1.0000由于没有给出安托因常数,需要拟合,查询数据如下:表二:安托因常数拟合数据CH 3OHC 7H 16T/KP/KPaT/KP/KPa300 18.544656 300 6.6478319675 305 23.896766 305 8.4579333579 310 30.504804 310 10.6611067857 315 38.594393 315 13.3202470415 320 48.418472 320 16.504340028 325 60.258708 325 20.2885406504 330 74.426809 330 24.7542072683 335 91.265722 335 29.9888950633 340 111.150730 340 36.0863115172 345 134.490430 345 43.1462380009 350161.72763035051.2744220529二、解决思路1. 在进行安托因常数的拟合时,调用格式为:beta = lsqnonlin (X,y,fun,beta0)的lsqnonlin 函数,用最小二乘法非线性拟合安托因方程:ln sat i i B p A T C=-+ (1)2. 在计算对应的气相组成时,先要计算出对应的活度系数参数Λ12,Λ21。
MATLAB在化工计算中的应用
A bstrac t: M ATLAB, produced by the Am er ica M athw orks Company, was a ma them a tica l softw are system used to ca lculation in science and eng ineer ing. It has characte rs o f good num erical stability and conven ience fo r
式 ( 4)是只含有一个未知数 ( 泡点温度 ) 的非线性方
程。将公式 ( 4)变换成等于零的函数式, 调用 MAT-
LAB 函数 fzero, 采用 [ x, fval] = fzero( fun, x0) 的 形 式, 可以找出函数值为零的点。
( 1) 编写名为 m y fun. m 的 M 文件:
存盘。
( 2) 在命令窗口输入:
> > x0= 90; % 泡点温度的初始值
> > [ x, fval] = fzero( @ m y fun, x0)
回车, 在命令窗口立即得到:
F = 0. 4415
MATLAB语言在化工传递计算中的应用_王淑钦
MATLAB 语言在化工传递计算中的应用王淑钦,张海满(青海大学化工学院,青海西宁810016)摘 要:MATLAB 是一种广泛应用于科学和工程计算的编程软件,可高效地解决数值计算分析等科学和工程问题,而且具有数值稳定性好,使用方便等特点。
本文通过化工传递过程中的2个典型算例,讨论了MAT -LAB 在化工传递过程计算中的应用。
关键词:MATLAB ;化工传递过程;数值计算中图分类号:TQ022 文献标识码:A 文章编号:1008-858X (2003)03-0043-04 化工传递过程计算问题是比较复杂的,具体计算涉及到插值、求积分、参数拟合、解常微分和偏微分方程、解线性和非线性方程等。
用通常的数值计算方法比较复杂、工作量大、而且准确度有限,利用一些计算机程序语言来解决传递过程中的计算问题,通常首先要编写或查找相应的计算机语言,例如,C 、FORTRAN 或BASIC 等语言的程序包、再进行编程、调试,最后计算得到结果,这样要求编写程序者具有较强的计算机语言使用能力,而且计算中要花费大量的时间和精力去调试程序。
而MATLAB 语言作为新一代的科学计算语言[1],具有强大的数值计算和符号计算功能,计算结果和编程可视化,具有数学和文字处理功能,更重要的是MATLAB 语言易学易用,不需要用户有很深的程序语言知识,也不要求用户深刻的了解算法和编程技巧。
因此在化工传递中利用MATLAB 语言来解决计算问题具有很明显的优越性。
以下是利用MATLAB 语言对化工传递过程中的典型问题进行计算,结果可以表明此方法简单实用,简化并优化了计算过程,运行效率高,数值稳定好,精度高而且能够直观地给出计算结果。
1 MATL AB 在化工计算中的应用实例[2]1.1 一维非定常扩散的数值计算一片物料厚0.004m ,所含溶质的初始浓度分布如下表所示。
表1 物料所含溶质的初始浓度分布Ta ble 1 Initial concentration distributionof the solute in the materialx (m )浓度(kmol m 3)位置01.0×10-31(暴露面)0.0011.25×10-320.0021.5×10-330.0031.75×10-340.0042.0×10-35(绝缘面)表中x 是距暴露表面的距离。
MATLAB在化学化工行业中的应用
MATLAB在化学化工行业中的应用1.摘要自20世纪70年代晚期,Cleve Moler基于LINPACK和EISPACK软件包的部分函数,用Fortran开发设计MATLAB 初始版本以来,经过近30年的不断完善,由原来含有80个函数的矩阵计算工具,发展到包含89个不同应用工具箱和功能模块,广泛应用于工程计算、控制设计、信号处理与通讯、图像处理、测试测量、计算生物学以及金融建模与分析等领域,功能强大的数学软件及程序开发系统,目前的最新版本为MATLAB R2015b。
国内对MATLAB的应用研究,最早为张文乐等,而在化学化工领域的应用研究起步较晚,任佩林等首先用MATLAB编程计算换热管固有频率的传递矩阵。
本文首先讨论MATLAB发展简史及其特点,而后综述近十年来,国内化学化工领域的应用情况,从它与其它语言的混合编程、与其它软件的集成、工具箱的开发与应用等方面等,并就以后如何应用提出建议。
关键词:MATLAB,化学,数据库工具箱2.MATLAB在化学化工中的应用2.1工具箱的开发由于MATLAB的开放性,用户可方便地修改源文件,或加入自己的文件,设计出新的工具箱,以满足不同专业的需要。
姜继海等以实现一般数据可视化为起点,增加一些特定于流场数据可视化的特点,开发设计了包括二维、三维数据函数表达式的图形可视化,以及编辑处理屏幕上的图形,能绘制有限元网格图,显示网格的拓扑矩阵,并绘制网格拓扑阵的消元树,绘制真实感映射图象的可视化软件工具箱(Visualization Toolbox),实现了一般的二维和三维数据可视化、有限元网格绘制、流场流线绘制以及流场拓扑映射图等功能。
2.2与其它程序设计语言的混合编程及应用由于MATLAB是一种解释性的语言,运行效率低,并且在其环境下开发,应用程序大都不能脱离其运行环境。
利用其它强大语言的功能,则可以弥补其处理问题时的缺陷,充分发挥各自的优势。
2.2.1与Delphi的混合编程杨敏等[1]以MATLAB为自动化服务器,以Delphi语言编写的程序为自动化控制器,并通过Delphi的OLE Variant 类型引用MATLAB的神经网络工具箱类型库,达到MAT-LAB和Delphi混合编程的目的,实现了炼钢过程氧化期终态的准确预报,并提供详细源代码及说明。
基于matlab的化学实验数据分析(含源文件)
基于Matlab的化学实验数据分析摘要:本文对化学实验数据分析方式做了详细的介绍,包括定量分析方式、模式识别、光谱分析法、色谱分析法,并对其中的一些方式给出了具体的应用。
同时本文也给出了一些MATLAB在化学实验数据分析方式中的应用,如回归分析等。
关键词:Matlab;化学实验数据分析;化学实验数据处置1 引言Matlab[1,2]是MathWorks公司于1982年推出的一套高性能的数值计算和可视化软件,它集数值分析、矩阵运算、信号处置和图形显示于一体,组成了一个方便的、界面友好的用户环境。
MATLAB 的推出取得了各个领域专家学者的普遍关注,其壮大的扩展功能为各个领域的应用提供了基础。
这些专家学者陆续推出了MATLAB工具箱,其中要紧有信号处置、操纵系统、神经网络、图像处置、鲁棒操纵、非线性系统操纵设计、系统辨识、最优化、模糊逻辑、小波、样条、通信和统计等工具箱, 而且工具箱还在不断增加, 这些工具箱给各个领域的研究和工程应用提供了有力的工具。
除此之外, MATLAB 还具有如下优势:(1) 语言简练,库函数丰硕,紧缩了一切没必要要的编程工作。
(2) 运算符丰硕,语法限制不严,程序设计自由度大,且程序可移植好,大体上不做修改就可在各类型号运算机和操作系统上运行。
(3) 图形功能壮大,数据的可视化超级简单。
(4) 原程序的开放性。
除内部函数之外,所有的MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改和加入自己的文件组成新的工具箱。
随着分析化学的进展,产生了化学计量学。
该门学科是化学、数学、统计学和运算机科学彼此交叉而形成的一门边缘学科, 它运用数学和统计学的方式,设计或选择最优量测程序和实验方式,并通过解析化学量测数据而获取最大限度的信息。
化学计量学中的计算问题一样比较复杂,尤其是高维数据的处置涉及到大量的矩阵运算,MATLAB 语言由于它独特的优势和壮大的计算功能为化学实验设计及数据处置提供了有力的工具。
Matlab应用于化工毕业设计的全过程计算
第35卷第4期Voi.35,No.42021年4月Apr.2021化工时刊Chemical Industry Times教改论坛dot:10.16597/kC issn100^154x.2021.04.009Matlab应用于化工毕业设计的全过程计算贺楚华姚陈侯三英史浪杜可杰*(南华大学化学化工学院,湖南衡阳421001)摘要将Matlab应用于化工毕业设计中的物料衡算、能量衡算、设备设计计算、选型、管道设计计算及技术经济分析,计算结果准确,加深了学生对化工基础知识和专业知识的理解,提高了学生解决复杂工程问题的能力,提升了化工毕业设计的质量。
关键词Matlab化工毕业设计工艺计算中图分类号:TQ015文献标识码:A化工是化学工程与工艺一要的实程,主要内容包括路线的、工艺流程、物料衡算、能算、设备算、安全和“三”方案的制定、评相关的[1]o化工中的物料衡算、能量衡算一般采工计算,部学算采用Aspen P1us、Pre H等化工流程模拟软件计算。
采用工计算,计算工作量大,容出错,采化工流程模拟软件计算,虽然能快速解决工艺计算问题,但对学握化工基和作。
Matlab是由美国MathWorks公司开发的一种以阵为基础的互程,大的数值、图和算功能。
近年来,学化工毕业设计过程中,要学生采用Matlab编程进行化工毕的全过程计算,取得的教学效果o1物料衡算物料衡算是化工工艺设计最基本、最重要的内容之一,通过物料衡算,求出出各设备物料量、组成,结合能算,以确定各设备的工艺尺寸、设备、!物料算定行!其基本表达式为[2]:%C(%D+A+%B(1)中:C是进入体系的物料,D是离系的物料,A是体系累的物料,B是因滴原因的物料。
物料衡算一般包括反应过程离过程计算,分离过程包括闪蒸、精、、蒸出、萃、液-固分离、气-固分离、液-液分离和干燥等,其计算可按文[3,4]方法进行。
应过程,率(某),根品算的投料量,原料的投料量按投料比确定,化率、算出反应器出料物流的组成、流率。
化工过程计算中Matlab的应用
依靠 实验获 取 物 性 数据 , 自变量 与 函数 间 的关
l 引 言
化工过 程计 算 、 模拟 系统 的开 发 、 制 和优化 是 控
制 约化学 工业发 展 的 一个 瓶颈 , 于 化工 问题 比较 由
系可 能不 清楚 。 须 建 立通 用 化 的 方 法 。因 而 在 化 必 工过 程计算 中 , 算 气 体 和 液 体 的 热力 学 性 质 具 有 估
维普资讯
7 4
甘
肃
科
技
第2 3卷
一
03 3 ,=00 9 .3 x .2 6
间 下系统 中各组 分 的浓 度 , 用 解题 器 应 用最 广 的 调
00 x — .5 I 2+0 1 x =一 .3 6 .5 00 5
00 5 2一 +0 1 5 = 一 0 5 .7 x 3 .2 x 0 36
.
oe5其格式为[ c= o e5(F , sa c d4 , t, ] d4 ’ t n, 0 。 。 p
)F是描述常微分 方程的 O E文件名 ; pn为一 , D ta s
行 向量 , 描述运 算 的 起 止 时 间 ; 为 浓 度 矩 阵 ,0为 c c 初 始状态 , 用列 向量 表示 。若 令 tpn / , 到如 sa  ̄13得
序, 也可以编写巨大复杂的应用程序 。 很容易地实现
F rrn或 C 语 言 的 几 乎 全 部 功 能 。它 建 立 在 向 ota 量 、 组 和 矩 阵 的 基 础 上 。 运 行 在 Wid ws 数 可 no 、 Unx 9 / i、X NT等 十几 个 平 台 , 机 界 面 直 观 , 用 人 使 方 便 , 已成 为国 际公 认 的最 优 秀 的 科技 界应 用 软 现 件 。本文通 过几 个 典 型 的 化 工 过 程 计算 实例 , 化 对
matlab在化学工程上的应用
硕士研究生课程论文(或读书报告)课程名称: MATLAB程序设计与应用题目: MATLAB在化学工程中的应用题目类型:课程论文学院:化学工程学院专业名称:化学工程姓名:学号:任课教师:提交时间:2013 年11 月21 日摘要本文以在化学科研与教学遇到的各种科学计算、作图、数据处理为核心,简述了MATLAB在这些方面的运用情况,及其处理数据的高效、直观性。
阐述了MATLAB在处理数据与其他数据处理软件的不同之处,突出其优越性。
MATLAB不仅是一种方便的科学计算软件,还是一种优秀的计算机语言。
与其他语言显著不同点在于:1)MATLAB能够直接对矩阵操作;2)MATLAB能够直接使用复数。
这让其在化学数据处理方面,化学计算方面具有更见广泛的应用。
能够帮助广大化学工作者轻易的解决在各化学分支遇到的各种复杂的作图、科学计算和数据处理问题。
ABSTRACTBased in the chemical research and teaching the various scientific computation, mapping, data processing as the core, the MATLAB in these aspects of the application, and its data processing and efficient, intuitive. Elaborated the MATLAB in the processing of data and other data processing software is different, highlighting its superiority. MATLAB is not only a convenient scientific calculation software, is a good computer language. Other languages with significantly different point depends on: 1) MATLAB can directly on the matrix operation;2) MATLAB can be directly used in the plural. This makes the chemical data analysis chemical calculation has more extensive application. To help the majority of chemical workers easily in the branch of chemistry that encountered in a variety of complex mapping, scientific computing and data analysis.1 引言本文通过对MATLAB在化学各分支的广泛应用。
Matlab与化工数值计算-第1讲 简介与基本数学运算
hold
path load
图形保持开关
显示搜索目录 加载指定文件变量
disp
save diary
显示变量或文字内容
保存内存变量到指定 文件 日志文件命令
quit
whos
退出Matlab
变量查看
!
调用DOS命令
通过Help学习Matlab
在命令窗口中键入>> help,则显示以下内容:
matlab\general matlab\ops matlab\lang matlab\elmat matlab\elfun matlab\specfun matlab\matfun matlab\datafun matlab\polyfun matlab\funfun matlab\sparfun matlab\scribe matlab\graph2d matlab\graph3d ……… - General purpose commands. - Operators and special characters. - Programming language constructs. - Elementary matrices and matrix manipulation. - Elementary math functions. - Specialized math functions. - Matrix functions - numerical linear algebra. - Data analysis and Fourier transforms. - Interpolation and polynomials. - Function functions and ODE solvers. - Sparse matrices. - Annotation and Plot Editing. - Two dimensional graphs. - Three dimensional graphs.
Matlab与化学化工计算
插值的数学定义
已知由g(X) (可能未知或非常复杂)产生的n+1 个离散数据(xi, yi), i=0,1,2,…,n,且这n+1个互 异插值结点满足a=x0<x1<x2<…<xn=b,在插值 区间[a,b]内寻找一个相对简单的函数f(x),使 其满足插值条件f(xi)=yi, i=0,1,2,…,n。再利用已 求得的 f(x)计算任一非插值结点x*处的近似值 y*=f(x*)。其中f(x)称为插值函数,g(x)称为被 插值函数
1.1 Matlab 简介
1967年由Clere Maler用FORTRAN语言 设计和编写
1984年Mathworks公司用C语言完成了 Matlab的商业化版本并推向市场
经过20余年的改进,Matlab已发展成为 一个具有极高通用性的、带有众多实用 工具的运算平台,成为国际上广泛认可 的优秀科学计算软件
5x1 6x2
1
x1
5x2 x2
6x3 5x3
6
x4
0 0
x3 5x4 6x5 0
x4 5x5 1
步骤 a 判断解的情况
b1 矩阵除法,验证解 b2 逆矩阵法
b3 rref
例7-4
求下列方程组的解
x1 x2 x3 x4 1 x1 x2 x3 x4 1
2x1 2x2 x3 x4 1
3.3.1 使用Matlab进行数据插值
一维插值只有一个自变量的插值 Matlab提供的一维插值函数是interp1
常用语法:YI = interp1(X,Y,XI,'method')
式中
X,Y───为已知数据点的x, y值; XI─── 为待插值数据点的x值; YI─── 为返回的插值结果; method───用于指定所采用的插值方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DIFF Difference and approximate derivative.
POLYDER Differentiate polynomial.
查询结果
DDE23 Solve delay differential equations (DDEs) with constant delays.
1993年
MathWorks 公司从加拿大 滑铁卢大学购 得5M.0a的ple的使 M用AT权L,AB推拥出有了 更符丰号富计的算数工据具类 型包和结构、更友 善的面向对象、 更加快速精良的 图形可视、更广 博的数学和数据 分析资源、更多 的应用开发工具
2004年,MATLAB 7.0版
6
Matlab 的优点
xn
b1 bb2
bs
15
2.2 线性方程组解的判断
齐次线性方程组AX=0,其解的情况可以 通过系数矩阵A的秩和未知数个数n的关 系来判断
如果系数矩阵的秩为n,方程组只有零解, x=0
如果系数矩阵的秩小于n,方程组有无穷多 解
如果系数矩阵的秩大于n,方程组无解
16
非其次线性方程组解的情况
5
Matlab 的发展
1984年,MATLAB第1版(DOS版)
1992年,MATLAB 4.0版
告别DOS版
1994年,MATLAB 4.2版 1997年,MATLAB 5.0版 1999年,MATLAB 5.3版 2000年,MATLAB 6.0版 2001年,MATLAB 6.1版 2002年,MATLAB 6.5版
3
1 Matlab 基础知识
4
1.1 Matlab 简介
1967年由Clere Maler用FORTRAN语言 设计和编写
1984年Mathworks公司用C语言完成了 Matlab的商业化版本并推向市场
经过20余年的改进,Matlab已发展成为 一个具有极高通用性的、带有众多实用 工具的运算平台,成为国际上广泛认可 的优秀科学计算软件
导航器 性能改进工具
目录窗口
工作空间 窗口标签 历史窗口 命令窗口 开始按钮
当前路径 打开目录
打开上一级目录
10
1.3 Matlab 的帮助功能
联机帮助系统
“Help”下拉菜 单中“Full Product Family Help”命令打开 联机帮助系统
演示文件 查找帮助
帮助索引 全文帮助
刷新
查找 打印
在应用中,常常把线性方程组
a11x1 a12 x2 a21x1 a22x2 as1x1 as2x2
a1n xn b1 a2n xn b2
asn xn bs
写成AX=b的一般形式,其中
a11 a12 Aa21 a22
as1 as2
a1n a2n,
asn
x1 Xx2,
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
1
2
3
4
5
6
8
9
North South
West
East
1
data1
0.9
1.9
0.8
1.8
0.7
1.7
0.6
1.6
0.5
1.5
0.4
1.4
0.3
1.3
0.2
1.2
0.1
1.1
0
1
2
3
4
5
6
8
Matlab三维作图
40
30
20
10
0 1
0.5
0 -0.5
-1 -1
0 -0.5
1 0.5
0.5
0
-0.5 2
1
2
0 -1
1 0 -1
-2 -2
1
0.5
0 -0.5
-1 -1
0
1 -1
0 -0.5
1 0.5
1 0.8 0.6 0.4 0.2
0 5
0 0
-5 -5
5
9
1.2 Matlab 的界面
打开文件 新建文件
剪切
菜单栏
复制 粘贴
撤销 重做
启动simulink
非齐次线性方程组AX=b,根据系数矩阵 A的秩、增广矩阵B=[A b]的秩和未知数 个数n的关系来判断其解的情况
如果系数矩阵A的秩等于增广矩阵B的秩且 等于n ,方程组有唯一解
如果系数矩阵A的秩等于增广矩阵B的秩且 小于n ,方程组有无穷多解
如果系数矩阵A的秩小于增广矩阵B的秩, 方程组无解
计算机在化学化工中的应用
七 Matlab与化学化工计算
1
本节要点
本章背景 Matlab基础 方程组求解 数据插值 作业
2
问题的提出
MATLAB语言与其它语言的关系仿佛和 C语言与汇编语言的关系一样
计算机语言的发展
数值运算
管理、可视化
智能化 解析运算
标志着计算机语言向“智能化”方向发 展,被称为第四代编程语言
语法简单易学,编程效率高 高质量、高可靠的数值计算能力 强大的矩阵运算能力 高级图形和数据可视化处理能力 提供600多个常用算法内建函数,以及众
多面向应用的工具箱
7
Matlab二维作图
120 150 180
90 1 60
0.8
0.6
0.4
0.2
30 0
210
330
240
300
270
1
0.8
17
例7-2 判断方程解的情况
(1)
x1 2x2 4x3 2x1 x2 x3
0 0
x1 x2 x3 0
;不能少
解:在Matlab中输入
>> a=[-1 -2 4; 2 1 1; 1 1 -1];
>> rank(a)
ans =
2 齐次线性方程组系数矩阵A的秩
为2,小于未知数个数3,方 程组有无穷多解
命令窗口查询
help lookfor
联机演示系统
Demos
若不知函数 确切名,可 “Lookfor关 键词”可查
11
help
Help全部主题
Help指定函数
12
例7-1
查找包含“diff”关键词的函数
>> lookfor diff
用户输入 的命令
SETDIFF Set difference.
DDESD Solve delay differential equations (DDEs) with general delays.
DEVAL Evaluate the solution of a differential equation problem.
…
13
2 线性方程组求解
14
2.1 线性方程组的一般形式
计算系数矩阵A 的秩
18
例7-2—(2)
7x1 28x3 1
(2)
28x2
x3
39
28x1 196x3 7
“%”是 Matlab的注释 符,%后的语 句作为注释处 理
解:>> a=[7 0 28; 0 28 1; 28 0 196];
>> b=[1 -39 -7]';
%b为列向量,故输入行向量后转置