「複素数の双曲線余接 coth(z) をスプレッドシートで計算したい」というとき、IMCOTH関数がぴったりです。電気回路や制御工学のレポート計算で複素数の coth が必要になる場面、意外とありますよね。
ところがこのIMCOTH、Excelには存在しません。Googleスプレッドシート独自の関数なんです。今回は構文から実例、エラー対処、関連関数との違いまでまとめて確認していきましょう。
スプレッドシートのIMCOTH関数とは?
IMCOTH関数は、複素数 z の双曲線余接 coth(z) を計算する関数です。
数学的な定義はシンプルで、次の式で表されます。
coth(z) = cosh(z) / sinh(z)
つまり、双曲線余弦を双曲線正弦で割ったものですね。実数 x なら (e^x + e^-x) / (e^x - e^-x) という形になります。
構文
IMCOTH(数値)
引数の「数値」には、双曲線余接を求めたい複素数を指定します。書き方は2通りあります。
- 文字列で渡す:
"1+2i"や"3-4j"のように、虚数単位iまたはjを使った文字列 - 実数で渡す:
1や2.5のように、虚数部がゼロの数値
戻り値は “x+yi” 形式の文字列で返ってくる点に注意してください。表示は文字列ですが、IMREAL や IMAGINARY、IMABS などの複素数関数にそのまま渡せます。
NOTE
IMCOTH関数は Excelには存在しません。Googleスプレッドシート独自の関数なので、Excel互換性が必要なシートでは IMDIV と IMCOSH、IMSINH を組み合わせて代用します。
IMCOTH関数の基本的な使い方
それでは実際にセルに入力してみましょう。
実数を渡す場合
虚数部がゼロの複素数(つまり実数)を渡すと、coth(x) の実数値が返ります。
=IMCOTH(1)
結果は 1.31303528549933 になります。これは coth(1) の値ですね。実数で返ってきますが、IMREAL を通すと安心です。
文字列で複素数を渡す場合
虚数部を持つ複素数は、ダブルクォートで囲んだ文字列として渡します。
=IMCOTH("1+1i")
結果は 0.868014142895925-0.217621561854403i 前後の値になります。1+i における coth の実部と虚部がきちんと返ってきます。
純虚数を渡す場合
実部がゼロの純虚数を渡すこともできます。
=IMCOTH("1i")
数学的には coth(iy) = -i・cot(y) という関係があるので、実部はほぼゼロ、虚部に cot(1) を符号反転した値が入ります。
“j”形式も受け付ける
電気工学の慣習で虚数単位を j で書きたい場合も大丈夫です。
=IMCOTH("1+1j")
"1+1i" と同じ計算結果が返ります。シート全体で j を使うか i を使うか、好きな方に統一してください。
IMCOTH関数の応用例
基本が分かったところで、実用的な使い方をいくつか紹介します。
coth(z) = cosh(z) / sinh(z) を検算する
数学定義どおり、IMCOSH と IMSINH の商と一致するかを確認できます。
=IMDIV(IMCOSH("1+1i"), IMSINH("1+1i"))
これは =IMCOTH("1+1i") と同じ値を返します。授業のレポートや業務での検算に便利です。
IMCOTHとIMTANHは互いに逆数
双曲線余接は双曲線正接の逆数なので、掛け算すると1になるはずです。
=IMPRODUCT(IMCOTH("1+1i"), IMTANH("1+1i"))
結果は "1" または微小な誤差を含む "1+1.1e-16i" のような値になります。浮動小数点誤差の範囲内で1になっていることが確認できますね。
実部と虚部を別々のセルに取り出す
coth(z) の値を後段の計算で使うなら、IMREAL と IMAGINARY で分解しておくと便利です。
| セル | 数式 | 内容 |
|---|---|---|
| A1 | =IMCOTH("1+1i") | coth(1+i) |
| B1 | =IMREAL(A1) | 実部 |
| C1 | =IMAGINARY(A1) | 虚部 |
| D1 | =IMABS(A1) | 絶対値 |
A1で計算した結果をB1〜D1で展開する形ですね。スプレッドシートの強みである表形式の計算と相性がよい使い方です。
IMCOTH関数でよくあるエラーと対処法
IMCOTH関数を使っていると、いくつかのエラーに出会うことがあります。原因と対処をまとめておきましょう。
| エラー | 主な原因 | 対処方法 |
|---|---|---|
| #NUM! | 引数が0、または z = nπi(極)に該当 | 0や πi の整数倍を避ける |
| #VALUE! | 複素数として解釈できない文字列 | 虚数単位は i か j のみ。"1+1k" などはNG |
| #N/A | 引数の数が不正 | IMCOTH(数値) の1引数を必ず指定 |
#NUM! エラー: coth(0) は計算できない
数学的に coth(z) は sinh(z) = 0 となる点で定義されません。最も身近なのが z = 0 のケースです。
=IMCOTH(0)
これは #NUM! を返します。sinh(0) = 0 でゼロ除算になるからですね。同じ理由で "0+πi" のような純虚数で π の整数倍も極になるので注意してください。
#VALUE! エラー: 虚数単位は i か j
虚数単位として認識されるのは i と j だけです。それ以外の文字を使うと #VALUE! になります。
=IMCOTH("1+1k") → #VALUE!
=IMCOTH("1+1i") → 正常
文字列を手で組み立てるときに & で連結するなら、虚数単位を間違えないように気をつけましょう。
IMCOTH関数と関連関数の違い
最後に、似た名前の関数との違いを整理しておきます。混同しやすいポイントです。
| 関数 | 計算内容 | 数式 |
|---|---|---|
| IMCOTH | 双曲線余接 | coth(z) = cosh(z)/sinh(z) |
| IMTANH | 双曲線正接 | tanh(z) = sinh(z)/cosh(z) |
| IMCOSH | 双曲線余弦 | cosh(z) = (e^z + e^-z)/2 |
| IMSINH | 双曲線正弦 | sinh(z) = (e^z – e^-z)/2 |
| IMCOT | 余接(三角関数) | cot(z) = cos(z)/sin(z) |
特に注意したいのが IMCOT と IMCOTH の違いです。H がつくと双曲線関数、つかないと普通の三角関数。たった1文字ですが意味が全く違うので、入力時に確認する習慣をつけておくと安全です。
関連記事として、IMCOSH関数(複素数の双曲線余弦)、IMCOT関数(複素数の余接)、IMCOS関数(複素数の余弦) もあわせて確認しておくと、複素数の三角・双曲線関数まわりがすっきり整理できます。
まとめ
スプレッドシートのIMCOTH関数について、ポイントを振り返ります。
- IMCOTH は複素数の双曲線余接 coth(z) を求める関数で、構文は
IMCOTH(数値) - Excelには存在しない、スプレッドシート独自の関数
- 戻り値は “x+yi” 形式の文字列。IMREAL や IMAGINARY で分解可能
- coth(0) や z = nπi は極なので
#NUM!になる - IMCOT(三角関数)と IMCOTH(双曲線)の
Hの有無に注意
複素数の coth が必要になる場面は限られますが、いざというときにスプレッドシート1枚で完結できるのは助かります。関連関数も含めて、必要なときに引ける形にしておきましょう。
