今日(2020/06/20)からアルゴリズムを勉強していこうと思う。選ばれたのはC言語です。理由は単純で今勉強中だから。メモ用として使っていくので詳しい解説はしない(というか知識がないからできない)。よく参考書にあるような数字の計算から始めるわけではないのでそこは理解していただきたい。では早速やっていこう。
環境構築に関しては以下の記事を参考にして構築した。(Windows)
※Macはわかりませんので各自で調べてください。
https://webkaru.net/clang/mingw-gcc-environments/
使用している書籍:C言語によるはじめてのアルゴリズム入門
著者:河西朝雄
#テイラー展開
今日のお題はテイラー展開。e^xについてのテイラー展開を行った。
taylar.c
#include <math.h>
#include <stdio.h>
#define N 10
// 階乗の計算
double factorial(int k)
{
double ret = 1.0;
double i;
for (i = 1; i <= k; i++){
ret *= i;
}
return ret;
}
double myexp(double x)
{
double e = 0;
for (int k = 0; k < N; k++){
e += pow(x, k) / factorial(k);
}
return e;
}
int main(void)
{
double e = myexp(1);
printf("値:%.8lf\n", e);
}
#出力結果
値:2.71828153
#まとめ
コードを書いた後に気づいたのだが、expという関数が存在するらしい。階乗のところで少し悩んでしまったのでやっぱりまだまだだな~となった。