C言語関係掲示板

過去ログ

No.937 複素数の平方根について

[戻る] [ホームページ]
No.11906

複素数の平方根について
投稿者---ベル(2004/01/18 10:21:48)


はじめましてベルといいます。
いま自分でちょっと数値計算のプログラムを作っていまして
そのなかで複素数の平方根の扱いがうまくいかず、困ってます。
たとえば、√5+i√3のように、実数と虚数を2つの変数に格納
しやすい状態のものはいいのですが、√(5+i3)のように√の
中に実数と虚数が入ってしまったときの処理をどうすればいいのか
分からずに困っています。
どうか、分かる方助言をお願いします。


No.11907

追加です
投稿者---ベル(2004/01/18 10:29:04)


先ほど1つ書き忘れました。
一応、複素数の四則演算はC言語側で用意されたものでなく、
自分で作ったのを使ってます。
なるべく、自分で作ったものを使いたいと考えてます。

No.11915

Re:追加です
投稿者---たか(2004/01/18 18:04:01)


ここ当たりが参考になるかと。
zの平方根はsqrt(z)と-sqrt(z)の二つがある事に注意。

No.11910

Re:複素数の平方根について
投稿者---YuO(2004/01/18 15:29:37)


>たとえば、√5+i√3のように、実数と虚数を2つの変数に格納
>しやすい状態のものはいいのですが、√(5+i3)のように√の
>中に実数と虚数が入ってしまったときの処理をどうすればいいのか
>分からずに困っています。

単純に,複素数の平方根の公式を使うだけですが。
自力で算出しても大した手間ではないですし。

とりあえず,次のような感じになるかと。
$\sqrt{x+iy}
= \left(re^{i\theta}\right)^{\frac{1}{2}}
= \sqrt{r}e^{i\frac{\theta}{2}}
= \sqrt{x^2+y^2}\left(\cos\frac{\theta}{2}+i\sin\frac{\theta}{2}\right)
= \sqrt{x^2+y^2}\left(\cos\frac{\arctan\left(y/x\right)}{2}+i\sin\frac{\arctan\left(y/x\right)}{2}\right)$