中国矿业大学级士研究生课程考试试卷考试科目化工数值方法及Matlab应用考试时间2016.4.30学生姓名学号所在院系化工学院任课教师秦志宏中国矿业大学研究生院培养管理处印制成绩研硕15《化工数值方法及Matlab应用》试题班级姓名成绩1.(15分)数值计算方法的主要研究对象有哪些?其常用的基本算法主要包括哪三个方面?Matlab在解决化工数值计算问题方面有什么样的实用价值?2.(10分)数值计算中误差为什么不可避免?用什么标准衡量近似值的准确程度?解:数值计算中,一般只能得到近似解。误差的产生主要有以下几方面:(1)模型误差:用计算机解决科学计算问题首先要建立数学模型,是对实际问题的抽象、简化得到的,因而是近似的。我们把模型与实际问题之间出现的这种误差称为模型误差。(2)测量误差:建模时,实验、量测等数据误差称为观测误差。(3)方法误差(截断误差):由于计算机本身的特性,要求算法必须在有限步内完成,这就要求把数学模型用数值分析方法导出一个计算公式来近似,由此而产生的误差称为方法误差。(4)舍入误差:由于计算机字长有限,参加运算的数据只能截取有限位,由此而产生的误差称为舍入误差。一般来说,绝对误差的大小不能充分说明近似值的精确程度,一般用相对误差衡量近似值的准确程度。**/xaxaEr,*x为精确值,a为*x的一个近似数。3.(15分)在298K下,化学反应2OF2=O2+2F2的平衡常数为0.410atm,如在298K下将OF2通入容器,当t=0时为1atm,问最后总压是多少?取计算精度为10-3。解:首先写出求解问题的数学方程式。假设气体是理想气体,由反应的化学计量式可知,22222FOOF设氧的分压为p,平衡时有p21pp2。平衡时,有410.021423pp整理得0410.064.1640.1423ppp函数关系为0410.064.1640.1423ppppf非线性方程求根问题,如何确定求解区间ba,?由计算得0424.03.0,1156.02.0ff因此,有根区间为3.0,2.0,用求单根的二分法计算,求解得氧气分压。编写二分法的MATLAB程序:bisect.mfunction[xstar,index,it]=bisect(fun,a,b,ep)%fun为需要求根的函数;%a,b为初始区间的端点;%ep为精度,缺省值为1e-5'%当(b-a)/2ep时,算法终止;%xstar为当迭代成功时,输出方程的根,%当迭代失败时,输出两端点的函数值;%index为指标变量,%index=1时,表明迭代成功,%index=0时,表明初始区间不是有根区间;%it为迭代次数.ifnargin4ep=1e-5;endfa=feval(fun,a);fb=feval(fun,b);iffa*fb0xstar=[fa,fb];index=0;it=0;returnendk=0;whileabs(b-a)/2=epx=(a+b)/2;fx=feval(fun,x);iffx*fa0b=x;fb=fx;elsea=x;fa=fx;endk=k+1;endxstar=(a+b)/2;index=1;it=k;编写本题的求根函数,函数名为fun1.m.functionf=fun1(x)f=4*x^3-1.640*x^2+1.64*x-0.410;调用二分法函数bisect.m求方程的根:[xstar,index,it]=bisect('fun1',0.2,0.3,0.0005)得到方程的根:xstar=0.2746index=1it=7运行结果表明二分法迭代成功,即达到精度要求,共迭代计算7次。2746.0p最后总压为atmppP2746.12134.(10分)实验测得某物质在20℃下,其水溶液浓度c(重量%)与粘度(Pa·s)的关系如下表。试用拉格朗日5次插值计算粘度在2.0×10-3和5.5×10-3时所对应的浓度。要求精确到小数点后第3位。解:由题意知,编写拉格朗日插值的MATLAB程序:Lagrange.mfunctionyi=Lagrange(x,y,xi)%Lagrange差值多项式,其中,%x为向量,全部的插值结点;%y为向量,插值节点处的函数值;%xi为标量或向量,被估计函数的自变量;%yi为xi处的函数估计值。n=length(x);m=length(y);%插值点与它的函数值应有相同个数;ifn~=merror('ThelengthsofXandYmustbeequal!');return;endyi=zeros(size(xi));fork=1:nw=ones(size(xi));forj=[1:k-1k+1:n]%输入的插值节点必须互异ifabs(x(k)-x(j))epserror('theDATAiserror!');reture;endw=(xi-x(j))/(x(k)-x(j)).*wendyi=yi+w*y(k);end编写求解本题的MATLAB程序:yaru4.mx=[1.005*10^-31.776*10^-32.480*10^-33.652*10^-34.621*10^-35.921*10^-3];y=[02030404550];xi=0:0.0001:0.0069;yi1=Lagrange(x,y,2.0*10^-3)yi2=Lagrange(x,y,5.5*10^-3)yi=Lagrange(x,y,xi);plot(x,y,'o',xi,yi)在MATLAB命令行窗口输入yaru4即可得到运行结果:(因运算结果数据量较大,只显示部分结果,截图如下)yi1=23.7414yi2=48.0033拟合函数图像如下:01234567x10-3-60-40-20020406080粘度Pa.s浓度%即在粘度为3100.2时,浓度为%741.23,粘度为3105.5时,浓度为%003.48。5.(20分)实验测得不同压力下纯水的沸点,试用线性最小二乘法求取四参数蒸汽压方程lnP=A+B/T+CT+DlnT中的四个参数,数据如下。解:由题意知,编写求解本题的MATLAB程序:ln5.mP=[1:8]'T=[4.006.408.008.809.229.559.709.86]'lnP=log(P);T_1=1./T;lnT=log(T);T_=[ones(length(P),1),T_1,T,lnT]regress(lnP,T_)在命令行窗口运行该文件,运算结果如下:P=12345678T=4.00006.40008.00008.80009.22009.55009.70009.8600T_=1.00000.25004.00001.38631.00000.15636.40001.85631.00000.12508.00002.07941.00000.11368.80002.17481.00000.10859.22002.22141.00000.10479.55002.25651.00000.10319.70002.27211.00000.10149.86002.2885ans=81.0274-134.86233.9293-45.4662即各个参数分别为:4662.459293.38623.1340274.81DCBA6.(30分)对于双组分简单精馏塔,其理论板数可用Lewis法计算。精馏段和提馏段的理论板数N、M分别为:dfxxdRyxxydxN/)(fwxxwRxyxydxM'/)(现有氯仿-苯二元物系,其汽液平衡数据为:x0.1780.2750.3720.4560.6500.844y0.2430.3820.5180.6160.7950.931若xf=0.4,xd=0.9,xw=0.15,R=5,R’=4,试用Matlab求出所需理论板数。解:首先,根据,x和y的数据拟合它们之间的函数关系,拟合的一次和二次函数如下图所示,二次函数的拟合效果比较好(也可以在拟合次数更高点,只需把代码里的2换成需要拟合的次数即可,本题就用二次拟合来做,书本中一般y与x的关系都认为是直线,这里用二次为了得到较准确的函数关系。)0.10.20.30.40.50.60.70.80.90.20.30.40.50.60.70.80.91一次和二次拟合图求出y与x的函数关系,代入精馏段和提馏段的理论板数N、M的公式中进行积分就能求出相应的N和M。编写求解本题的MATLAB程序:lewis.mx=[0.1780.2750.3720.4560.6500.844];y=[0.2430.3820.5180.6160.7950.931];xf=0.4;xd=0.9;xw=0.15;R=5;R1=4;p=polyfit(x,y,2)xx=0.170:0.001:0.850;yy=polyval(p,xx);plot(xx,yy,x,y,'*')Y=poly2sym(p);symsxf1=1/(Y-x-(xd-Y)/R);f2=1/(Y-x-(Y-xw)/R1);M1=int(f2,xw,xf);M=vpa(M1)N1=int(f1,xf,xd);N=vpa(N1)运行结果如下:p=-0.77641.8238-0.0571M=5.1761195414312404385321290726256N=4.64173108573103599817682415652910.10.20.30.40.50.60.70.80.90.20.30.40.50.60.70.80.91即为:Q=-0.77642x^2+1.8238x-0.0571由上可知,Q为y与x的函数关系式,精馏段和提馏段的理论板数N、M分别为:5和6。