北京化工大学2002-2003学年第一学期 《计算化学》期末试卷答案(上机部分) 注:上机考试总分60分。 1.计算原理(化学原理和计算方法)(12分) 根据热力学知识,有 K 由上式得:KR=Kexp(S) 此题中,已知热烙与温度的关系:△H~T 可推导出识T关系,可根据离散点求积的方法即:用S1即sOn求积方法 RT2 (其中调用Lagrange插值法子程序计算任意点的函数值)计算S,然后通过S 求出773K下的平衡常数。 2.程序框图(18分) 开始 输入:热焓与温度△H~T的实验数据 X①.Y① XⅪ=X0,Y=YXI*XⅫ)=l,N 输入:积分上、下限T2,T1及KP1 两次调用Simpson积分法子程序计算面积S (其中调用Lagrange插值法子程序计算任意点的函数值) 计算KP2=KPI*EXP(S/R) 输出:KP2
北京化工大学 2002-2003 学年第一学期 《计算化学》期末试卷答案(上机部分) 注:上机考试总分 60 分。 A 1.计算原理(化学原理和计算方法)(12 分) 根据热力学知识,有 ∫ = Δ = 2 1 1 2 2 ln T T p p dT S RT H K K 由上式得: exp( ) 2 1 K p = K p ⋅ S 此题中,已知热焓与温度的关系:ΔH ~ T 可推导出 T RT H ~ 2 Δ 关系,可根据离散点求积的方法即:用 Simpson 求积方法 (其中调用 Lagrange 插值法子程序计算任意点的函数值)计算 S,然后通过 S 求出 773K 下的平衡常数。 2.程序框图(18 分) 开始 输入:热焓与温度 ΔH ~ T 的实验数据 X(I),Y(I) (I=1,N) 输入:积分上、下限 T2,T1 及 KP1 两次调用 Simpson 积分法子程序计算面积 S (其中调用 Lagrange 插值法子程序计算任意点的函数值) 计算 KP2=KP1*EXP(S/R) 输出:KP2 结束 XI=X(I),Y(I)=Y(I)/(XI*XI) (I=1,N)
3.源程序(18分) PROGRAM MAIN DOUBLE PRECISION EPS,A,B.X,Y,S,KP1,KP2 DIMENSION X(7Y(7) N=7 EPS=1.0E-5 OPEN(6,FILE=TESTA.Txt,STATUS-UNKNOWN) DATA X/623.0,648.0,673.0,698.0,723.0,748.0,773.0/ DATA Y1-50.7898,-5L.1390,-51.4738.-51.7943,-52.1006,& .52.3929-526715/ A-623 B=773 KP1-2644 D010I=1,N XI=XO 10 Y=YXI*XⅫ CALLSIMP(N.A.B.X.Y.EPS.S) R=8.314D-03 P21=DEXP(S/R) KP2=KP1*P21 WRITE(6.20)A.B.S WRITE(6.30)B.KPz F0RMAT(1X,'S,F6.2,K->',F6.2,K=,G12.6 30 FORMAT(1X.'Kp2(.F7.2.'KG12.6.'Pa-1) END SUBROUTINESIMP(M,A,B.X,Y.EPS.S2) DOUBLEPRECISIONA.B.X.Y.EPS.S2.FA.FB.X0.Y0 DIMENSION X(M).Y(MY H=B-A N=I CALLLGRG2CX YMA FAY CALLLGRG2(X.Y.M.B.FB) T1=0.5*H*(FA+FB) 10 S=0 D020K=1N X0=A+K-0.5)*H CALLLGRG2(X.Y.M.X0.Y0) 20 S=S+Y0 T2-0.5*(T1+H*S) S2=T2+T2-T1)M3.0
3.源程序(18 分) PROGRAM MAIN DOUBLE PRECISION EPS,A,B,X,Y,S,KP1,KP2 DIMENSION X(7),Y(7) N=7 EPS=1.0E-5 OPEN(6,FILE='TESTA.Txt',STATUS='UNKNOWN') DATA X/623.0,648.0,673.0,698.0,723.0,748.0,773.0/ DATA Y/-50.7898,-51.1390,-51.4738,-51.7943,-52.1006, & -52.3929,-52.6715/ A=623 B=773 KP1=2644 DO 10 I=1,N XI=X(I) 10 Y(I)=Y(I)/(XI*XI) CALL SIMP(N,A,B,X,Y,EPS,S) R=8.314D-03 P21=DEXP(S/R) KP2=KP1*P21 WRITE(6,20) A,B,S WRITE(6,30) B,KP2 20 FORMAT(1X,'S(',F6.2,'K-->',F6.2,'K)=',G12.6) 30 FORMAT(1X,'Kp2(',F7.2,'K)=',G12.6,'Pa-1') END SUBROUTINE SIMP(M,A,B,X,Y,EPS,S2) DOUBLE PRECISION A,B,X,Y,EPS,S2,FA,FB,X0,Y0 DIMENSION X(M),Y(M) H=B-A N=1 CALL LGRG2(X,Y,M,A,FA) CALL LGRG2(X,Y,M,B,FB) T1=0.5*H*(FA+FB) 10 S=0 DO 20 K=1,N X0=A+(K-0.5)*H CALL LGRG2(X,Y,M,X0,Y0) 20 S=S+Y0 T2=0.5*(T1+H*S) S2=T2+(T2-T1)/3.0
IFON.EO.DGOTO 40 30 D=ABS(S2-S1) IF(ABS(S2).GT.1.0)THEN D=ABS((S2-S1)S2) END IF IF(D.LT.EPS)GOTO 50 40 n=nin H=05*H T172 s1=S2 G0T010 50 Return END SUBROUTINE LGRG2(X.Y.N.T.Z) DIMENSION X(N)Y(N) DOUBLE PRECISION X.Y.T.Z.S 7=00 IF(N.LE.O)RETURN IF(N.EQ.1)THEN Z=Y1) RETURN END IF IF(N.EQ.2)THEN ZY1)*(TX2Y(2)*(T-X1)MX1)X2) RETURN END IF IF(T.LE.X(2))THEN K=1 M=3 ELSE IF(T.GE.X(N-1)YTHEN K=N-2 M=N ELSE 10 IF(IABS(K-M).NE.1)THEN L-K+M0/2 IF(TLTXOLDTHEN M-I ELSE K=L ENDIF G0T010
IF(N.EQ.1)GOTO 40 30 D=ABS(S2-S1) IF(ABS(S2).GT.1.0)THEN D=ABS((S2-S1)/S2) END IF IF(D.LT.EPS)GOTO 50 40 N=N+N H=0.5*H T1=T2 S1=S2 GOTO 10 50 RETURN END SUBROUTINE LGRG2(X,Y,N,T,Z) DIMENSION X(N),Y(N) DOUBLE PRECISION X,Y,T,Z,S Z=0.0 IF(N.LE.0)RETURN IF(N.EQ.1)THEN Z=Y(1) RETURN END IF IF(N.EQ.2)THEN Z=(Y(1)*(T-X(2))-Y(2)*(T-X(1)))/(X(1)-X(2)) RETURN END IF IF(T.LE.X(2))THEN K=1 M=3 ELSE IF(T.GE.X(N-1))THEN K=N-2 M=N ELSE K=1 M=N 10 IF(IABS(K-M).NE.1)THEN L=(K+M)/2 IF(T.LT.X(L))THEN M=L ELSE K=L ENDIF GOTO 10
END IF IF(ABS(T-X(K).LT.ABS(T-X(M)))THEN M=M+1 ENDIF END IF Z=00 DO30I-K.M S=1.0 DO20J-K.M IF(J.NE.I)THEN S=S*(T-X(J)Y(X(I)-X(J) END IE 20 CONTINUE Z=Z+S*Y(I) 30 CONTINUE RETurn END 4.运行结果。(12分) S623.00K>773.00K)=.161056E-01 Kp2(773.00K)=381.032 Pa-I B 1.计算原理(化学原理和计算方法)(12分) 化学反应速率方程: v=-de=ke dt 式中,y为化学反应速率,c为反应物浓度,1为时间,n为反应级数, k为反应速率常数,dcdu为反应物浓府随时间的变化率。 对气相反应 =p1 d 式中,p为反应物分压。 丙边取对数:hv=-当=h+nlhp 将实验所测得不同时间1的反应物分压P数据通过插值和差分法求出反应速率V。计算 nv和p后,用线性回归子程序计算反应级数n和反应速率常数k 2.程序框图(18分) 开始
END IF IF(ABS(T-X(K)).LT.ABS(T-X(M))) THEN K=K-1 ELSE M=M+1 END IF END IF Z=0.0 DO 30 I=K,M S=1.0 DO 20 J=K,M IF(J.NE.I)THEN S=S*(T-X(J))/(X(I)-X(J)) END IF 20 CONTINUE Z=Z+S*Y(I) 30 CONTINUE RETURN END 4.运行结果。(12 分) S(623.00K-->773.00K)=-.161056E-01 Kp2( 773.00K)= 381.032 Pa-1 B 1.计算原理(化学原理和计算方法)(12 分) 化学反应速率方程: n kc t c = − = d d ν 上式中,ν 为化学反应速率,c 为反应物浓度,t 为时间, n 为反应级数, k 为反应速率常数,dc/dt 为反应物浓度随时间的变化率。 对气相反应 n kp t p = − = d d ν 式中, p 为反应物分压。 上两边取对数: k n p t p ) ln ln d d lnν = ln(− = + 将实验所测得不同时间 t 的反应物分压 p 数据通过插值和差分法求出反应速率ν 。计算 lnν 和 lnp 后,用线性回归子程序计算反应级数 n 和反应速率常数 k。 2.程序框图(18 分) 开始
输入:数据点数N, 反应温度TO, 时间间隔H 时间t与总压P的实验数据T),P),反应物起始压力PO X1)0,Y1)=P0,X=T,Y0F2*P)-P0(I=2,N+1) 调用中心差分子程序计算反应速率R(W)(dp/dr) X(I)=ln[T(D)].Y(D)=ln[-R(D)](I=1.N+I) 调用线性回归子程序计算A,B (反应级数S=B,速率常数KS=EXP(A)N) 输出:A,BS,KS 3.源程序(18分) 结束 PROGRAM MAIN DIMENSION X(11).Y(11).V(11),XI(10),YI(10) DOUBLE PRECISIONX,Y.X1.Y1,V.H.A.B,R.S.SS.P0 OPEN(6,FILE-TESTB.TXT.STATUS-UNKNOWN) M=10 N-lI H=1.0E-5 P0=0.8315E05 DATA X1/8.02,12.18,17.30.24.55,33.00,42.50,55.08,68.05,& 90.05.1190/ DATAY1/0.78660.76860.7464,0.71940.6944,0.6701,0.6450,& 0.6244,0.5964,0.569 X(1=0 Y(1=P0 D0101=2N X0=X1-1 Y1-1)=Y1(-1)*1E05 10 YI=2*Y1L-1)-P CALLCF(N,H.X,Y.V) D01001=1N X(D-LOG(Y(D) Y(I)-LOG(ABS(V 100 CONTINUE CALLPK(N.X.Y.A.B.R) S=B
3.源程序(18 分) PROGRAM MAIN DIMENSION X(11),Y(11),V(11),X1(10),Y1(10) DOUBLE PRECISION X,Y,X1,Y1,V,H,A,B,R,S,SS,P0 OPEN(6,FILE='TESTB.TXT',STATUS='UNKNOWN') M=10 N=11 H=1.0E-5 P0=0.8315E05 DATA X1/8.02,12.18,17.30,24.55,33.00,42.50,55.08,68.05, & 90.05,119.0/ DATA Y1/0.7866,0.7686,0.7464,0.7194,0.6944,0.6701,0.6450, & 0.6244,0.5964,0.5694/ X(1)=0 Y(1)=P0 DO 10 I=2,N X(I)=X1(I-1) Y1(I-1)=Y1(I-1)*1E05 10 Y(I)=2*Y1(I-1)-P0 CALL CF(N,H,X,Y,V) DO 100 I=1,N X(I)=LOG(Y(I)) Y(I)=LOG(ABS(V(I))) 100 CONTINUE CALL PK(N,X,Y,A,B,R) S=B 输入:数据点数 N, 反应温度 TO, 时间间隔 H 时间 t 与总压 p 总的实验数据 T(I),P(I),反应物起始压力 P0(I=1, X(1)=0,Y(1)=P0;X(I)=T(I),Y(I)=2*P(I)-P0 (I=2,N+1) 调用中心差分子程序计算反应速率 R(W)(dp/dt) X(I)=ln[T(I)],Y(I)=ln[-R(I)] (I=1,N+1) 调用线性回归子程序计算 A,B (反应级数 S=B,速率常数 KS=EXP(A))N) 输出: A,B, S,KS 结束