スプレッドシートのACOSH関数の使い方|双曲線逆余弦

スポンサーリンク

スプレッドシートで「双曲線逆余弦(逆ハイパボリックコサイン)」を計算したいとき、どの関数を使えばいいか迷っていませんか?

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が返ることを確認してみてください。

タイトルとURLをコピーしました