Carleman線形化

ファン・デル・ポル振動子のモデル．

 In[1]:= Xvanderpol[\[Mu]_] := AffineStateSpaceModel[ {{Subscript[x, 2], -Subscript[x, 1] - \[Mu] (-1 + \!\(\*SubsuperscriptBox[\(x\), \(1\), \(2\)]\)) Subscript[x, 2]}, {{ }, {}}}, {Subscript[x, 1], Subscript[x, 2]}, {}, {Automatic, Automatic}, Automatic , SamplingPeriod -> None]

 In[2]:= XvanderpolResponse[\[Mu]_, p_] := OutputResponse[{vanderpol[\[Mu]], p}, {}, {t, 0, 100}]

その位相ポートレート．

 In[3]:= XvanderpolPhasePortrait[\[Mu]_] := With[{v = Normal[vanderpol[\[Mu]]][[1, 1]] /. x_[\[FormalT]] :> x}, StreamPlot[v, {Subscript[x, 1], -3, 3}, {Subscript[x, 2], -3, 3}, StreamStyle -> "PinDart"]]

 In[4]:= XapproxResponse[\[Mu]_, p_, n_] := With[{\[ScriptCapitalC] = CarlemanLinearize[vanderpol[\[Mu]], n]}, OutputResponse[{\[ScriptCapitalC]["TransformedSystem"], Last /@ \[ScriptCapitalC]["EmbeddingTransformation"] /. Thread[{Subscript[x, 1], Subscript[x, 2]} -> p]}, {}, {t, 0, 100}]]

さまざまな初期点からの実際の軌道と近似された軌道を可視化する．

 In[5]:= XManipulate[ Show[vanderpolPhasePortrait[\[Mu]], ParametricPlot[ Evaluate[{vanderpolResponse[\[Mu], p]}~ Join~(approxResponse[\[Mu], p, #] & /@ n)], {t, 0, 100}, PlotLegends -> Join[{"Exact"}, n]], ImageSize -> Medium], {{p, {0.01, 0}}, {-3, -3}, {3, 3}, Locator}, {{\[Mu], 0.6, "Parameter (\[Mu])"}, 0, 1.2, 0.1}, {{n, {1, 4}, "Approx. system(s)"}, CheckboxBar[Dynamic@n, {1, 2, 4, 6, 8, 10}] &}, SaveDefinitions -> True, AutorunSequencing -> {1, 2}]

 動画を開始動画を中止

Questions? Comments? Contact a Wolfram expert »