スプレッドシートで「双曲線正割(ハイパボリックセカント)」を計算したいけれど、どの関数を使えばいいか迷っていませんか?
双曲線関数のなかでもセカント系はなじみが薄くて、書き方がわからないですよね。
そんなときに使うのが SECH関数 です。=SECH(値) と書くだけで、双曲線正割をかんたんに求められます。数学的には COSH関数 の逆数にあたる関数ですよ。
この記事では基本の書き方から、COSH関数との関係、SEC関数 との違い、出力が0から1に収まる特性、双曲線正割分布の計算例まで順番に紹介します。
スプレッドシートのSECH関数とは?
SECH関数(読み方: ハイパボリックセカント関数)は、指定した値の双曲線正割を返す関数 です。名前は英語の「Hyperbolic Secant」を短くしたもので、数学記号では sech と表記します。
たとえば =SECH(0) と入力すると「1」が返ります。これが「0の双曲線正割」の値です。
双曲線正割は、COSH関数 の逆数として定義されます。つまり SECH(x) = 1/COSH(x) の関係ですね。SEC関数 がCOS関数の逆数だったのと同じ発想です。
SECH関数にできることをまとめると、次のとおりです。
- 指定した値の双曲線正割を1関数で求められる
- COSH関数の逆数として検算に使える
- 出力が0から1の範囲に収まる特性を活かした計算ができる
- 物理学・統計学の計算(双曲線正割分布など)に活用できる
NOTE
SECH関数はGoogleスプレッドシートの全バージョンで利用できます。Excelとも完全互換なので、ファイルのやり取りでも安心ですよ。
SECH関数の書き方(構文と引数)
基本構文
=SECH(値)
カッコの中に、双曲線正割を求めたい数値を指定します。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 値 | 必須 | 双曲線正割を求めたい実数値 |
引数は1つだけです。SEC関数 と違って、ラジアンへの変換は不要です。そのまま数値を渡せばOKですよ。
TIP
SEC関数は引数に「角度(ラジアン)」を取りますが、SECH関数は「任意の実数値」を取ります。RADIANS関数(角度をラジアンに変換する関数)での変換は必要ありません。
SECH関数の基本的な使い方
代表的な値で、SECH関数の動きを確認していきましょう。0・正の値・負の値の3パターンを押さえれば、応用にもすぐ進めます。
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(0.5) | 0.88681… | なだらかに減少 |
| =SECH(1) | 0.64805… | 基本値 |
| =SECH(2) | 0.26580… | 0に近づく |
| =SECH(3) | 0.09932… | さらに急減 |
| =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関数(e のべき乗を返す関数)を使って、同じ計算ができます。
=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関数は日常業務で頻繁に登場する関数ではありませんが、数理モデルを扱う場面では便利な道具になります。代表的な3つの使い方を紹介します。
双曲線正割分布の確率密度を求める
SECH関数の代表的な応用が「双曲線正割分布(Hyperbolic Secant Distribution)」です。確率密度関数が 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.14114… |
| 2 | 0.10314… |
| 3 | 0.06765… |
| 5 | 0.02595… |
x=0で最大値を取り、xの絶対値が大きくなるほど0に近づきますね。正規分布に似た形ですが、裾が少し重い(ゆっくり減少する)のが特徴です。金融工学で価格変動のモデルに使われることもありますよ。
COSH関数の逆数として検算に使う
COSH関数 の計算結果を確認したいとき、SECH関数を使って検算できます。
=COSH(A1) * SECH(A1)
この式はどんな値でも必ず「1」を返します。COSH(x) × SECH(x) = 1 が常に成り立つからですね。結果が1にならなければ、どこかに入力ミスがあるとわかりますよ。
ソリトン解・カテナリーモデルの計算に使う
物理学の世界では、SECH関数は「ソリトン(孤立波)」の波形を表す式に登場します。たとえば KdV方程式や非線形シュレディンガー方程式の解は SECH^2(x) の形で表現されます。
スプレッドシートで波形を計算したい場合は、次のように書きます。
=SECH(A1)^2
波の中心(A1=0)で最大値1を取り、両端に向かってなだらかに減衰する形になります。研究や教育用にグラフを描きたいときに便利な書き方ですよ。
よくあるエラーと対処法
SECH関数でつまずきやすいトラブルをまとめます。
| 症状 | 原因 | 対処法 |
|---|---|---|
| #VALUE! エラー | 引数に文字列を渡した | 数値またはセル参照を指定する |
| #NUM! エラー | 引数の絶対値が約710以上 | 値を小さくするか、結果を0として扱う |
| 結果がほぼ0 | 引数の絶対値が大きすぎる | 急激に0に近づくのは正常な動作 |
| SEC関数と結果が違う | 関数を間違えている | SECは三角関数、SECHは双曲線関数 |
文字列を渡したとき
=SECH("abc")
結果は #VALUE! エラーです。引数には必ず数値を渡してください。セル参照の場合は、参照先が数値であることを確認しましょう。
たとえばCSVから取り込んだデータが「文字列扱いの数値」になっていると、エラーが出ることがあります。そんなときは VALUE関数(文字列を数値に変換する関数)でいったん数値化してから渡すと安心ですよ。
引数が大きいときの挙動
=SECH(100)
結果は「7.4401…E-44」と、ほぼ0の値になります。これはエラーではなく 正常な動作 です。COSH関数 が引数が大きいと急激に増大するため、その逆数は急激に0に近づくわけですね。
ただし、引数がさらに大きく(約710以上)なると、COSH側がオーバーフローするため #NUM! エラーになります。実務で710を超える値を扱うことはほぼありませんが、想定外の大きな値が入っていないかチェックしておきましょう。
似た関数との違い・使い分け
SECH関数の周辺には、よく似た双曲線関数や三角関数があります。整理しておくと混乱せずに使い分けられますよ。
| 関数 | 動作 | 引数 | 用途 |
|---|---|---|---|
| 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関数とSEC関数は何が違いますか?
SEC関数は三角関数の「正割(セカント)」でCOS関数の逆数、SECH関数は双曲線関数の「双曲線正割」でCOSH関数の逆数です。引数の意味も異なり、SECはラジアン単位の角度、SECHは任意の実数値を受け取ります。名前が似ていますが用途がまったく異なるため、目的に合った関数を選んでください。
SECH関数で #NUM! エラーが出ました。どう対処しますか?
引数の絶対値が約710以上になるとCOSH側がオーバーフローし #NUM! エラーになります。通常の数値計算では発生しませんが、引数に非常に大きな値が入っていないか確認してください。引数が大きくなると結果はほぼ0に近づくため、計算上は0に置き換えるのも一つの対処法ですよ。
SECH(0)の結果がなぜ1になるのですか?
SECH(x) = 1/COSH(x) と定義されており、COSH(0) = 1 なので SECH(0) = 1/1 = 1 になります。SECH関数はx=0で最大値1をとり、xの絶対値が大きくなるほど0に近づく釣鐘型の関数です。
SECH関数は実務でどのような場面で使いますか?
主に統計・信号処理・数値解析の分野で使われます。代表的な用途は「双曲線正割分布」の確率密度関数の計算(=1/(2PI())SECH(x/2))や、COSH関数の検算(COSH(x)×SECH(x)=1 が常に成立することの確認)、ソリトン波形の SECH(x)^2 計算などです。日常業務での出番は限られますが、数理モデルを扱うエンジニアや研究者には頼れる関数ですよ。
SECH関数はExcelでも使えますか?
はい、ExcelでもSECH関数は同じ書き方で使えます。Excel 2013以降のバージョンで利用可能です。GoogleスプレッドシートとExcelのあいだでファイルをやり取りしても、関数が崩れる心配はありませんよ。
まとめ
SECH関数は、指定した値の双曲線正割(ハイパボリックセカント)を返す関数です。
ポイントを整理します。
- 構文は
=SECH(値)で、引数は任意の実数値 - SEC関数 と違い、ラジアン変換は不要
- SECH(0)=1 が最大値で、入力の絶対値が大きいほど0に近づく
- 偶関数なので、SECH(-x) = SECH(x) が成り立つ
- 定義式は
1/COSH(x) = 2/(e^x + e^(-x))で、COSH や EXP で検算できる - 出力が常に0から1の範囲に収まるのが特徴
- 双曲線正割分布の確率密度や、ソリトン波形
SECH(x)^2の計算に活用できる - CSCH関数 ・COTH関数 と合わせて双曲線関数の逆数3兄弟
まずは =SECH(0) で1が返ることを確認して、SECH関数の感覚をつかんでみてくださいね。
