« 電子顕微鏡でシャープペンシルの芯を見る | トップページ | 1億人がジャンプして地球が動くか »

2007年6月 2日 (土)

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の対数

|

« 電子顕微鏡でシャープペンシルの芯を見る | トップページ | 1億人がジャンプして地球が動くか »

コメント

どうしても Excel でなければならないというのなら別だけど,
http://maxima.sourceforge.net/ にある Maxima とかどうです?
フリーソフトやけど,Mathematica とほぼ同じ性能だから,普通
に複素数使えまっせ。ただ,ヘルプが英語しかないんで,初心
者には私の書いた Maxima 入門ノートとか見てもらわんと使い
にくいかも知れんけど。

投稿: 守屋亭狂授 | 2007年6月20日 (水) 12時03分

コメントありがとう。Mathematica使わないといけないときに
試してみます。

その手の新しいソフトを使い始めると、継続的に使っているときは、
結構使い方を覚えてるもんだけど、しばらくブランクがあると、
使い方をまったく失念してしまってることがよくありますな。

なので、最近はもっぱらExcelでできることはExcelでやってます。
Excelも昔と違って、進歩してるようです。

数学のプロか、道具として数学を使うかでだいぶスタンスが
違うようですな。

投稿: Tsuyumoto | 2007年6月21日 (木) 23時01分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/187788/15292652

この記事へのトラックバック一覧です: Excelで複素数の計算をする方法:

» エクセル関数って凄い@ [エクセル関数って凄い@]
エクセルの関数を使いこなすととても便利ですね♪始めは難しく感じるエクセルの関数ですが勉強しましょう! [続きを読む]

受信: 2007年6月12日 (火) 22時40分

» エクセルマクロの作成 [エクセル@まるわかり辞典]
エクセルマクロの作成 まずは、Visual Basicツールバーを追加します。ツールバーの適当な場所でマウスを右クリックします。 ショートカットメニューから、使用可能はメニューが表示されます。Visual Basicを選択します。これで、マクロを作成できる準備が完了しま...... [続きを読む]

受信: 2007年6月24日 (日) 01時15分

» エクセル時間計算 [エクセル@まるわかり辞典]
エクセルでは、日付や時間はシリアル値で処理されます。シリアル値では、時間・時刻は「1日(24時間)」を「1」として、12:00は「0.5」、6:00は「0.25」と小数点以下の数値で表します。時間のデータから時、分、秒を取り出す、つまり、シリアル値から数値への変換には、次...... [続きを読む]

受信: 2007年6月30日 (土) 01時35分

« 電子顕微鏡でシャープペンシルの芯を見る | トップページ | 1億人がジャンプして地球が動くか »