我必须编码基本的逻辑增长,以后将用于肿瘤生长。
我必须将float值放入t,但这给了我一个错误,我认为这是因为范围只能采用整数。但是范围必须是t。有什么办法吗?
物流增长
import numpy as np
import matplotlib.pyplot as plt
import csv
val = float(input("Enter your value: "))
r = .25 # growth rate / year ,|(birth/death rate)
K = 100 # carrying capacity
t=val
num = np.zeros(t+1)
num[0] = 1
for i in range(t):
num[i+1] = num[i]+r*num[i]*(1-num[i]/K)
row= (i+1,'\t\t',format(num[i], '.8f'))
print (row)
with open('plot.csv', 'a') as csvFile:
writer = csv.writer(csvFile, delimiter=' ')
writer.writerow(row)
csvFile.close()
plt.plot(range(t+1),num, 'b')
plt.xlabel('Time')
plt.ylabel(' Cell Number')
plt.title('Logistic Growth')
plt.axvline(np.argmax(np.diff(num)), color = 'k' )
plt.show()
答案 0 :(得分:3)
如果要处理存储在float
中的整数,则可以将t
转换为int
:
>>> range(int(7.0))
[0, 1, 2, 3, 4, 5, 6]
如果您确实需要浮点范围,则np.arange()
可以实现:
>>> np.arange(0.2, 6.4, 0.5)
array([ 0.2, 0.7, 1.2, 1.7, 2.2, 2.7, 3.2, 3.7, 4.2, 4.7, 5.2,
5.7, 6.2])