スプレッドシートで「双曲線正割(ハイパボリックセカント)」を計算したいとき、どの関数を使えばいいか迷っていませんか?
双曲線関数の中でもセカント系はなじみが薄くて、書き方がわからないですよね。
そんなときに使うのがSECH関数です。=SECH(値) と書くだけで、双曲線正割をかんたんに求められます。数学的にはCOSH関数の逆数にあたる関数ですよ。
この記事では基本の書き方から、COSH関数との関係、SEC関数との違い、出力が0から1に収まる特性まで紹介します。
スプレッドシートのSECH関数とは?
SECH関数(読み方: ハイパボリックセカント関数)は、指定した値の双曲線正割を返す関数です。名前は英語の「Hyperbolic Secant」の略に由来します。
たとえば =SECH(0) と入力すると「1」が返ります。これが0の双曲線正割の値です。
双曲線正割は、COSH関数の逆数として定義されます。つまり SECH(x) = 1/COSH(x) の関係です。SEC関数がCOS関数の逆数だったのと同じ発想ですね。
SECH関数にできることをまとめると、次のとおりです。
- 指定した値の双曲線正割を返す
- COSH関数の逆数として検算に使う
- 出力が0から1の範囲に収まる特性を活かした計算に使う
- 物理学・統計学の計算(確率密度関数など)に活用する
NOTE
SECH関数はGoogleスプレッドシートの全バージョンで使えます。Excelとも完全に互換性があるので、ファイルのやり取りでも安心です。
SECH関数の書き方(構文と引数)
基本構文
=SECH(値)
カッコの中に、双曲線正割を求めたい数値を指定します。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 値 | 必須 | 双曲線正割を求めたい実数値 |
引数は1つだけです。SEC関数とは違い、ラジアンへの変換は不要です。そのまま数値を渡せばOKですよ。
TIP
SEC関数は引数に「角度(ラジアン)」を取りますが、SECH関数は「任意の実数値」を取ります。RADIANS関数での変換は必要ありません。
SECH関数の基本的な使い方
代表的な値でSECH関数の動きを確認してみましょう。
0を渡す
=SECH(0)
結果は「1」です。SECH(0)=1 はSECH関数の最大値です。COSH関数ではCOSH(0)=1が最小値でしたが、逆数なのでSECH(0)=1が最大値になります。
正の値を渡す
=SECH(1)
結果は「0.64805…」です。
もう少し大きい値も見てみます。
=SECH(2)
結果は「0.26580…」です。値が大きくなるほど結果は0に近づいていきます。COSH関数が急激に大きくなるため、その逆数は急激に小さくなるわけですね。
負の値を渡す
=SECH(-1)
結果は「0.64805…」です。SECH(1)とまったく同じ値になっています。
これはSECH関数が「偶関数」だからです。SECH(-x) = SECH(x) が常に成り立ちます。元になるCOSH関数も偶関数なので、その逆数も偶関数になりますよ。
まとめると
代表的な入力値と結果を一覧にまとめます。
| 数式 | 結果 | 備考 |
|---|---|---|
| =SECH(0) | 1 | 最大値(原点が1) |
| =SECH(1) | 0.64805… | 基本値 |
| =SECH(2) | 0.26580… | 0に近づく |
| =SECH(-1) | 0.64805… | 偶関数(正の値と同じ) |
| =SECH(-2) | 0.26580… | 偶関数(正の値と同じ) |
| =SECH(5) | 0.01347… | ほぼ0 |
結果が常に0より大きく1以下になるのがポイントです。SECH(0)=1が最大値で、入力の絶対値が大きくなるほど結果は0に近づきます。
セル参照を使う
もちろんセル参照も使えます。A1セルに数値が入っていれば、次のように書きます。
=SECH(A1)
A列に複数の値を入れて、B列にSECH関数を並べれば一括計算もできますよ。
SECH関数の数学的な仕組み
定義式とCOSH関数との関係
SECH関数は数学的に次のように定義されています。
SECH(x) = 1 / COSH(x) = 2 / (e^x + e^(-x))
ここでeはネイピア数(約2.71828)です。COSH関数の定義 (e^x + e^(-x))/2 を逆数にした形ですね。
スプレッドシートではEXP関数を使って同じ計算ができます。
=2/(EXP(A1) + EXP(-A1))
この式とSECH(A1)は同じ結果を返します。実際にA1に「1」を入れて確認してみましょう。
| 数式 | 結果 |
|---|---|
| =SECH(1) | 0.64805… |
| =1/COSH(1) | 0.64805… |
| =2/(EXP(1)+EXP(-1)) | 0.64805… |
3つとも同じ値ですね。SECH関数の結果が正しいか不安なときは、COSH関数やEXP関数を使った式で検算できます。
TIP
COSH関数は双曲線余弦を返す関数です。詳しくはCOSH関数の記事をご覧ください。
出力が0から1に収まる特性
SECH関数の出力は常に0より大きく1以下の範囲に収まります。
これはCOSH関数の最小値がCOSH(0)=1であるためです。COSH(x)が常に1以上なので、その逆数であるSECH(x)は常に1以下になります。また、COSH(x)は正の値しか取らないため、SECH(x)も正の値のみです。
0 < SECH(x) <= 1(すべてのxについて成り立つ)
この「出力が0から1の範囲」という特性は、確率密度関数やシグモイド関数に近い性質を持つため、統計や機械学習の分野で活用されることがあります。
SEC関数との違い
名前は似ていますが、SEC関数とSECH関数はまったく別の関数です。
| 項目 | SEC関数 | SECH関数 |
|---|---|---|
| 正式名称 | 正割(セカント) | 双曲線正割(ハイパボリックセカント) |
| 数学的な背景 | 円(三角関数) | 双曲線(双曲線関数) |
| 引数 | 角度(ラジアン) | 任意の実数値 |
| 逆数の対象 | COS関数 | COSH関数 |
| 値の範囲 | 1以上 または -1以下 | 0より大きく1以下 |
| RADIANS変換 | 必要 | 不要 |
| 偶関数 | はい | はい |
一番大きな違いは「値の範囲」です。SEC関数は絶対値が1以上(-1以下または1以上)になるのに対して、SECH関数は0から1の間に収まります。
共通点は「どちらも偶関数」で、「どちらもコサイン系関数の逆数」であることです。SEC = 1/COS、SECH = 1/COSH という対応関係で覚えておくとわかりやすいですよ。
実務での活用例
確率分布(双曲線正割分布)
SECH関数の代表的な応用が「双曲線正割分布」です。確率密度関数がSECH関数で表される分布で、正規分布に似た釣鐘型の曲線を描きます。
確率密度関数は次の式で表されます。
f(x) = 1/(2π) × SECH(x/2)
スプレッドシートで各地点の確率密度を求めてみましょう。A列にxの値を入力して、B1に次の式を入れます。
=1/(2*PI())*SECH(A1/2)
| x(A列) | f(x)・確率密度(B列) |
|---|---|
| 0 | 0.15915… |
| 1 | 0.14017… |
| 2 | 0.10507… |
| 3 | 0.06644… |
| 5 | 0.01833… |
x=0で最大値を取り、xの絶対値が大きくなるほど0に近づきます。正規分布に似た形ですが、裾が少し重い(ゆっくり減少する)のが特徴です。
COSH関数の逆数として検算に使う
COSH関数の計算結果を確認したいとき、SECH関数を使って検算できます。
=COSH(A1) * SECH(A1)
この式はどんな値でも必ず「1」を返します。COSH(x) x SECH(x) = 1 が常に成り立つからです。結果が1にならなければ、どこかに入力ミスがあるとわかりますよ。
よくあるエラーと対処法
SECH関数でよくあるトラブルをまとめます。
| 症状 | 原因 | 対処法 |
|---|---|---|
| #VALUE! エラー | 引数に文字列を渡した | 数値またはセル参照を指定する |
| 結果がほぼ0 | 引数の絶対値が大きすぎる | SECH関数は入力が大きいと急激に0に近づく。正常な動作 |
| SEC関数と結果が違う | 関数を間違えている | SECは三角関数、SECHは双曲線関数。目的に合った方を使う |
文字列を渡したとき
=SECH("abc")
結果は #VALUE! エラーです。引数には必ず数値を渡してください。セル参照の場合は、参照先が数値であることを確認しましょう。
引数が大きいときの挙動
=SECH(100)
結果は「7.4401…E-44」と、ほぼ0の値になります。これはエラーではなく正常な動作です。COSH関数が引数が大きいと急激に増大するため、その逆数は急激に0に近づきます。
ただし、引数がさらに大きく(約710以上)なると、COSH側がオーバーフローするため #NUM! エラーになることがあります。
似た関数との違い・使い分け
| 関数 | 動作 | 引数 | 用途 |
|---|---|---|---|
| SECH | 双曲線正割を返す | 実数値 | COSH関数の逆数・確率密度関数 |
| COSH | 双曲線余弦を返す | 実数値 | カテナリー曲線のy座標 |
| CSCH | 双曲線余割を返す | 実数値(0以外) | SINH関数の逆数 |
| COTH | 双曲線余接を返す | 実数値(0以外) | TANH関数の逆数 |
| SEC | 正割(セカント)を返す | 角度(ラジアン) | COS関数の逆数・斜辺の計算 |
| TANH | 双曲線正接を返す | 実数値 | 機械学習の活性化関数 |
| EXP | eのべき乗を返す | 指数 | 指数関数・成長率計算 |
SECH・CSCH・COTHは双曲線関数の逆数3兄弟です。それぞれCOSH・SINH・TANHの逆数にあたります。
SECH(x) = 1 / COSH(x)
CSCH(x) = 1 / SINH(x)
COTH(x) = 1 / TANH(x)
三角関数のSEC・CSC・COTに対応する関係ですね。3つの逆数関数をセットで覚えておくと、双曲線関数の理解が深まりますよ。
まとめ
SECH関数は、指定した値の双曲線正割(ハイパボリックセカント)を返す関数です。
ポイントを整理します。
- 構文は
=SECH(値)で、引数は任意の実数値 - SEC関数と違い、ラジアン変換は不要
- SECH(0)=1 が最大値で、入力が大きいほど0に近づく
- 偶関数なので、SECH(-x) = SECH(x) が成り立つ
- 定義式は 1/COSH(x) = 2/(e^x + e^(-x)) で、EXP関数で検算できる
- 出力が常に0から1の範囲に収まるのが特徴
- CSCH関数・COTH関数と合わせて双曲線関数の逆数3兄弟
まずは =SECH(0) で1が返ることを確認してみてください。
