fnewt.f

来自「Fortran的数学物理方程数值算法源程序。这是"Numerical Metho」· F 代码 · 共 31 行

F
31
字号
      subroutine fnewt( x, a, Nm, f, D)
      integer*4 Nm
      real*8 x(Nm), a(Nm), f(Nm), D(Nm,Nm)
!  Function used by the N-variable Newton's method
!  Inputs
!    x     State vector [x y z]
!    a     Parameters [r sigma b]
!    Nm    Max number of variables
!  Outputs
!    f     Lorenz model r.h.s. [dx/dt dy/dt dz/dt]
!    D     Jacobian matrix, D(i,j) = df(j)/dx(i)

      ! Evaluate f(i)
      f(1) = a(2)*(x(2)-x(1))
      f(2) = a(1)*x(1)-x(2)-x(1)*x(3)
      f(3) = x(1)*x(2)-a(3)*x(3)

      ! Evaluate D(i,j)
      D(1,1) = -a(2)        ! df(1)/dx(1)
      D(1,2) = a(1)-x(3)    ! df(2)/dx(1)
      D(1,3) = x(2)         ! df(3)/dx(1)
      D(2,1) = a(2)         ! df(1)/dx(2)
      D(2,2) = -1           ! df(2)/dx(2)
      D(2,3) = x(1)         ! df(3)/dx(2)
      D(3,1) = 0            ! df(1)/dx(3)
      D(3,2) = -x(1)        ! df(2)/dx(3)
      D(3,3) = -a(3)        ! df(3)/dx(3)

      return
      end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?