ExcelのIMCOS関数の使い方|複素数のコサイン(余弦)を求める方法

スポンサーリンク

Excelで複素数を扱っていると、「この複素数のコサインってどう計算するんだろう?」と悩む場面がありますよね。通常のCOS関数は実数にしか対応していないので、複素数を渡すとエラーになってしまいます。

そんなときに使えるのが IMCOS関数 です。複素数を渡すだけで、そのコサイン(余弦)を複素数の形でサッと返してくれますよ。

この記事では、IMCOS関数の基本的な書き方から実践的な活用例、よくあるエラーの対処法まで、サンプルデータ付きでわかりやすく解説します。

ExcelのIMCOS関数とは?

IMCOS関数は、指定した複素数の コサイン(余弦) を複素数で返すExcelのエンジニアリング関数です。

読み方は 「イマジナリー・コサイン」 です。「IM」は Imaginary(虚数・複素数)、「COS」は Cosine(余弦)を意味しています。

複素数のコサインとは?

実数のコサイン(COS関数)はなじみがある方も多いと思います。複素数のコサインは、その考え方を複素数の世界に拡張したものです。

数学的には、複素数 z のコサインは次の公式で定義されます。

cos(z) = (e^(iz) + e^(-iz)) / 2

ここで e は自然対数の底(ネイピア数)、i は虚数単位です。この公式はオイラーの公式から導かれます。実部と虚部を分けると、次のように表せます。

cos(x+yi) = cos(x)cosh(y) – i*sin(x)sinh(y)

手計算だとかなり面倒ですが、IMCOS関数を使えば一発で求められるので便利ですよ。

入力と出力のイメージ

  • 入力: 複素数(例: “1+2i”)
  • 出力: 複素数のコサイン(例: “2.03272300701967-3.0518977991518i”)

結果も複素数で返ってくるのがポイントです。実数のCOS関数のように -1 から 1 の範囲には収まりません。

IMCOS関数の書き方(構文と引数)

基本構文

=IMCOS(複素数)

引数は1つだけなので、とてもシンプルです。

引数の説明

引数必須/省略可説明
複素数必須コサインを求めたい複素数。”x+yi” または “x+yj” のテキスト形式で指定します

引数には、次のいずれかの方法で値を渡せます。

  • 文字列で直接指定: =IMCOS("1+2i")
  • セル参照: =IMCOS(A1)(A1セルに複素数が入っている場合)
  • COMPLEX関数の結果: =IMCOS(COMPLEX(1,2))

COMPLEX関数を使えば、実部と虚部を別々に指定して複素数を作れます。セルの値を組み合わせたいときに便利ですよ。

IMCOS関数の基本的な使い方

実際にIMCOS関数を使ってみましょう。

例1: セルの複素数からコサインを求める

セルA1に「1+2i」が入っているとします。

=IMCOS(A1)

結果: 2.03272300701967-3.0518977991518i

実部が約2.03、虚部が約-3.05の複素数が返ります。実数のコサインとは違い、値が大きくなることがあるのが特徴ですね。

例2: 関数内に直接値を指定する

セル参照を使わず、直接テキストで複素数を指定することもできます。

=IMCOS("3+4i")

結果: -27.0349456030742-3.85115333481178i

直接指定するときは、ダブルクォーテーション(”)で囲むのを忘れないでくださいね。

例3: COMPLEX関数と組み合わせる

実部と虚部を別々のセルで管理している場合は、COMPLEX関数と組み合わせると便利です。

セルA1に「1」、B1に「2」が入っているとき:

=IMCOS(COMPLEX(A1, B1))

結果: 2.03272300701967-3.0518977991518i

COMPLEX関数が「1+2i」を作り、それをIMCOSがコサインに変換する流れです。

例4: 実数を渡した場合

実数(虚部がゼロの複素数)を渡すと、通常のCOS関数と同じ結果が返ります。

=IMCOS("0")

結果: 1(cos(0) = 1)

実数しか扱わない場面では通常のCOS関数で十分ですが、実数と複素数が混在するデータをまとめて処理したいときにはIMCOS関数が役立ちますよ。

IMCOS関数の実践的な活用例

複数の複素数のコサインを一括計算する

複素数がA1:A5に並んでいる場合、B1にIMCOS関数を入力してB5までコピーすれば、まとめてコサインを求められます。

=IMCOS(A1)
セル複素数(A列)コサイン(B列)
1行目1+i0.833730025131149-0.988897705762865i
2行目2+3i-4.18962569096881-9.10922789375534i
3行目0+i1.54308063481524
4行目3-2i-3.72454550491532+0.511822569987385i
5行目10.540302305868140

3行目のように純虚数(実部がゼロ)を渡すと、結果が実数になる点に注目してください。cos(yi) = cosh(y) なので、IMCOSH関数と同じ値になりますよ。

IMSIN関数と組み合わせて恒等式を検証する

三角関数には「sin^2(z) + cos^2(z) = 1」という恒等式があります。複素数でもこれが成り立つか、Excelで確かめてみましょう。

セルA1に「2+3i」が入っているとき:

=IMSUM(IMPRODUCT(IMSIN(A1),IMSIN(A1)),IMPRODUCT(IMCOS(A1),IMCOS(A1)))

結果: 1(実数の1が返る)

IMSIN関数でサインを求め、IMPRODUCT関数で2乗してからIMSUM関数で足し合わせています。複素数でも恒等式がしっかり成り立つのは面白いですよね。

よくあるエラーと対処法

#NUM! エラー

引数に有効な複素数として認識できない値を渡すと、#NUM! エラーが表示されます。

よくある原因と対処法:

原因対処法
複素数のテキスト形式が正しくない=IMCOS(“1+2”)虚数単位の「i」または「j」を末尾に付ける
数値の間にスペースが入っている=IMCOS(“1 + 2i”)スペースをすべて削除する
全角文字が混在している=IMCOS(“1+2i”)半角英数字で入力し直す

虚数単位の「i」を付け忘れるケースが一番多いので、気を付けてくださいね。

#VALUE! エラー

引数が数値でもテキストでもない場合(論理値や空のセルなど)に、#VALUE! エラーが発生します。

=IMCOS(TRUE)   → #VALUE!エラー
=IMCOS("")     → #VALUE!エラー

セル参照を使う場合は、参照先に正しい複素数テキストが入っているか確認してみてください。

#NAME? エラー

関数名のスペルミスで発生します。「IMCOS」を「IMCOSINE」などと書いていないか確認しましょう。また、Excel 2007より前のバージョンではIMCOS関数が使えない場合があります。お使いのバージョンが対応しているか、確認しておきましょう。

似た関数との違い・使い分け

IMCOS関数と一緒に使うことが多い関連関数を整理しておきましょう。

関数名機能使用例
COS実数のコサインを求める=COS(1) → 0.5403…
IMSIN複素数のサインを求める=IMSIN(“1+2i”) → 3.165…+1.959…i
IMTAN複素数のタンジェントを求める=IMTAN(“1+2i”)
IMCOT複素数のコタンジェントを求める=IMCOT(“1+2i”)
IMSEC複素数のセカントを求める=IMSEC(“1+2i”)
IMCSC複素数のコセカントを求める=IMCSC(“1+2i”)
IMCOSH複素数の双曲線コサインを求める=IMCOSH(“1+2i”)
COMPLEX実部と虚部から複素数を作成=COMPLEX(1,2) → “1+2i”
IMABS複素数の絶対値を求める=IMABS(“3+4i”) → 5
IMCONJUGATE共役複素数を求める=IMCONJUGATE(“3+4i”) → “3-4i”
IMARGUMENT複素数の偏角を求める=IMARGUMENT(“3+4i”) → 0.927…

COS関数との違い: COS関数は実数のみ対応で、結果は -1 から 1 の範囲になります。IMCOS関数は複素数に対応し、結果も複素数で返ります。実数だけを扱う場面ではCOS関数、複素数を含むデータを扱う場面ではIMCOS関数を使い分けてくださいね。

まとめ

IMCOS関数は、複素数のコサイン(余弦)を返すExcelのエンジニアリング関数です。

この記事のポイントをおさらいしましょう。

  • IMCOS関数は複素数を渡すだけでコサインを複素数で返してくれる
  • 引数は1つだけ。”x+yi” 形式のテキストで複素数を渡す
  • 結果は複素数になる(実数のCOS関数とは範囲が異なる)
  • COMPLEX関数やIMSIN関数と組み合わせて使うのが実践的
  • 純虚数のコサインは IMCOSH関数の結果と一致する
  • エラーが出たら、虚数単位(i / j)の付け忘れやスペース混入をチェック

複素数の三角関数をExcelで効率的に計算したい方は、ぜひ活用してみてくださいね。

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