Thu, July 22, 2004

Igor Pro lecture No. 14

複素数の取り扱い

IGORでは、A + i B といった複素数を扱う事ができる。 まず、これまでと同様に、「実数部」と「虚数部」を表す wave を作成してみよう。これらはまだ通常の実数 wave だ。

・Make/D/O realWave,imagWave

今回は実数部および虚数部に対して以下のようなデータをセットしてみた。

・realWave=-p
・imagWave=p+1

次のコマンドにより、表に出してみよう。

・Edit realWave,imagWave

■さて、IGORで複素数を表す wave をどのようにして作成したらいいのだろうか。それは、メニューのMake waves ... コマンドを呼び出した後、「Complex」にチェックを入れておけばよい。

これをコマンドで表すと以下のようになる。

・Make/D/C/O amp

ごらんの通り複素数を表すフラッグは、/Cだ。
さて、複素数 wave に値を代入するためにはどうしたらいいのだろうか。それは、cmplx関数を用いる。

・amp=cmplx(realWave,imagWave); edit amp

すでに作成した二つの実数 wave realWaveとimagWaveを、複素数 wave であるampに代入する命令だ。

edit命令によって、以下のような表が作成されるはずだ。

ここでこの表は、real および cmplxの2列からなる表である事がわかる。

続いて、amp の複製 wave として、intを作成しよう。

・Duplicate/O amp int
・int=amp*conj(amp)
・Edit int

■新たな命令として、上ではconj 関数を用いた。これは複素共役を意味し、
Amplitude = REAL + i IMAGINARY

Intensity = Amplitude x Amplitude* = ( REAL + i IMAGINARY ) x ( REAL - i IMAGINARY )
= REAL^2 + IMAGINARY ^2

ような感じでフーリエ振幅や強度の計算に用いられる。

まだこの段階では、wave には実数部のみが残ったとはいえ、wave の型は以下の図のような「複素数型」だ。

そこで、実数型 wave に変換しよう。これは、IGOR の Dataメニューにある、Redimension waves ... から行える。real から complex へ wave のType を変更しよう。ここでは様々な wave のタイプ変換が行える。

上記の操作をコマンドで表すと以下のようになる。コマンドラインでこれを打ち込んでもOKだ。

・Redimension/R int

posted at July 22, 2004 05:56 PM

« Igor Pro lecture No. 13 | ホームに戻る | Igor Pro lecture No. 15 »

さんのサイン・インを確認しました。 (サイン・アウト)

(いままで、ここでコメントしたとがないときは、コメントを表示する前にこのウェブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)


情報を登録する?


Polymer Molecular Engineering Laboratory
Department of Polymer Science and Engineering,
Kyoto Institute of Technology,
Matsugasaki, Sakyo-ku, Kyoto 606-8585, JAPAN