ExcelのIMSECH関数を使うと、複素数の双曲線正割(ハイパーボリックセカント)をワンステップで求められます。電気工学や信号処理で複素数計算をするときに、手計算だと面倒な関数ですよね。
この記事では、ExcelのIMSECH関数の構文・引数から、実務での活用シーン、つまずきやすいエラーと対処法まで、まとめて解説します。
ExcelのIMSECH関数とは?複素数の双曲線正割を返す関数
IMSECH関数は、"x+yi" または "x+yj" の形式で指定した複素数の双曲線正割(sech)を返すエンジニアリング関数です。読み方は「イマジナリー・セカント・ハイパーボリック関数」で、Excel 2013 以降のバージョンで使用できます。
数学的には、双曲線正割は sech(z) = 1 / cosh(z) で定義されます。実数であれば COSH関数 の逆数を取れば済みますよ。ただし複素数になると実部と虚部が絡み合う計算になります。IMSECH関数はその面倒な展開を内部で処理してくれるので、結果だけを受け取れますよ。
複素数の入力値は、COMPLEX関数 を使って実数係数と虚数係数から生成するのが一般的です。
IMSECH関数とIMCOSH関数の関係
IMSECH は数学的に IMCOSH の逆数 と一致します。
| 計算 | 数式 |
|---|---|
| IMCOSH で cosh を求める | =IMCOSH("1+i") |
| IMSECH で sech を求める | =IMSECH("1+i") |
| 上2つの積(=1になるはず) | =IMPRODUCT(IMCOSH("1+i"), IMSECH("1+i")) |
上の組み合わせで結果が「1」になれば計算が正しいことを確認できます。検算用の小ワザとして覚えておくと、複素数計算の入力ミスに気づきやすくなりますよ。
IMSECH関数の構文と引数
IMSECH関数の基本構文はとてもシンプルです。
=IMSECH(複素数)
引数は「複素数」ひとつだけで、省略できません。
引数:複素数(inumber)
双曲線正割を求めたい複素数を、"x+yi" または "x+yj" のテキスト文字列で指定します。ここで x が実部、y が虚部です。虚数単位は必ず小文字の i または j を使ってください。大文字の I や J を入れるとエラーになります。
戻り値もテキスト文字列として返ります。さらに別の計算に使いたい場合は、IMREAL関数 や IMAGINARY関数 で実部・虚部を取り出しましょう。IMABS関数 で絶対値(大きさ)に変換することもできますよ。
IMSECH関数の使い方【3パターン】
実際の使い方を、よくあるパターンで見ていきましょう。
パターン1:関数内に複素数を直接入力する
一番シンプルな書き方は、複素数の文字列を直接引数に入れる方法です。
=IMSECH("1+1i") → 約 0.498-0.591i
実数部分だけの複素数も扱えます。
=IMSECH("0") → 1(cosh(0)=1 なので sech(0)=1)=IMSECH("2+0i") → 約 0.2658
実部の絶対値が大きくなると cosh(x) が急激に増えるため、結果はほぼ0に近づきます。参考までに、=IMSECH("5+0i") は約 0.01348、=IMSECH("10+0i") は約 9.08E-05 まで小さくなりますよ。
パターン2:セル参照で複素数を渡す
実務ではセル参照を使うケースがほとんどです。A1セルに "1+2i" が入っていれば、次のように書けます。
=IMSECH(A1)
複数行の複素数リストにオートフィルで一気に適用できます。複素数を文字列として管理しておけば、IMCOSH や IMSINH など他の複素数関数にも同じ列をそのまま渡せるので、データ設計が楽になりますよ。
パターン3:COMPLEX関数と組み合わせる
実部と虚部が別々のセルに入っているときは、COMPLEX関数 で合成してからIMSECHに渡します。A1に実部、B1に虚部がある場合、こう書けますよ。
=IMSECH(COMPLEX(A1,B1))
エンジニアリング分野では実部と虚部を別カラムで管理することが多いので、この組み合わせが一番実務的です。
IMSECH関数が役立つ実務シーン
IMSECH関数は地味に見えますが、複素数を扱う分野では出番があります。代表的な活用シーンを紹介します。
電気工学:伝送線路の解析
高周波回路や伝送線路の解析では、電圧・電流の分布を双曲線関数で表します。特性インピーダンスと伝搬定数(どちらも複素数)を使った計算で、cosh・sinh・sech・csch が一通り登場するんですね。
たとえば伝送線路の終端での反射係数や入力インピーダンスを概算するとき、Z_in = Z_0 × (Z_L + Z_0×tanh(γl)) / (Z_0 + Z_L×tanh(γl)) のような式が出てきます。この途中計算で sech や cosh を何度も評価する必要があるので、ExcelのIM系関数を使うと、MATLABやPythonを立ち上げなくてもサッと検証計算ができます。
信号処理・フィルタ設計
複素インピーダンスから伝達関数を評価する場面でも、双曲線関数が顔を出します。たとえばラダー型フィルタのチェインパラメータ行列を組むときに、sech の値を使うと式がすっきり書けますよ。概算や試算をExcelで回したいときに重宝します。
学術レポート・演習問題の検算
大学の電気電子系や物理系の演習で、手計算した双曲線関数の値を検算したいときにも便利です。手計算で sech(1+i) を出すには cosh(1+i) = cosh(1)cos(1) + i×sinh(1)sin(1) を展開して逆数を取る必要がありますが、IMSECHなら一発です。答え合わせ用途なら、Excelひとつで対応できますよ。
よくあるエラーと対処法
IMSECH関数でつまずきやすいエラーをまとめます。
#NUM! エラー
引数が "x+yi" または "x+yj" の形式になっていないときに出ます。たとえば "1,2i"(カンマ区切り)や "1+2"(虚数単位なし)はNGです。文字列の形式を見直してください。また、実部と虚部の符号は必ず + または - で明示する必要があります。
#VALUE! エラー
複素数の係数に数値以外が混ざっている場合や、虚数単位に大文字の I・J を使った場合に発生します。「小文字の i または j」「係数は数値のみ」の2点をチェックしましょう。半角スペースや全角文字が混入していないかも確認してください。
計算結果が「0」に見える
実部が大きい複素数を入れると、cosh(x) が指数関数的に増えるため sech は急速に0へ近づきます。エラーではなく数学的に正しい挙動なので、表示桁数を増やすか、=IMABS(IMSECH(A1)) のように絶対値として評価して桁を確認してみてください。
IMSECH関数に関するよくある質問
Q. Googleスプレッドシートでも使えますか?
はい。Googleスプレッドシートでも =IMSECH("1+i") と書けば同様に動作します。構文は完全に互換です。
Q. 戻り値をそのまま四則演算に使えますか?
戻り値は文字列型なので、直接数値計算には使えません。実数として使いたい場合は IMREAL・IMAGINARY で実部・虚部を取り出すか、IMABS で絶対値に変換してください。複素数のまま演算したいときは、IMSUM・IMPRODUCT・IMDIV などの「IM系演算関数」を使いましょう。
Q. IMSECH と IMCOSH の使い分けは?
sech(z) = 1/cosh(z) なので、どちらか一方があればもう一方を求められます。伝送線路の計算など、sech を直接求める公式がある場合に IMSECH を使うと式がシンプルになります。数式が長くなるほど、ネストを減らす意味で IMSECH を直接呼ぶメリットが大きくなりますよ。
関連する複素数関数
IMSECH関数と一緒に使われることが多い複素数関数も押さえておきましょう。
- IMCOSH関数: 複素数の双曲線余弦(cosh)。IMSECHは数学的にはIMCOSHの逆数です
- IMSINH関数: 複素数の双曲線正弦(sinh)
- IMCSCH関数: 複素数の双曲線余割(csch)
- IMSEC関数: 複素数の正割(sec、双曲線ではない通常の三角関数)
- IMABS関数: 複素数の絶対値(大きさ)
- COMPLEX関数: 実数係数と虚数係数から複素数を生成
これらを組み合わせると、Excelだけで複素数の双曲線関数計算を一通りカバーできますよ。
まとめ
ExcelのIMSECH関数は、複素数の双曲線正割を一発で求められる便利なエンジニアリング関数です。最後にポイントを整理しておきます。
- 構文は
=IMSECH(複素数)のシンプル構成 - 複素数は
"x+yi"または"x+yj"の文字列で指定する - 虚数単位は必ず小文字の
iまたはjを使う - IMCOSH の逆数と等しい(
IMPRODUCT(IMCOSH(z), IMSECH(z))= 1) - 実務では電気工学や信号処理の検算で活躍する
- IMCOSH・IMSINH・IMCSCH などの関連関数と組み合わせて使うと便利
複素数計算が必要な場面では、ぜひIMSECH関数を活用してみてください。
