2017年11月19日
sin関数の自作
<PR>



今回はC言語のmath.hライブラリのsin関数の自作ソースコードを
載せたいと思います。
<PR>





sin()関数の自作
今回はC言語のmath.hライブラリのsin関数の自作ソースコードを
載せたいと思います。
*マクローリンの定理を用いてsin()関数を作っています.
*オリジナルに比べると引数が2~3を超えたあたりから急激に精度が落ちます.
*精度を上げるにはcos関数と組み合わせてsin(2x)=2sin(x)cos(x)とループ文を使う方法があります。
double my_sin(double x)
{
double result1, result2, result;
int n;
result1 = 0;
result2 = 0;
//ループを回す回数(ここでは5)を大きくすると精度が上がります
for(n = 1;n <= 5;n++)
{
result1 += my_pow(x, 4 * n - 3) / fact(4 * n - 3);
}
//ループを回す回数(ここでは5)を大きくすると精度が上がります
for(n = 1; n <= 5;n++)
{
result2 += my_pow(x, 4 * n - 1) / fact(4 * n - 1);
}
result = result1 - result2;
return result;
}
//xのn乗を計算する関数
double my_pow(double x, int n)
{
int i;
double pow_result = 1;
if(n == 0)
return 1;
else
{
for(i = 0;i < n;i++)
{
pow_result *= x;
}
return pow_result;
}
}
//xの階乗を計算する関数
int fact(int n)
{
int i, result = 1;
if(n == 0)
return 1;
else
{
for(i = 1;i <= n;i++)
{
result *= i;
}
return result;
}
}
<PR>


【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/6986195
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック