dポイントプレゼントキャンペーン実施中!

円筒座標系での電磁場のマクスウェル方程式を磁場に関して解いて得られる解が複素数を引数とする0次のベッセル関数
AJ0(kr)、kが複素数、Aは実係数、rは実変数
で得られるのですが
引数を実数に変換する方法がわかりません。
純虚数の引数であれば実数の引数の変形ベッセル関数に変換でき、
実数の引数であれば手持ちの本にベッセル関数の値が載っているのですが
複素数の引数の場合の処理方法がわからなくて困っています。
よろしくお願いします。

A 回答 (3件)

z = x+yi として z^2 = (x^2 - y^2) + 2xyi や


r exp(iθ) = r (cosθ+i sinθ)
みたいに,実部と虚部をうまく分離したような形で処理できないか,
というご質問と思いますが,
一般にはこういうふうにうまくはいきません.
今の例で言えば,
J0(z) = u(x,y) + iv(x,y)
となるように u,v を定義することはもちろん可能ですが,
u,v がよく知られた関数になるわけではありません(と思います).
複素変数のベッセル関数というより仕方がないでしょう.

計算センターなど科学計算用ライブラリにはたいてい
複素変数のベッセル関数のサブルーチンが入っています.
あるいは,Cで書かれたソースなどもどこかにあるかも知れませんが
ちょっと今は手が回りません.
    • good
    • 0
この回答へのお礼

なるほど、そのまま複素変数のベッセル関数として計算させるしかないわけですね。
ありがとうございます。
サブルーチンを探してみます。
どのような計算手法なのか知りたいので、
第1種ベッセル関数の解が
Jn(x) = (x/2)^n Σ[{(-1)^n (x/2)^2n } / { n! Γ(n + m + 1 )}]
であるように、複素変数のベッセル関数を数値計算する方法が詳しく載っている本などをもしご存知でしたら教えていただきたいです。

お礼日時:2002/01/11 11:20

siegmund です.



http://oshiete1.goo.ne.jp/kotaeru.php3?q=195527
で uni050 さんご紹介のページからちょっとたどった
http://www.netlib.org/cgi-bin/search.pl
で,bessel と入れてサーチしてみて下さい.
沢山出てきます.
    • good
    • 0
この回答へのお礼

なるほど、いろいろとありがとうございました。
どうにかやってみます。

お礼日時:2002/01/12 20:05

siegmund です.



級数展開自体は x を複素数 z にして
Jn(z) = (z/2)^n Σ[{(-1)^n (z/2)^2n } / { n! Γ(n + m + 1 )}]
でそのまま使えます.
n が非整数ですと頭の (z/2)^n のブランチが悩ましいところですが,
整数なら心配は要りませんね.

級数展開は z=0 の一点の周辺の近似になりますから,
実際の数値計算で得かどうかはよくわかりません.
数値計算プログラムとしては,1点の周りで正確であるよりも
対象とする変数の範囲すべてで規定以上の精度を保証しないといけませんから.

アルゴリズムはちょっと私の手に余ります.

なお,Mathemtica には組み込み関数で BesselJ(n,z) があります.
あと,Maple や それに似ている MuPAD にもあるかもしれません(未確認).
MuPAD はある条件を満たせばフリーで使えるらしいです
(私はまだ使ったことはありませんが).
http://home.att.ne.jp/star/mathmodern/link/linkc …
などからリンクをたどってみてください.
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!