• ベストアンサー

第2種楕円積分の逆関数?

Cをある定数とおいた時、E(φ,k)を第2種楕円積分として、   E(φ,sqrt(1/2))=C の時のφの値を求めるにはどうすればよいでしょうか? E(φ,k)の逆関数がわかればいいのでしょうか・・。 色々調べても皆目見当がつかなかったので、どうかよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • siegmund
  • ベストアンサー率64% (701/1090)
回答No.3

siegmund です. > 実はとあるプログラムの中で、任意のEに対するφを随時出力したい > (例えばy=sinφのサインカーブ上を+φの向きにS[m]進んだとき、その位置でのφの値を求めたい) > のですが、楕円積分関連のサブルーチンを探しても「ニューメリカルレシピ・イン・シー」程度しか見つからず、 > またそれは与えられたφ、kからE(φ,k)を求めるものにすぎませんでした。 与えられたφ,kからE(φ,k) を求めるサブルーチンをお持ちでしたら, f(x) = C という方程式の数値解を求める手法(二分法や Newton 法)と組み合わせればいいのではないでしょうか. Newton 法では f'(x) が必要ですが,今は f(x) が楕円積分になっていますから, f'(x) は楕円積分の被積分関数そのものです.

その他の回答 (2)

  • siegmund
  • ベストアンサー率64% (701/1090)
回答No.2

【1】 Mathmatica でやるのでしたら,例えば C=0.5 の場合, FindRoot[EllipticE[φ, 1/√2] == 0.5, {φ, {0, Pi/2}}] で φ -> 0.515759 と一発です(ラジアン単位). Maple はよく知りませんが,FindRoot ではなくて fsolve というコマンドでしたっけ? 【2】 数式処理ソフトをお持ちでないなら http://has10.casio.co.jp/ から,楕円積分 => 第2種不完全楕円積分 E(φ,k),とたどって φ をいろいろ変えて try and error でしょうかね. 単調変化ですから,すこしやれば求められますね. このサイトでは φ は度単位です. 【3】 他には,例えば http://integrals.wolfram.com/ でも数値積分をやってくれますから, 【2】と同じようにやればOKです. ここはラジアン単位でしょう. 他にも便利なサイトがあるかも知れませんが...

boenikki
質問者

お礼

ご回答ありがとうございます。 実はとあるプログラムの中で、任意のEに対するφを随時出力したい (例えばy=sinφのサインカーブ上を+φの向きにS[m]進んだとき、その位置でのφの値を求めたい) のですが、楕円積分関連のサブルーチンを探しても「ニューメリカルレシピ・イン・シー」程度しか見つからず、 またそれは与えられたφ、kからE(φ,k)を求めるものにすぎませんでした。 どうにかして第2種楕円積分を第1種楕円積分(またはその逆関数)を 用いて表すことが出来ればよさそうな気がするのですが・・。 何か他に良い方法は無いものでしょうか・・。

  • info22
  • ベストアンサー率55% (2225/4034)
回答No.1

y=E(φ,1/√2)のグラフを描いておいて、y=Cとなるときのφを求めるだけで いいかと思います。 数式処理ソフトのMapleだと plot([EllipticE*(sin(t), 1/2^(-1/4)), t, t = 0 .. Pi/2], x = 0 .. Pi/2, axes = normal, view = [0 .. Pi/2, 0 .. Pi/2], tickmarks = [5, 3], labels = [C, fai]); で逆関数(単調増加)のグラフが描けます。 横軸のCの範囲は0~E(π/2|1/√2)≒1.2374225249,縦軸φの範囲は 0~π/2[rad]です。

boenikki
質問者

お礼

現況はNo.2の方への返信の通りです。 info22様のご回答を見てふと考えたのですが、EXCELか何かで ざーっ、と数値積分させて近似曲線の方程式を出せば良いのかも、 と思ったのですが正しいのでしょうか・・。

boenikki
質問者

補足

ご回答ありがとうございます。

関連するQ&A

専門家に質問してみよう