⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zeroj.f

📁 Fortran的数学物理方程数值算法源程序。这是"Numerical Methods for Physics"第二版的Fortran源程序
💻 F
字号:
      real*8 function zeroj( m_order, n_zero)
      integer*4 m_order, n_zero
! Zeros of the Bessel function J(x)
! Inputs
!   m_order   Order of the Bessel function
!   n_zero    Index of the zero (first, second, etc.)
! Output
!   z         The "n_zero"th zero of the Bessel function (Return value)
! NOTE: Uses the subroutine bess.f

      integer*4 MAXm_order
      parameter( MAXm_order = 200 )
      integer*4 i
      real*8 beta, mu, beta8, z, jj(MAXm_order+2), deriv

      !* Use asymtotic formula for initial guess
      beta = (n_zero + 0.5*m_order - 0.25)*(3.141592654)
      mu = 4*m_order**2
      beta8 = 8*beta
      z = beta - (mu-1)/beta8
     &        - 4*(mu-1)*(7*mu-31)/(3*beta8**3)

      !* Use Newton's method to locate the root
      do i=1,5
        call bess( m_order+1, z, jj )  ! Remember j(1) is J_0(z)
        ! Use the recursion relation to evaluate derivative
        deriv = -jj(m_order+2) + m_order/z * jj(m_order+1)
        z = z - jj(m_order+1)/deriv    ! Newton's root finding
      enddo
      zeroj = z

      return
      end

⌨️ 快捷键说明

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