FC2ブログ
最初
http://blog-imgs-36.fc2.com/a/m/a/amamiyaprog/Sine1.txt

修正1 5/20

# 正弦(近似) Sine Approximation
# 引数 値 ($x)
# 戻り値 正弦(ラジアン) ($SineApproximation)
sub SINE{
my ($x) = @_;
my $SineApproximation = 0;
my $X = abs($x);
my $Sum = 0;
my $Sign = 0;
my $Num = 0;
my $Factorial = 1;
my $Pi = atan2(1, 1) * 4;
my $Radian2Pi = 2 * $Pi;
my $Expansion = 20;

# 360度以上
if($X >= $Radian2Pi){
$X = $X - (int($X / $Radian2Pi) * $Radian2Pi);
}

for(my $i = 0; $i <= $Expansion; $i++){
# 符号
$Sign = (($i % 2) == 0 ? 1: -1);
# 分子
$Num = $X ** ((2 * $i) + 1);

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

$Sum += $Sign * ($Num / $Factorial);
}

# $xが負
$Sum = -$Sum if($x < 0);

# 正弦(近似) Sine
$SineApproximation = $Sum;

return $SineApproximation;
}


テイラー展開 - Wikipedia

一言
perlのsinでは、桁数が大きくてもも計算できるけど、コレだと計算が出来ない
なんでだ?

修正1 5/20
誤差ではなく項で打ち切り
オンライン コンパイラ/インタプリタ
テクニカル分析
プロフィール

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

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

検索フォーム


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