寻找迭代映射的不动点

时间:2011-04-05 03:15:22

标签: wolfram-mathematica fixed-point

我需要找到迭代地图x[n] == 1/2 x[n-1]^2 - Mu的固定点 我的方法:

Subscript[g, n_ ][Mu_, x_] :=  Nest[0.5 * x^2 - Mu, x, n]

fixedPoints[n_] := Solve[Subscript[g, n][Mu, x] == x, x]

Plot[
  Evaluate[{x, 
   Table[Subscript[g, 1][Mu, x], {Mu, 0.5, 4, 0.5}]}
  ], {x, 0, 0.5}, Frame -> True]

3 个答案:

答案 0 :(得分:4)

我会略微改变符号(大多数情况下我自己都可以理解)。你可能想要这样的东西。

y[n_, mu_, x_] := Nest[#^2/2 - mu &, x, n]
fixedPoints[n_] := Solve[y[n, mu, x] == x, x]

显着特征是现在嵌套的“函数”确实是一个函数,格式正确。

示例:

fixedPoints[2]

Out[18]= {{x -> -1 - Sqrt[-3 + 2*mu]}, 
          {x -> -1 + Sqrt[-3 + 2*mu]}, 
          {x ->  1 - Sqrt[ 1 + 2*mu]}, 
          {x ->  1 + Sqrt[ 1 + 2*mu]}}

Daniel Lichtblau

答案 1 :(得分:3)

首先,您的方法存在错误。 Nest具有纯粹的功能。我也会使用精确输入,即1/2而不是0.5,因为Solve是一个符号而不是数值求解器。

Subscript[g, n_Integer][Mu_, x_] := Nest[Function[z, 1/2 z^2 - Mu], x, n]

然后

In[17]:= fixedPoints[1]

Out[17]= {{x -> 1 - Sqrt[1 + 2 Mu]}, {x -> 1 + Sqrt[1 + 2 Mu]}}

答案 2 :(得分:0)

旁注:

看看当你开始非常接近固定点时会发生什么(奇怪的:):

f[z_, Mu_, n_] := Abs[N@Nest[1/2 #^2 - Mu &, z, n] - z]

g[mu_] := f[1 + Sqrt[1 + 2*mu] - mu 10^-8, mu, 10^4]

Plot[g[mu], {mu, 0, 3}, PlotRange -> {0, 7}]  

enter image description here

修改

事实上,你似乎有一个自动相似结构:

enter image description here