アフィリエイト広告を利用しています

広告

posted by fanblog

2017年11月19日

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>





この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/6986195
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
ファン
検索
<< 2021年02月 >>
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28            
最新記事
写真ギャラリー
最新コメント
タグクラウド
カテゴリーアーカイブ
月別アーカイブ
プロフィール
日別アーカイブ
×

この広告は30日以上新しい記事の更新がないブログに表示されております。