電子書籍の厳選無料作品が豊富!

回転数の求め方について質問です。
以下のようなtを媒介変数とする複素平面上の閉曲線を考えます。

Σ[k=1~n] A_k exp(i k (t-θ_k))
(iは虚数単位)

このとき、閉曲線の回転数(巻数)はどうやって求められるでしょうか?
(例えば添付画像の回転数は6)

閉曲線を離散化して求めることはできそうですが、できれば正確な解法を知りたいです。

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

A 回答 (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)}
をじかに勘定しても同じだと思いますが…。
    
    • good
    • 0

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π)
としましたが、必要に応じて、半径を変更することも可能です。しかし、任意の閉曲線は単位円の連続写像であることを考えれば、それは本質的なことではありません。
    • good
    • 0

>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)です。
    • good
    • 0

当方の前稿は、まったくの錯誤でした。



  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 に正負を許容する場合だと、別の考慮が要るのかも。
   

この回答への補足

接線ベクトルを小刻みに算出する方法を利用して、回転数を求めるプログラムを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πあたりに現れるので、それの差を取って回転数としています。

補足日時:2010/07/26 17:47
    • good
    • 0

複素関数では、接線ベクトルの偏角を積分すればいいですね。



微分幾何学的には、回転数nは、

n=(1/2π)∫kds

で求める事が出来ます。ただし、曲率の不連続点での回転角を

どのように扱うのかについては、前もって定義しておかなければなりませんね。

質問者さんの例示した曲線には、曲率の不連続点が1カ所ありますね。

この回答への補足

ご提示いただいた数式で正しいと思うのですが、これをMathematicaを用いてΣ[k=1~n] A_k exp(i k (t-θ_k))という式から導く方法が解らず困っています。

確かに曲率の不連続点の問題もありますが、その部分は回転していないとみなすか、または回転数は未定義でも構いません。

補足日時:2010/07/20 18:53
    • good
    • 0

回転数の定義が判然としません。



「各項の回転角 φk(t) = k*(t-θk) の和から φk(0) = -k*θk の和を差し引き、単純に 2π で割ったもの」じゃなさそう…。

改めて、回転数の定義は?
「例えば添付画像の回転数は 6」の勘定方法は?
   

この回答への補足

「偏角関数を連続関数としたときの、始点から終点での偏角の差を2πで割ったもの」と考えましたが、この理解でも正しいでしょうか。

上記の「各項」および、「φ」、「θ」とは何のことでしょうか?

補足日時:2010/07/20 18:52
    • good
    • 0

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