【发布时间】:2012-12-09 03:59:16
【问题描述】:
模块 OneDMaps:
def LogisticMap(a,nIts,x):
for n in xrange(0,nIts):
return 4.*a*x*(1.-x)
实际程序:
# Import plotting routines
from pylab import *
import OneDMaps
def OneDMap(a,N,x,f):
return x.append(f(a,N,x))
# Simulation parameters
# Control parameter of the map: A period-3 cycle
a = 0.98
# Set up an array of iterates and set the initital condition
x = [0.1]
# The number of iterations to generate
N = 100
#function name in OneDMaps module
func = LogisticMap
# Setup the plot
xlabel('Time step n') # set x-axis label
ylabel('x(n)') # set y-axis label
title(str(func) + ' at r= ' + str(a)) # set plot title
# Plot the time series: once with circles, once with lines
plot(OneDMap(a,N,x,func), 'ro', OneDMap(a,N,x,func) , 'b')
该程序应该从模块 OneDMaps.py 中调用一个函数,然后根据它的迭代绘制它。我收到错误“无法将序列乘以浮点类型的非整数”,并且我尝试使用 LogisticMap(float(a)...) 但这不起作用。此外,我希望函数名称显示在绘图的标题中,但我得到“在 r=0.98 而不是说 LogisticMap at r=0.98.
【问题讨论】:
-
那么,到底是什么问题呢?我似乎很清楚错误是什么。
"Can't multiply sequence by non-int of type float"- 这意味着你不能做4.*'s'如果你只想乘法,请从4.*a*x*(1.-x)中删除.