FC2ブログ

# ベルヌーイ多項式 Bernoulli Polynomial
# 引数 整数 値 ($n, $X)
# 戻り値 ベルヌーイ多項式 (@BernoulliPolynomial)
sub BERNOULLIPOLYNOMIALl{
my ($n, $X) = @_;
my $BernoulliPolynomial = 0;
my @BernoulliNumber = (1);
my $N = int($n);
my $Combination = $N;
my $BinomialCoefficient = 0;

# 整数の確認
if($N < 0){
return 0;
}

if($N == 0){
# ベルヌーイ多項式 Bernoulli Polynomial
$BernoulliPolynomial = 1;

return $BernoulliPolynomial;
}

# 計算
$BernoulliPolynomial = 1 * 1 * ($X ** $N);

for(my $i = 1; $i <= $N; $i++){
# 奇数番目のベルヌーイ数は1番目を除けば全て0
if(($i != 1) && (($i % 2) == 1)){
$BernoulliNumber[$i] = 0;
}else {
# ベルヌーイ数用 二項係数 Binomial Coefficient
my $combination = ($i + 1);
my $binomialcoefficient = 0;
my $Sum = (1 * $BernoulliNumber[0]);

for(my $j = 1; $j <= ($i - 1); $j++){
# ベルヌーイ数用 二項係数 Binomial Coefficient
$combination = $combination / $j;
$binomialcoefficient = $combination;
$combination = $combination * (($i + 1) - $j);

$Sum += $binomialcoefficient * $BernoulliNumber[$j];
}

# ベルヌーイ数 Bernoulli Number
$BernoulliNumber[$i] = -(1 / ($i + 1)) * $Sum;
}

# ベルヌーイ多項式用 二項係数 Binomial Coefficient
$Combination = $Combination / $i;
$BinomialCoefficient = $Combination;
$Combination = $Combination * ($N - $i);

my $tmp = ($BinomialCoefficient * $BernoulliNumber[$i] * ($X ** ($N - $i)));

# ベルヌーイ多項式 Bernoulli Polynomial
$BernoulliPolynomial += $tmp;
}

return $BernoulliPolynomial;
}


参考URL
Bernoulli polynomials - Wikipedia, the free encyclopedia
オンライン コンパイラ/インタプリタ
テクニカル分析
プロフィール

Author:雨宮
Firefoxを使用しているので気づかなかったけど、IE6でソースコードを上手くコピーできない

5/3
携帯用ならIE6でもソースコードをコピーできる
携帯用

検索フォーム


あわせて読みたいブログパーツ
一寸先は闇 RSS