関連情報
ホーム > 製品 > NAG数値計算ライブラリ > NAG Fortranライブラリ > サンプルソースコード集 > 複素数zのエアリー関数 Ai(z)と導関数 Ai'(z)

複素数zのエアリー関数 Ai(z)と導関数 Ai'(z)

Fortranによるサンプルソースコード
使用ルーチン名:s17dgf

Keyword: エアリー関数, 導関数, 複素数

概要

本サンプルはエアリー関数 Ai(z)あるいはその導関数 Ai'(z)を求めるFortranによるサンプルプログラムです。 本サンプルは複素数の引数zを読み込み、zの各値についてエアリー関数 Ai(z)あるいはその導関数 Ai'(z)を求めて出力します。

※本サンプルはNAG Fortranライブラリに含まれるルーチン s17dgf() のExampleコードです。本サンプル及びルーチンの詳細情報は s17dgf のマニュアルページをご参照ください。
ご相談やお問い合わせはこちらまで

入力データ

(本ルーチンの詳細はs17dgf のマニュアルページを参照)

このデータをダウンロード
S17DGF Example Program Data
 'F'   ( 0.3,  0.4)    'U'
 'F'   ( 0.2,  0.0)    'U'
 'F'   ( 1.1, -6.6)    'U'
 'F'   ( 1.1, -6.6)    'S'
 'D'   (-1.0,  0.0)    'U' 

  • 1行目はタイトル行で読み飛ばされます。
  • 2〜6行目に求めるのは関数か導関数かを示すフラグ(deriv)、複素数の引数zの値、スケーリングオプション(scal)を指定しています。"F"はエアリー関数Ai(z)、"D"はエアリー関数の導関数Ai'(z)を意味します。また、 "U"はスケーリングをしないことを意味し、 "S"はスケーリングすることを意味します。

出力結果

(本ルーチンの詳細はs17dgf のマニュアルページを参照)

この出力例をダウンロード
 S17DGF Example Program Results

 DERIV           Z         SCAL           AI          NZ

   F   (  0.3000,  0.4000)   U   (  0.2716, -0.1002)   0
   F   (  0.2000,  0.0000)   U   (  0.3037,  0.0000)   0
   F   (  1.1000, -6.6000)   U   (-43.6632,-47.9030)   0
   F   (  1.1000, -6.6000)   S   (  0.1655,  0.0597)   0
   D   ( -1.0000,  0.0000)   U   ( -0.0102,  0.0000)   0

  • 5〜9行目には求めるのは関数か導関数かを示すフラグ、引数zの値、スケーリングオプション、エアリー関数または導関数の値、エアリー関数または導関数の値がアンダーフローによりゼロにセットされたかどうかを示すフラグが出力されています。"0"はゼロにセットされていないことを意味します。

ソースコード

(本ルーチンの詳細はs17dgf のマニュアルページを参照)

※本サンプルソースコードは科学技術・統計計算ライブラリである「NAG Fortranライブラリ」のルーチンを呼び出します。
サンプルのコンパイル及び実行方法


このソースコードをダウンロード
    PROGRAM s17dgfe

!      S17DGF Example Program Text

!      Mark 23 Release. NAG Copyright 2011.

!      .. Use Statements ..
       USE nag_library, ONLY : nag_wp, s17dgf
!      .. Implicit None Statement ..
       IMPLICIT NONE
!      .. Parameters ..
       INTEGER, PARAMETER              :: nin = 5, nout = 6
!      .. Local Scalars ..
       COMPLEX (KIND=nag_wp)           :: ai, z
       INTEGER                         :: ifail, ioerr, nz
       CHARACTER (1)                   :: deriv, scal
!      .. Executable Statements ..
       WRITE (nout,*) 'S17DGF Example Program Results'

!      Skip heading in data file
       READ (nin,*)

       WRITE (nout,*)
       WRITE (nout,*) &
          'DERIV           Z         SCAL           AI          NZ'
       WRITE (nout,*)

DATA:  DO
          READ (nin,*,IOSTAT=ioerr) deriv, z, scal

          IF (ioerr<0) THEN
             EXIT DATA
          END IF

          ifail = 0
          CALL s17dgf(deriv,z,scal,ai,nz,ifail)

          WRITE (nout,99999) deriv, z, scal, ai, nz
       END DO DATA

99999  FORMAT (3X,A,'   (',F8.4,',',F8.4,')   ',A,'   (',F8.4,',',F8.4,')',I4)
    END PROGRAM s17dgfe


Results matter. Trust NAG.

Privacy Policy | Trademarks