FC2ブログ

# ラグランジュ補間 Lagrange Interpolation
# 引数 X軸 Y軸 X軸補間 (\@X, \@Y, \@PriceX)
# 戻り値 ラグランジュ補間 (@LagrangeInterpolation)
sub LAGRANGEINTERPOLATION{
my ($X, $Y, $PriceX) = @_;
my @LagrangeInterpolation = ();
my $CountX = @$PriceX - 1;
my $count = @$X - 1;

# 配列数の確認
if(($count < 0) || (@$X != @$Y) || (@$PriceX < 0)){
return 0;
}

# 計算 Y軸補間
for(my $i = 0; $i <= $CountX; $i++){
my $x = $$PriceX[$i];
my $lagrange = 0;

for(my $j = 0; $j <= $count; $j++){
my $sum = 1;

for(my $k = 0; $k <= $count; $k++){
next if($j == $k);
$sum *= ($x - $$X[$k]) / ($$X[$j] - $$X[$k]);
}

$lagrange += $sum * $$Y[$j];
}

# ラグランジュ補間 Lagrange Interpolation
$LagrangeInterpolation[$i] = $lagrange;
}

return @LagrangeInterpolation;
}


参考URL
2 ラグランジュ補間
オンライン コンパイラ/インタプリタ
テクニカル分析
プロフィール

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

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

検索フォーム


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