cos関数
概要
C言語でコサイン値を計算する関数です。
<math.h>
を#include
することによって使うことができます。
定義
定義は次の通りになります。
double cos(double)
機能 | 型 | 内容 |
---|---|---|
第1引数 | double |
任意のラジアン値 x |
返り値 | double |
余弦値 cos(x) |
仕様
ISO/IEC 9899:1999 における仕様を示します。
7.12.4.5 The cos functions
Synopsis
1 #include <math.h> double cos(double x);
float cosf(float x);
long double cosl(long double x);
Description
2 The cos functions compute the cosine of x (measured in radians).
Returns
3 The cos functions return cos x.
また、JIS X 3010:2003 における仕様を示します。
7.12.4.5 cos 関数群
形式 #include <math.h>
double cos(double x);
float cosf(float x);
long double cosl(long double x);
機能 cos 関数群は,x(ラジアン値)の余弦を計算する。
返却値 cos 関数群は,余弦値を返す。
使用例
#include <stdio.h> #include <math.h> #define PI 3.14159265358979323846 int main() { printf("%lf\n", cos(0.0)); printf("%lf\n", cos(PI / 6.0)); printf("%lf\n", cos(PI / 4.0)); printf("%lf\n", cos(PI / 3.0)); printf("%lf\n", cos(PI / 2.0)); printf("%lf\n", cos(PI)); return 0; }
結果は以下のようになります。
コンパイラはEmbarcadero C++ 7.20
です。
./cos.exe 1.000000 0.866025 0.707107 0.500000 0.000000 -1.000000
実装例
#ifndef M_PI #define M_PI 3.14159265358979323846 #endif double cos(double x) { double sum = 1, k = 1; int i; x -= (int)(x / (2 * M_PI)) * 2 * M_PI; for (i = 1;; i += 2) { k *= -(x * x) / (i * (i + 1)); if (sum == sum + k) return sum; else sum += k; } }
マクローリン展開を用いて実装することができるはずです。多分。
以下の図は0.000244140625ごとにxの値を変えたときのfor文の中身の実行回数です。
なお、for文の繰り返し回数は27回以内に収まるようです。
cos関数のマクローリン展開は以下の記事を参考にするといいです。
関連記事
最終更新日: 2018-05-19