【发布时间】:2022-01-16 14:57:47
【问题描述】:
我有一个函数(方程 2),它返回 Nf(或 N),它代表最终人口规模。现在我想用 (r=0.1, K=100, and N0=10) 模拟 100 年,并将 N 绘制为 t(年)的函数(代码的第二部分)。但是,每次我运行代码时,python 都会返回一个值错误 (The truth value of an array with more than one element is ambiguous. Use a.any() or a.all())。似乎我无法将数组放入方程 2,但每隔一次我尝试将我的 x 值分配为一个 numpy 数组,它每次只使用一个数组的单个值进入函数。因此,我很困惑。有谁知道如何解决这个问题?
def equation2(r,K,N0,t):
i=0
N=N0
while i<=t:
if t==0:
return N0
else:
Nf=N+(r*(1-N/K)*N)
N=Nf
i=i+1
return Nf
import numpy as np
r=0.1
K=100
N0=10
t=np.linspace(0,100,101)
N=equation2(r,K,N0,t)
plt.plot(t,N)
【问题讨论】:
-
如果
t是一个数组,你就不能像if t==0这样的测试。 -
请写一个标题来概括您遇到的问题。有关这方面的提示,请参阅How to Ask。你可以edit。
-
当
t是一个数组时,您必须自己决定应该发生什么。 -
@hpaulj 实际上错误发生在
while i<=t -
不要改变问题的主题。我已经把它回滚了。如果你有新的问题,可以ask a new question,但我认为答案是matplotlib自动调整比例。我的意思是,你试过了吗?
标签: python arrays function numpy simulation