Excelで複素数の計算をする方法
Excelを使って複素数同士の掛け算や割り算を行うとき、実数部と虚数部に分けて、計算式をたててもよいが、実際やってみると結構面倒である。物理数学でよく出てくるeの複素数乗も、いちいち三角関数に直してから計算するのも面倒くさい。
Excelのエンジニアリング関数を使えば、複素数同士の演算を複素数のまま行うことができるので結構便利である。ただし、EXCEL VBA(いわゆるマクロ)では、Excelで使える以下の関数をカバーしていないので、VBAでは使えない。
また、初期状態ではインストールされてない場合がある。[挿入]→[関数]で表示させた関数一覧にCOMPLEXなどが表示されていなければインストールされていない(「関数の分類」でいうと「エンジニアリング」がなければインストールされていない)。そのときは、[ツール]→[アドイン]で、分析ツールにチェックを入れて、OKすればインストールすることができる。
Excelで複素数が登場する四則演算を行うときは、通常の+-*/ではなく、専用の関数(IMSUM,IMSUB,IMPRODUCT,IMDIV)を使うことが必要。演算の相手が実数の場合でもこれらの関数を使用する。以下は使い方のメモ。
COMPLEX 複素数を表記したいときに使用。2+3i なら、COMPLEX(2,3)と入力。2+3i と直接入力してもダメ。
IMSUM 複素数同士の足し算。(2+3i)+(5+8i) なら、IMSUM(COMPLEX(2,3),COMPLEX(5,8))。5+(5+8i) なら、IMSUM(5,COMPLEX(5,8))でもよい。3個以上の数の和を求めることも可能(29個まで)。5+(15+3i)+(5+8i) なら、IMSUM(5,COMPLEX(15,3),COMPLEX(5,8))
IMSUB 複素数同士の引き算。(2+3i)-(5+8i) なら、IMSUB(COMPLEX(2,3),COMPLEX(5,8))。
IMPRODUCT 複素数同士のかけ算。(2+3i)*(5+8i) なら、IMPRODUCT(COMPLEX(2,3),COMPLEX(5,8))。5*(5+8i) なら、IMPRODUCT(5,COMPLEX(5,8))でもよい。3個以上の数の積を求めることも可能(29個まで)。5*(15+3i)*(5+8i) なら、IMPRODUCT(5,COMPLEX(15,3),COMPLEX(5,8))
IMDIV 複素数同士のわり算。(2+3i)/(5+8i) なら、IMDIV(COMPLEX(2,3),COMPLEX(5,8))。
IMREAL 複素数の実数部の数値を取り出す。5+9iから5を取り出したければ、IMREAL(COMPLEX(5,9))
IMAGINARY 複素数の実数部の数値を取り出す。5+9iから9を取り出したければ、IMAGINARY(COMPLEX(5,9))
IMABS 複素数の絶対値を与える。絶対値とはガウス平面上での原点からの距離、すなわち a + bi ならa^2 + b^2 の平方根となる。3+4iの絶対値は、IMABS(COMPLEX(3,4))で、5を与える。
IMARGUMENT 複素数の偏角(単位はラジアンrad)。ガウス平面上で原点と結んだ直線が、x軸となす角。4+4i の偏角は、IMARGUMENT(COMPLEX(4,4))で、0.7854を与える。
IMCONJUGATE 共役の複素数を与える。4+4i の共役複素数は、IMARGUMENT(COMPLEX(4,4))で、4-4iを与える。
IMSQRT 複素数の平方根。-12+16i の平方根は、IMSQRT(COMPLEX(-12,16))で、2+4iを与える。結構、重宝する関数。
IMPOWER 複素数の整数乗。2+4i の2乗は、IMPOWER(COMPLEX(2,4),2)で、-12+16iを与える。
IMEXP eの複素数乗を与える。IMEXP(COMPLEX(0,pi())で、exp(πi)を与える。これも結構重宝する。
IMCOS 複素数のコサイン。複素数の三角関数は普通は、cos z= (exp(iz)+exp(-iz))/2に変形して理解する(zが複素数)。
IMSIN 複素数のサイン。
IMLN 複素数の自然対数(底がe)
IMLOG10 複素数の常用対数(底が10)
IMLOG2 複素数の底が2の対数
| 固定リンク
この記事へのコメントは終了しました。
コメント
どうしても Excel でなければならないというのなら別だけど,
http://maxima.sourceforge.net/ にある Maxima とかどうです?
フリーソフトやけど,Mathematica とほぼ同じ性能だから,普通
に複素数使えまっせ。ただ,ヘルプが英語しかないんで,初心
者には私の書いた Maxima 入門ノートとか見てもらわんと使い
にくいかも知れんけど。
投稿: 守屋亭狂授 | 2007年6月20日 (水) 12時03分
コメントありがとう。Mathematica使わないといけないときに
試してみます。
その手の新しいソフトを使い始めると、継続的に使っているときは、
結構使い方を覚えてるもんだけど、しばらくブランクがあると、
使い方をまったく失念してしまってることがよくありますな。
なので、最近はもっぱらExcelでできることはExcelでやってます。
Excelも昔と違って、進歩してるようです。
数学のプロか、道具として数学を使うかでだいぶスタンスが
違うようですな。
投稿: Tsuyumoto | 2007年6月21日 (木) 23時01分