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



<PR>





exp()関数の自作
*マクローリンの定理を用いてexp()関数を作っています.
*オリジナルに比べると引数が2~3を超えたあたりから急激に精度が落ちます.
精度を上げるには引数が1以上の時はeを後から掛け算し引数を1以下にする方法などがあります.
double my_exp(double x)
{
int i;
double result = 0;
//ループの回数(ここでは25)を増やせば精度は上がります.
for(i = 1;i <= 25; i++)
{
result += my_pow(x, i) / fact(i);
}
return result + 1;
}
//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;
}
}
//nの階乗を計算する関数
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/6986258
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック