C ライブラリ関数 -sinh()
説明
C ライブラリ関数double sinh(double x)返すxの双曲正弦。
sinh()は C 標準ライブラリ<math.h>の関数の1つで、数値の双曲正弦値を計算するために使用されます。双曲正弦関数(sinh)は、数学、物理学、工学の多くの応用で広く使用されています。

双曲正弦関数の定義は次のとおりです:
宣言
以下は sinh() 関数の宣言です。
#include <math.h> double sinh(double x); float sinhf(float x); long double sinhl(long double x);
引数
- x-- 入力された実数で、双曲正弦関数の独立変数を表します。
戻り値
この関数は x の双曲正弦を返します。
例
以下の例は、sinh() 関数の使用方法を示しています。
例
#include <stdio.h>
#include <math.h>
int main ()
{
double x, ret;
x = 0.5;
ret = sinh(x);
printf("%lf の双曲正弦は %lf 度", x, ret);
return(0);
}
#include <math.h>
int main ()
{
double x, ret;
x = 0.5;
ret = sinh(x);
printf("%lf の双曲正弦は %lf 度", x, ret);
return(0);
}
上記のプログラムをコンパイルして実行すると、次の結果が得られます:
0.500000 的双曲正弦是 0.521095 度
複数の値の双曲正弦を計算する
次の例は、複数の値の双曲正弦を計算する方法を示しています。
例
#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 = sinh(x);
printf("sinh(%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 = sinh(x);
printf("sinh(%f) = %f\n", x, result);
}
return 0;
}
コード解析
- 複数の値を含む配列を定義します
values。 - 使用して
forループで各値を反復処理し、双曲正弦値を計算して結果を出力します。
上記のプログラムをコンパイルして実行すると、次の結果が得られます:
sinh(0.000000) = 0.000000 sinh(0.500000) = 0.521095 sinh(1.000000) = 1.175201 sinh(1.500000) = 2.129279 sinh(2.000000) = 3.626860
エラー処理
sinh()関数は入力値が大きすぎるとオーバーフローを引き起こす可能性があります。この場合、関数は正の無限大または負の無限大を返し、またerrnoに設定されますERANGE。使用してerrnoオーバーフローエラーが発生したかどうかを確認できます。
次の例は、オーバーフローエラーの処理方法を示しています。
例
#include <stdio.h>
#include <math.h>
#include <errno.h>
int main() {
double x = 1000.0;
errno = 0; // errno をリセット
double result = sinh(x);
if (errno == ERANGE) {
printf("Overflow error: sinh(%f) result is out of range.\n", x);
} else {
printf("sinh(%f) = %f\n", x, result);
}
return 0;
}
#include <math.h>
#include <errno.h>
int main() {
double x = 1000.0;
errno = 0; // errno をリセット
double result = sinh(x);
if (errno == ERANGE) {
printf("Overflow error: sinh(%f) result is out of range.\n", x);
} else {
printf("sinh(%f) = %f\n", x, result);
}
return 0;
}
コード解析
- コードは次の計算を試みます
sinh(1000.0)、これはオーバーフローを引き起こす可能性のある入力値です。 errnoは 0 にリセットされ、次に を呼び出し、sinh(x)。- チェックし、
errnoに等しいかどうかをERANGE、もし等しければ、オーバーフローエラーメッセージを出力します。 - エラーがない場合は、計算結果を出力します。
上記のプログラムをコンパイルして実行すると、次の結果が得られます:
sinh(1000.000000) = inf
まとめ
sinh()関数は指定された値の双曲正弦を計算するために使用され、双曲関数演算を処理するための重要なツールです。使用時には、可能性のあるオーバーフローエラーの処理に注意する必要があります。適切に使用することでsinh()関数を使用すると、数学計算、物理シミュレーション、工学的応用において正確な結果を得ることができます。
C 標準ライブラリ - <math.h>