Cライブラリ関数 -tanh()
説明
Cライブラリ関数double tanh(double x)戻り値xの双曲線正接。
tanC標準ライブラリの<math.h>中の1つの関数であり、双曲線正接値を計算するために使用されます。双曲線正接関数(tanh)は、多くの数学、物理学、工学アプリケーションで広く使用されています。
双曲線正接関数の定義は次のとおりです:

宣言
以下は tanh() 関数の宣言です。
#include <math.h> double tanh(double x); float tanhf(float x); long double tanhl(long double x);
パラメータ
- x-- 入力された実数。双曲線正接関数の引数を表します。
戻り値
この関数は x の双曲線正接を返します。結果の範囲は [-1, 1] です。
例
以下の例は、tanh() 関数の使い方を示しています。
例
#include <stdio.h>
#include <math.h>
int main ()
{
double x, ret;
x = 0.5;
ret = tanh(x);
printf("%lf の双曲線正接は %lf 度", x, ret);
return(0);
}
#include <math.h>
int main ()
{
double x, ret;
x = 0.5;
ret = tanh(x);
printf("%lf の双曲線正接は %lf 度", x, ret);
return(0);
}
上記のプログラムをコンパイルして実行すると、次の結果が得られます:
0.500000 的双曲正切是 0.462117 度
複数の値の双曲線正接を計算する
以下の例は、複数の値の双曲線正接を計算する方法を示しています:
例
#include <stdio.h>
#include <math.h>
int main() {
double values[] = {0, 0.5, 1, 1.5, 2};
int num_values = sizeof(values) / sizeof(values[0]);
for (int i = 0; i < num_values; i++) {
double x = values[i];
double result = tanh(x);
printf("tanh(%f) = %f\n", x, result);
}
return 0;
}
#include <math.h>
int main() {
double values[] = {0, 0.5, 1, 1.5, 2};
int num_values = sizeof(values) / sizeof(values[0]);
for (int i = 0; i < num_values; i++) {
double x = values[i];
double result = tanh(x);
printf("tanh(%f) = %f\n", x, result);
}
return 0;
}
コード解析
- 複数の値を含む配列を定義します
values。 - 使用
forループで各値を反復処理し、双曲線正接値を計算して結果を出力します。
上記のプログラムをコンパイルして実行すると、次の結果が得られます:
tanh(0.000000) = 0.000000 tanh(0.500000) = 0.462117 tanh(1.000000) = 0.761594 tanh(1.500000) = 0.905148 tanh(2.000000) = 0.964028
エラー処理
tanh()この関数はすべての実数入力に対して有効であるため、特別なエラー処理は必要ありません。この関数は errno を設定しません。errno、NaN も返しません。入力自体が NaN の場合を除きます。その場合、返される結果は NaN になります。
以下の例は、特殊な値(NaN や無限大など)を処理する方法を示しています:
例
#include <stdio.h>
#include <math.h>
int main() {
double values[] = {0, NAN, INFINITY, -INFINITY};
int num_values = sizeof(values) / sizeof(values[0]);
for (int i = 0; i < num_values; i++) {
double x = values[i];
double result = tanh(x);
if (isnan(x)) {
printf("tanh(NaN) = NaN\n");
} else if (isinf(x)) {
printf("tanh(%f) = %f\n", x, result);
} else {
printf("tanh(%f) = %f\n", x, result);
}
}
return 0;
}
#include <math.h>
int main() {
double values[] = {0, NAN, INFINITY, -INFINITY};
int num_values = sizeof(values) / sizeof(values[0]);
for (int i = 0; i < num_values; i++) {
double x = values[i];
double result = tanh(x);
if (isnan(x)) {
printf("tanh(NaN) = NaN\n");
} else if (isinf(x)) {
printf("tanh(%f) = %f\n", x, result);
} else {
printf("tanh(%f) = %f\n", x, result);
}
}
return 0;
}
コード解析
- 特殊な値(NaN や無限大など)を含む配列を定義します
values。 - 使用
forループで各値を反復処理し、双曲線正接値を計算して結果を出力します。 - 使用
isnan()とisinf()関数は入力値が NaN または無限大かどうかを確認し、それに応じて処理して結果を出力します。
上記のプログラムをコンパイルして実行すると、次の結果が得られます:
tanh(0.000000) = 0.000000 tanh(NaN) = NaN tanh(inf) = 1.000000 tanh(-inf) = -1.000000
まとめ
tanh()この関数は指定された値の双曲線正接を計算するために使用され、双曲線関数の演算を処理するための重要なツールです。適切に使用することで、tanh()関数は、数学計算、物理シミュレーション、工学アプリケーションで正確な結果を得ることができます。
C標準ライブラリ - <math.h>