<p>我使用以下代码为给定函数生成了热图。这里是计算logistic映射变化的全局lyapunov指数-我已经添加了p的参数。这很好,我实际上不关心全局lyapunov指数的确切值是多少,而是关心它是正的还是负的。你知道吗</p>
<p>以下是我一直使用的代码:</p>
<pre><code># Logistic Function
def p_logistic(A, x, p):
return (A/4) * (((p+1)**(p+1))/(p**p)) * (x**p) * (1-x)
# Lyapunov Exponent
def p_lyap(A, x, p):
return np.log(abs((A/4) * (((p+1)**(p+1))/(p**p)) * (p*(x**(p-1)) - (p+1)*(x**p))))
n = 500
A = np.linspace(2, 4, n)
p = np.linspace(0.5, 5, n)
def F(A, p):
A, p = np.meshgrid(A, p)
lyapunov = 0
x = 0.9
N = 100
for i in range(0,N):
lyapunov = lyapunov + p_lyap(A, x, p)
x = p_logistic(A, x, p)
global_lyapunov = lyapunov/N
return global_lyapunov
z = F(A, p)
plt.figure(figsize=(8,8))
xlabels = ['{:3.1f}'.format(x) for x in A]
ylabels = ['{:3.1f}'.format(y) for y in p]
ax = sns.heatmap(z, xticklabels = A, yticklabels = p)
</code></pre>
<p>我曾尝试使用if语句将全局lyapunov指数返回为1(如果它大于0)和-1(如果它小于0),但它返回了错误</p>
<pre><code>The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
</code></pre>
<p>基本上,我只希望在我的热图中有3种颜色,一种是全局lyapunov指数为负,等于0和正时的颜色。有没有可能?你知道吗</p>