FC2ブログ

# 双曲線正接(近似) Hyperbolic Tangent Approximation
# 引数 値 ($X)
# 戻り値 双曲線正接 ($HyperbolicTangentApproximation)
sub HYPERBOLICTANGENT{
my ($X) = @_;
my $HyperbolicTangentApproximation = 0;
my $BernoulliNumber = 1;
my $Num1 = 0;
my $Num2 = 0;
my $Num3 = 0;
my $Sum = 0;
my $Factorial = 1;
my $Pi = atan2(1, 1) * 4;
my $Pi2 = $Pi / 2;
my $Expansion = 20;

# 値の確認
if($X >= $Pi2){
return 0;
}

for(my $i = 1; $i <= $Expansion; $i++){
# 分子
$Num1 = 2 ** (2 * $i);
$Num2 = ((2 ** (2 * $i)) - 1);
$Num3 = $X ** ((2 * $i)- 1);
$BernoulliNumber = &BERNOULLINUMBER(2 * $i);

# 分母 階乗
for(my $j = (2 * $i); $j > (2 * ($i - 1)); $j--){
$Factorial = $Factorial * $j;
}

$Sum += (($Num1 * $Num2 * $Num3 * $BernoulliNumber) / $Factorial);
}

# 双曲線正接(近似) Hyperbolic Tangent
$HyperbolicTangentApproximation = $Sum;

return $HyperbolicTangentApproximation;
}

# ベルヌーイ数 Bernoulli Number
# 引数 整数 ($n)
# 戻り値 ベルヌーイ数 ($BernoulliNumber)
sub BERNOULLINUMBER{
my ($n) = @_;
my $BernoulliNumber = 1;
my @Bernoulli = (1);
my $Combination = 0;
my $BinomialCoefficient = 0;
my $N = int($n);
my $Sum = 0;

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

# 奇数番目のベルヌーイ数は1番目を除けば全て0
if(($N != 1) && (($N % 2) == 1)){
# ベルヌーイ数 Bernoulli Number
$BernoulliNumber = 0;

return $BernoulliNumber;
}

# 計算
for(my $i = 1; $i <= $N; $i++){
# 奇数番目のベルヌーイ数は1番目を除けば全て0
if(($i != 1) && (($i % 2) == 1)){
$Bernoulli[$i] = 0;
next;
}

# 二項係数 Binomial Coefficient
$Combination = ($i + 1);
$Sum = (1 * $Bernoulli[0]);

for(my $j = 1; $j <= ($i - 1); $j++){
# 二項係数 Binomial Coefficient
$Combination = $Combination / $j;
$BinomialCoefficient = $Combination;
$Combination = $Combination * (($i + 1) - $j);

$Sum += $BinomialCoefficient * $Bernoulli[$j];
}

$Bernoulli[$i] = -(1 / ($i + 1)) * $Sum;
}

# ベルヌーイ数 Bernoulli Number
$BernoulliNumber = $Bernoulli[$N];

return $BernoulliNumber;
}


HYPERBOLICSINE / HYPERBOLICCOSINE
http://blog-imgs-36.fc2.com/a/m/a/amamiyaprog/HyperbolicTangent1.txt

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

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

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

検索フォーム


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