回 帖 发 新 帖 刷新版面

主题:一阶微分

哪位大侠,帮忙回答一下啊,在用fortran求微分的时候,一般是对一个表达式求导,如果换成一系列的数,还能对这一系列的数求导吗?

回复列表 (共3个回复)

沙发

不太明白楼主意思,对数字求导不成0了么?是不是说这一系列的数是将一组自变量值代入函数后得到的函数值?那要用数值方法求导数了

板凳


对,就是你说的那个意思,明白了,我用数值求导

3 楼

SUBROUTINE Diff(N, DX, P, DP)
! COMPUTES THE FIRST DERIVATIVE DP OF P USING
! RICHARDSON EXTRAPOLATION FORMULA. THE DERIVATIVE AT THE
! BOUNDARIES ARE ASSUMED TO BE ZERO

     IMPLICIT NONE
      INTEGER :: N
      REAL*8 :: DX
      REAL*8 :: P(N), DP(N)
      INTEGER :: I

      DP(1)=0.0D0
      DP(2) = (P(3) - P(1))/(2.0D0*DX)
      DP(3) = (P(4) - P(2))/(2.0D0*DX)
      DO I = 4, N-3
          DP(I) = (P(I-2)-8.0D0*P(I-1)+8.0D0*P(I+1)-P(I+2))/(12.0D0*DX)
      END DO
      DP(N-2) = (P(N-1) - P(N-3))/(2.0D0*DX)
      DP(N-1) = (P(N) - P(N-2))/(2.0D0*DX)
      DP(N) = 0.0D0
      RETURN
      END SUBROUTINE DIFF

我来回复

您尚未登录,请登录后再回复。点此登录或注册