from numpy import *
from pylab import *
from math import *
def LogisticMap(a,x):
return 4.*a*x*(1.-x)
def CosineMap(a,x):
return a*cos(x/(2.*pi))
def TentMap(a,x):
if x>= 0 or x<0.5:
return 2.*a*x
if x>=0.5 or x<=1.:
return 2.*a*(1.-x)
a = 0.98
N = 40
xaxis = arange(0.0,N,1.0)
Func = CosineMap
subplot(211)
title(str(Func.func_name) + ' at a=%g and its second iterate' %a)
ylabel('X(n+1)') # set y-axis label
plot(xaxis,Func(a,xaxis), 'g', antialiased=True)
subplot(212)
ylabel('X(n+1)') # set y-axis label
xlabel('X(n)') # set x-axis label
plot(xaxis,Func(a,Func(a,xaxis)), 'bo', antialiased=True)
私のプログラムは、3つの定義された関数のいずれかを取り、それをプロットすることになっています。それらはすべて、0からNまでの配列xaxisから値xを取り込んでから、その値を返します。xaxisとf(xaxis)のグラフをプロットしたいと思います。fは上記の3つの関数のいずれかです。logisticmap関数は正常に機能しますが、CosineMapの場合は「長さ1の配列のみをPythonスカラーに変換できます」というエラーが発生し、TentMapの場合は「複数の要素を持つ配列の真理値があいまいです。aを使用してください」というエラーが発生します。 any()またはa.all()"。私のテントマップ関数は、0 <=x<0.5の場合は2*a * xを返し、0.5 <= 0<=1の場合は2*a *(1-x)を返すと想定しています。