这是一个简单的问题,希望是一个简单的答案。 (免责声明:我是Mathematica的新手。)我试图找到差分方程的固定点。一个简单的例子是:
x[t_] := x[t] = (x[t - 1])^2
Solve[x[t] == x[t - 1], x[t - 1]]
它输出$RecursionLimit::reclim: Recursion depth of 1024 exceeded.
所以我假设它同时递归取代x[t]
和x[t-1]
?我试过了
Solve[x[t] == Hold[x[t - 1]], x[t - 1]]
但这并没有解决任何问题。如果只是在x[t-1]^2
替换为x[t]
,它会发现它非常容易解决。关于如何轻推Mathematica的任何建议?
答案 0 :(得分:0)
你有x [n + 1] = x [n] ^ 2。如果您只是将其作为重复发生攻击,那么您将获得无限递归。 (你最初的情况是什么?你没有指定一个,你一般不需要它来找到固定点。但是,所有M'ma都知道你有一些语法递归定义函数 - - 通过应用您编写的SetDelayed []来评估函数。)
但是,如果将此短语称为“y [x_]:= x ^ 2”,将更新重写规则与递归重写规则分开,则可以通过“y(x)= x”找到固定点:
Solve[y[x]==x,x]
事实上,这是构建寻找固定点问题的通用方法 - 当我使用更新功能对其进行操作时,输入的输入是什么?
假设你现在想要k周期点...
kPoints[k_] := Solve[Nest[y,x,k]==x,x]