24小时热门版块排行榜    

CyRhmU.jpeg
查看: 742  |  回复: 4

涂涂木

金虫 (正式写手)

[求助] 各位帮我看下这个simpson积分怎么理解啊

SIMPSON INTEGRATION

C                  NTOTH = 1000
C              A     = P(IC)
C                  H     = A/(TWO*DFLOAT(NTOTH))
C                  S     = ONE/TWO*FUN(A,QSAT,PK,TN)C                  SIMPSONLOOP: DO I=1,NTOTH-1
C                        S   = S+TWO*FUN((TWO*DFLOAT(I)-ONE)*H,QSAT,PK,TN)
C        +              +FUN(TWO*DFLOAT(I)*H,QSAT,PK,TN)
C                S = S+TWO*FUN((TWO*DFLOAT(NTOTH)-ONE)*H,QSAT,PK,TN)
C              ENDDO SIMPSONLOOP
C              H   = A/DFLOAT(NTOTH)

C              NTOTH1 = NTOTH + 1
红色字描述 P相当于x,那么第一个循环相当于x0,x1,x2,算得的值,我想问一下x0对应的值为什么是这个表达式,还有为什么会少了1/3啊
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

向前看
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
这是个程序吗?为啥都注释掉了啊……
2楼2011-12-15 18:34:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

涂涂木

金虫 (正式写手)

引用回帖:
: Originally posted by snoopyzhao at 2011-12-15 18:34:28:
这是个程序吗?为啥都注释掉了啊……

我现在计算的对这个simpson积分用不上,以后可能会用上,所以问问大家,这个程序描述simpson积分好像不像simpson基本公式
向前看
3楼2011-12-15 20:36:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖


jjdg(金币+1): 感谢支持 2011-12-16 01:15:26
你要贴的话,贴一个完整的程序,或者子程序上来,这样大家也好测试……

这段代码中连个变量的申明都没有,各个符号的来龙去脉也没有……
4楼2011-12-15 20:44:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

涂涂木

金虫 (正式写手)

引用回帖:
: Originally posted by snoopyzhao at 2011-12-15 20:44:31:
你要贴的话,贴一个完整的程序,或者子程序上来,这样大家也好测试……

这段代码中连个变量的申明都没有,各个符号的来龙去脉也没有……

C                ......... ISOTHERM CODE:
C  
C
C                TOTH ISOTHERM CODE:            
C
C                        THIRD ISOTHERM:                NISO(IC)=3
C                        3 PARAMETERS:                        NPISO(NISO(IC))= 3
C
C                PARAMETER STORAGE:
C                        PARS(1,IC)=        SATURATION LOADING QSAT (MOL/KG) OF IC
C                        PARS(2,IC)= ADSORPION CONSTANT KADS (Pa^-1)  OF IC
C                        PARS(3,IC)= TN   TOTH PARAMETER OF IC
C
            QSAT = PARS(1,IC)
            PK   = PARS(2,IC)
            TN   = PARS(3,IC)
            
                DEN =  (ONE + (PK*P(IC))**TN)**(ONE/TN)
            

            IF (IFLAG.EQ.0) THEN                        ! Calculate loading Qi at Pi

              Q(IC) = QSAT*PK*P(IC)/DEN

            ELSE IF (IFLAG .EQ. 1)  THEN        ! Calculate PSIi and dPSIi/dPi at Pi

C...              SIMPSON INTEGRATION

C                  NTOTH = 1000
C              A     = P(IC)
C                  H     = A/(TWO*DFLOAT(NTOTH))
C                  S     = ONE/TWO*FUN(A,QSAT,PK,TN)
C                  SIMPSONLOOP: DO I=1,NTOTH-1
C                        S   = S+TWO*FUN((TWO*DFLOAT(I)-ONE)*H,QSAT,PK,TN)
C        +              +FUN(TWO*DFLOAT(I)*H,QSAT,PK,TN)
C                S = S+TWO*FUN((TWO*DFLOAT(NTOTH)-ONE)*H,QSAT,PK,TN)
C              ENDDO SIMPSONLOOP
C              H   = A/DFLOAT(NTOTH)

C              NTOTH1 = NTOTH + 1
C
C              SIMPSONLOOP1: DO I = 1, NTOTH1
C               YM(I) = FUN(DFLOAT(I-1)*H,QSAT,PK,TN)
C              ENDDO SIMPSONLOOP1

C              SUM1 = ZERO
C              SUM2 = ZERO

C              SIMPSONLOOP2: DO I = 2, NTOTH, 2
C                    SUM1 = SUM1 + YM(I)
C              ENDDO SIMPSONLOOP2

C              NTOTH2 = NTOTH - 1

C              SIMPSONLOOP3: DO I = 3, NTOTH2, 2
C                    SUM2 = SUM2 + YM(I)
C              ENDDO SIMPSONLOOP3

C              S = (YM(1)+4.D0*SUM1+2.D0*SUM2+YM(NTOTH1))/
C        +               DFLOAT(THREE*NTOTH)
              S1 = QSAT*PK*P(IC)/DEN
              S2 = S1/QSAT
              NTOTH = 0
              SUM1  = 0.D0
300                  CONTINUE
              NTOTH = NTOTH +1

C                  Equation from D. Do, Adsorption analysis: Equilibrium & Kinetics,
C           Imperial College Press: London, 1998, p.212.
  
C              TERM = S2**(1.D0+DFLOAT(NTOTH)*TN)/(1.D0+DFLOAT(NTOTH))/
C        +             (1.D0+DFLOAT(NTOTH)*TN)

C                  From D. P.Valenzuela & A. L. Myers, Adsorption Equilibrium Data Handbook,
C           Prentice-Hall: New Jersey, 1989, p. 11.

              TERM = S2**(1.D0+DFLOAT(NTOTH)*TN)/(DFLOAT(NTOTH)*TN)/
        +             (1.D0+DFLOAT(NTOTH)*TN)
              SUM1 = SUM1 + TERM
             
                  IF(TERM.GT.TOL) GO TO 300
                  
C                  PSII(IC)  = QSAT*(-(ONE/TN-ONE)*S2-S2**(ONE/TN)*
C        +                  DLOG(ONE-S2)/TN-(ONE/TN-ONE)*SUM1)
                         
                  PSII(IC)  = QSAT*(S2-S2/TN*DLOG(ONE-S2**TN)-SUM1)

              DPSII(IC) = QSAT*PK/DEN

            ELSE IF (IFLAG .EQ. 2)  THEN        ! Calculate dQi/dPi at Pi

              DNDP(IC) = QSAT*PK/DEN/(ONE+(PK*P(IC))**TN)

            ELSE IF (IFLAG .EQ. 3)  THEN        ! Calculate  Pi        at Qi

                  
              P(IC) = ONE/PK/((QSAT/Q(IC))**TN-ONE)**(ONE/TN)

                ENDIF


          ELSE IF (NISO(IC).EQ. 4) THEN                           ! Fourth ISOTHERM

C
向前看
5楼2011-12-15 21:07:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 涂涂木 的主题更新
信息提示
请填处理意见