• 締切済み

回転数の求め方について質問です。

回転数の求め方について質問です。 以下のようなtを媒介変数とする複素平面上の閉曲線を考えます。 Σ[k=1~n] A_k exp(i k (t-θ_k)) (iは虚数単位) このとき、閉曲線の回転数(巻数)はどうやって求められるでしょうか? (例えば添付画像の回転数は6) 閉曲線を離散化して求めることはできそうですが、できれば正確な解法を知りたいです。

みんなの回答

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.6

>dt = 2π/100; >Table[Arg[c[t + dt] - c[t]], {t, 0, 2π, dt}]; >Length[Select[Differences[%], # <= -π &]] - Length[Select[Differences[%], # >= π &]] (* これが回転数 *) >偏角の差分を取ると上下に振り切れる部分が2πあたりと-2πあたりに現れるので、それの差を取って回転数としています。 当方、Mathematica の式を解読できません。 方針は良さそうです。 何か不都合でも? たとえば、各項  Ak*e^(ikt) の微係数  ikAk*e^(ikt) = kAk*e^{ikt+(π/2)} をじかに勘定しても同じだと思いますが…。     

  • ojisan7
  • ベストアンサー率47% (489/1029)
回答No.5

No2、No4です。少し補足させて下さい。 >df/dz=0は(n-1)次代数方程式ですから、零点(重根を込めて)は(n-1)個です。 と書きましたが、領域|z|<1内の零点の個数でなければなりませんから、回転数n(C)は高々(n-1)となります。正確な零点の個数を求めるには、係数c_kの値が具体的に与えられていなければなりません。係数c_kの値が分かれば、Roucheの定理などを使って零点の個数を求めることができます。しかし、質問者さんは、Mathematicaを使うことを考えているようですから、(n-1)次の代数方程式の数値解を直接求めるのも手ですよね。 尚、z=exp(it) (0≦t≦2π) としましたが、必要に応じて、半径を変更することも可能です。しかし、任意の閉曲線は単位円の連続写像であることを考えれば、それは本質的なことではありません。

  • ojisan7
  • ベストアンサー率47% (489/1029)
回答No.4

>Mathematicaを用いてΣ[k=1~n] A_k exp(i k (t-θ_k))という式から導く ということですが、A_k exp(i k (t-θ_k))という式の指数部分はどうなっているのでしょうか?それから、パラメータとして、tを使っているようですが、tの変域はどのように与えられていますか? 一般的に閉曲線は、単位円から閉曲線への連続写像で考えます。 z=exp(it) (0≦t≦2π) とします。このようにすれば、 f(z)=Σ[k=1~n] A_k exp(i k (t-θ_k))=Σ[k=1~n] A_k・z^k・exp(-ikθ_k)) となり、f(z)は閉曲線になります。尚、偏角関数ということですが、fの偏角ではダメです。df/dzの偏角で考えるべきですね。 回転数n(C)は、 n(C)=(1/2πi)∫f''/f'dz で与えられる。ということになりましょうか。偏角の原理より、 n(C)=N-P ですが、df/dzにはどこにも極はありませんね。df/dzは単純化して書けば、 df/dz=c_1+c_2・z+c_3・z^2+c_4・z^3+・・・+c_n・z^(n-1) ただし、c_k=A_k・k・exp(-ikθ_k)です。 df/dz=0は(n-1)次代数方程式ですから、零点(重根を込めて)は(n-1)個です。 したがって、n(C)=(n-1)です。

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.3

当方の前稿は、まったくの錯誤でした。   n  Σ Ak*exp{i*k (t-θk)} = φ(t)   (iは虚数単位)  k=1 の大域的な回転数ではなく、局所的な回転数も加味した問題ですね。 だとすれば、#2 さんの「接線ベクトル」によるアプローチが有効だと思われます。 φ(t) を小刻みに (dt ずつ) 算出していき、近似的「接線ベクトル」dφ(t) = φ(t+dt) - φ(t) の偏角の回転数をカウントする手法。 原題のように各項が  Ak*exp{i*k (t-θk)} の場合なら、dφ(t) は t とともに単調増大してきますが、もしも、  Ak*exp{i*Bk (t-θk)} で Bk に正負を許容する場合だと、別の考慮が要るのかも。    

butchi_y
質問者

補足

接線ベクトルを小刻みに算出する方法を利用して、回転数を求めるプログラムをMathematicaで実装してみました。 n = 10; amp = Table[Random[]/k, {k, 1, n}]; rot = Table[2π Random[], {n}]; c[t_] := Sum[amp[[k]] Exp[I k (t - rot[[k]])], {k, 1, n}] ListPlot[amp, Filling -> Bottom, PlotRange -> {0, All}] ParametricPlot[{Re[#], Im[#]} &[c[t]], {t, 0, 2π}, PlotRange -> All] dt = 2π/100; Table[Arg[c[t + dt] - c[t]], {t, 0, 2π, dt}]; Length[Select[Differences[%], # <= -π &]] - Length[Select[Differences[%], # >= π &]] (* これが回転数 *) 偏角の差分を取ると上下に振り切れる部分が2πあたりと-2πあたりに現れるので、それの差を取って回転数としています。

  • ojisan7
  • ベストアンサー率47% (489/1029)
回答No.2

複素関数では、接線ベクトルの偏角を積分すればいいですね。 微分幾何学的には、回転数nは、 n=(1/2π)∫kds で求める事が出来ます。ただし、曲率の不連続点での回転角を どのように扱うのかについては、前もって定義しておかなければなりませんね。 質問者さんの例示した曲線には、曲率の不連続点が1カ所ありますね。

butchi_y
質問者

補足

ご提示いただいた数式で正しいと思うのですが、これをMathematicaを用いてΣ[k=1~n] A_k exp(i k (t-θ_k))という式から導く方法が解らず困っています。 確かに曲率の不連続点の問題もありますが、その部分は回転していないとみなすか、または回転数は未定義でも構いません。

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.1

回転数の定義が判然としません。 「各項の回転角 φk(t) = k*(t-θk) の和から φk(0) = -k*θk の和を差し引き、単純に 2π で割ったもの」じゃなさそう…。 改めて、回転数の定義は? 「例えば添付画像の回転数は 6」の勘定方法は?    

butchi_y
質問者

補足

「偏角関数を連続関数としたときの、始点から終点での偏角の差を2πで割ったもの」と考えましたが、この理解でも正しいでしょうか。 上記の「各項」および、「φ」、「θ」とは何のことでしょうか?

関連するQ&A