スプレッドシートで「双曲線逆余弦(逆ハイパボリックコサイン)」を計算したいとき、どの関数を使えばいいか迷っていませんか?
COSH関数の逆を求めたいけど、書き方がわからないですよね。
そんなときに使うのがACOSH関数です。=ACOSH(値) と書くだけで、双曲線逆余弦をかんたんに求められます。
この記事では基本の書き方から、COSH関数との逆関数の関係、LN関数を使った検算方法、引数が1以上に制限される理由まで紹介します。
スプレッドシートのACOSH関数とは?
ACOSH関数(読み方: エーコッシュ、またはアークハイパボリックコサイン関数)は、指定した値の双曲線逆余弦を返す関数です。名前の「A」は「Arc(逆)」を意味します。
たとえば =ACOSH(2) と入力すると「1.31695…」が返ります。これが2の双曲線逆余弦の値です。
ACOSH関数はCOSH関数の逆関数にあたります。COSH(1.31695) が約2を返すので、ACOSH(2) は約1.31695を返すわけです。
ACOSH関数にできることをまとめると、次のとおりです。
- COSH関数の結果から元の値を逆算する
- LN関数と同じ計算結果を式で確認できる
- カテナリー曲線の逆問題(高さから位置を求める)に使う
- 物理学・工学で双曲線関数の逆問題を解く
NOTE
ACOSH関数はGoogleスプレッドシートの全バージョンで使えます。Excelとも完全に互換性があるので、ファイルのやり取りでも安心です。
ACOSH関数の書き方(構文と引数)
基本構文
=ACOSH(値)
カッコの中に、双曲線逆余弦を求めたい数値を指定します。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 値 | 必須 | 双曲線逆余弦を求めたい実数値(1以上) |
引数は1つだけです。ただし、1以上の値しか受け付けない点に注意してください。1未満の値を渡すと #NUM! エラーになります。
ASINH関数は引数に制限がありませんが、ACOSH関数は1以上に限られます。
TIP
なぜ1以上なのか? COSH関数の結果は常に1以上です。逆関数であるACOSH関数は、COSH関数が取りうる値(1以上)だけを引数に受け付けます。
ACOSH関数の基本的な使い方
代表的な値でACOSH関数の動きを確認してみましょう。
1を渡す
=ACOSH(1)
結果は「0」です。ACOSH(1)=0 は基本の値として覚えておくと便利です。COSH(0)=1 なので、その逆で ACOSH(1)=0 になります。
2を渡す
=ACOSH(2)
結果は「1.31695…」です。
大きい値を渡す
=ACOSH(10)
結果は「2.99322…」です。入力が大きくなっても、結果はゆるやかに増えていくのが特徴ですね。
まとめると
代表的な入力値と結果を一覧にまとめます。
| 数式 | 結果 | 備考 |
|---|---|---|
| =ACOSH(1) | 0 | 最小の入力値。結果は0 |
| =ACOSH(2) | 1.31695… | 基本値 |
| =ACOSH(5) | 2.29243… | 増加はゆるやか |
| =ACOSH(10) | 2.99322… | 大きい値でもゆるやかに増加 |
| =ACOSH(0.5) | #NUM! エラー | 1未満は受け付けない |
COSH関数は入力が大きくなると結果が急増しますが、ACOSH関数はその逆で、ゆるやかに増えていきます。
セル参照を使う
もちろんセル参照も使えます。A1セルに数値が入っていれば、次のように書きます。
=ACOSH(A1)
A列に複数の値を入れて、B列にACOSH関数を並べれば一括計算もできますよ。
COSH関数との逆関数の関係
ACOSH関数はCOSH関数の逆関数です。つまり、次の関係が成り立ちます。
ACOSH(COSH(x)) = x (x が 0 以上のとき)
COSH(ACOSH(x)) = x (x が 1 以上のとき)
実際にスプレッドシートで確認してみましょう。
| 数式 | 結果 |
|---|---|
| =COSH(2) | 3.76219… |
| =ACOSH(3.76219) | 1.99999… |
| =ACOSH(COSH(2)) | 2 |
COSH(2)の結果をACOSHに渡すと、元の「2」に戻ります。逆関数なので当然ですが、検算に便利ですよ。
TIP
COSH関数は偶関数なので、COSH(-2) も COSH(2) も同じ値を返します。そのためACOSH関数は常に0以上の値(正の方)を返します。
ACOSH関数の数学的な仕組み
定義式とLN関数での検算
ACOSH関数は数学的に次のように定義されています。
ACOSH(x) = LN(x + SQRT(x^2 - 1))
ここでLNは自然対数(ネイピア数eを底とする対数)です。スプレッドシートではLN関数とSQRT関数を使って同じ計算ができます。
=LN(A1 + SQRT(A1^2 - 1))
この式とACOSH(A1)は同じ結果を返します。A1に「2」を入れて確認してみましょう。
| 数式 | 結果 |
|---|---|
| =ACOSH(2) | 1.31695… |
| =LN(2+SQRT(2^2-1)) | 1.31695… |
どちらも同じ値ですね。ACOSH関数の結果が正しいか不安なときは、LN関数を使った式で検算できます。
TIP
LN関数は自然対数を返す関数です。SQRT関数は平方根を返す関数です。どちらもスプレッドシートの標準関数として使えますよ。
ASINH関数の定義式との違い
ASINH関数の定義式は LN(x + SQRT(x^2 + 1)) です。ACOSH関数は LN(x + SQRT(x^2 - 1)) で、SQRT内の符号が違います。
この「+1」と「-1」の違いが、引数の制限にも影響しています。ASINH関数は x^2 + 1 が常に正なので引数に制限がありません。一方、ACOSH関数は x^2 - 1 が0以上である必要があるため、x は1以上に制限されます。
実務での活用例
COSH値から元の値を逆算する
COSH関数の記事で紹介したカテナリー曲線の式を思い出してみましょう。
y = a * COSH(x / a)
高さyがわかっていて、位置xを求めたい場面があります。この式からxを求めるにはACOSH関数を使います。
x = a * ACOSH(y / a)
パラメータa=10として、高さyが15.43080のときのxを求めてみます。
=10*ACOSH(15.43080/10)
結果は「10.00000…」です。COSH関数の記事でCOSH(10/10)=1.54308、つまりy=15.43080と計算した逆算ができていますね。
距離の逆算(双曲線幾何学)
双曲線幾何学では、2点間の距離を求める式にCOSH関数が使われます。距離dがわかっていて元のパラメータを逆算したいときに、ACOSH関数が役立ちます。
たとえば、距離の公式が d = ACOSH(値) の形をしているとき、ACOSH関数で直接計算できます。
よくあるエラーと対処法
ACOSH関数でよくあるトラブルをまとめます。
| 症状 | 原因 | 対処法 |
|---|---|---|
| #NUM! エラー | 引数が1未満 | 1以上の値を指定する |
| #VALUE! エラー | 引数に文字列を渡した | 数値またはセル参照を指定する |
| ACOS関数と結果が違う | 関数を間違えている | ACOSは逆余弦(三角関数)、ACOSHは双曲線逆余弦。目的に合った方を使う |
1未満の値を渡したとき
=ACOSH(0.5)
結果は #NUM! エラーです。ACOSH関数の引数は1以上の値に限られます。0やマイナスの値もエラーになるので注意してください。
エラーを避けたい場合は、IF関数やIFERROR関数で事前にチェックしましょう。
=IF(A1>=1, ACOSH(A1), "1以上の値を入力")
文字列を渡したとき
=ACOSH("abc")
結果は #VALUE! エラーです。引数には必ず数値を渡してください。セル参照の場合は、参照先が数値であることを確認しましょう。
ACOS関数と間違えたとき
ACOS関数とACOSH関数は名前が似ていますが、まったく別の関数です。
=ACOS(0.5) → 1.04719...(逆余弦。引数は-1〜1のみ)
=ACOSH(2) → 1.31695...(双曲線逆余弦。引数は1以上)
ACOS関数は引数が-1から1の範囲外だとエラーになります。1より大きい値を渡したいときはACOSH関数を使ってください。
似た関数との違い・使い分け
| 関数 | 動作 | 引数の範囲 | 用途 |
|---|---|---|---|
| ACOSH | 双曲線逆余弦を返す | 1以上 | COSH逆算・距離計算 |
| ASINH | 双曲線逆正弦を返す | 制限なし | SINH逆算・データ変換 |
| ATANH | 双曲線逆正接を返す | -1〜1(端点除く) | TANH逆算 |
| ACOS | 逆余弦を返す | -1〜1 | 三角関数の角度を求める |
| COSH | 双曲線余弦を返す | 制限なし | カテナリー曲線・物理計算 |
| LN | 自然対数を返す | 正の値のみ | 対数変換・成長率計算 |
ASINH・ACOSH・ATANHは双曲線関数の逆関数の仲間です。引数の範囲がそれぞれ違う点に注意してください。
ACOSHだけが引数に「1以上」という制限があります。これはCOSH関数の値域が1以上であることに対応しています。
まとめ
ACOSH関数は、指定した値の双曲線逆余弦(逆ハイパボリックコサイン)を返す関数です。
ポイントを整理します。
- 構文は
=ACOSH(値)で、引数は1以上の実数値 - COSH関数の逆関数で、ACOSH(COSH(x))=x が成り立つ
- 定義式は LN(x + SQRT(x^2-1)) で、LN関数で検算できる
- 引数が1未満だと #NUM! エラーになる
- ACOS関数(三角関数)とは別の関数なので間違えないように注意
まずは =ACOSH(2) で1.31695が返ることを確認してみてください。
