ホーム  •  ニュース  •  フォーラム  •  アカウント情報  •  サイト内検索  •  新規登録
 ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
 カウントダウンブロック
カウントダウンイベントはありません
 メニュー

メイン
   地球科学のための R
     Airy 関数
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
投稿日時: 2006-5-11 13:02
登録日: 2004-7-29
居住地: 地球
投稿: 303
Airy 関数
Airy 関数は、虹の理論にも現れるし、WKB 近似などでも使われ、また、Rossby 波の初期擾乱に対する応答にも現れる関数である。気象には馴染の深い関数である。ところが、残念ながら、Rには標準装備されていない。もっとも、Airy 関数は、1/3 次の Bessel 関数と関係が深いので、それらで表現できるからかもしれない。いずれにしても、Airy 関数を準備しておくことは有益である。
#
# Airy function
#
Airy <- function(x){
  result <- x * 0
  for( i in 1:length(x) ){
    if( x[i] >= 0 ){
      result[i] <- 1/pi * sqrt(x[i]/3) * besselK( 2/3 * x[i]^(3/2), 1/3)
    }else{
      result[i] <- sqrt(-x[i])/2 * ( besselJ( 2/3 * (-x[i])^(3/2), 1/3) - 1/sqrt(3) * besselY(2/3 * (-x[i])^(3/2), 1/3) )
    }
  }

  return(result)
}

[img]http://buran.u-gakugei.ac.jp/LEARNING/index.php?plugin=attach&pcmd=open&file=Airy.png&refer=%B5%A4%BE%DD%B3%D8%2F2006-05-09[/img]
投稿日時: 2006-5-11 13:32
登録日: 2004-7-29
居住地: 地球
投稿: 303
Re: Airy 関数
こちらの方が R らしい書き方。
#
# Airy function
#
Airy <- function(x){
  result <- x * 0
  result[x>0]  <- 1/pi * sqrt(x[x>0]/3) * besselK( 2/3 * x[x>0]^(3/2), 1/3)
  result[x<0]  <- sqrt(-x[x<0])/2 * ( besselJ( 2/3 * (-x[x<0])^(3/2), 1/3) - 1/sqrt(3) * besselY(2/3 * (-x[x<0])^(3/2), 1/3) )
  result[x==0] <- 1.115353525912245791218/pi # please note, that this value is not the analytical one.
  return(result)
}

ただし、Airy(0) は、漸近的にこのあたりに落ち着いた、という値を用いていることに注意。解析的に求めたわけではない。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 


WWW を検索 meteorology.jp を検索

Powered by XOOPS 2.0 © 2001-2006 The XOOPS Project, Maitained by A. Mori
FI Theme :: XOOPS 2 Theme by ImageSquare :: Costomized by matchan and A.Mori