Как я могу закодировать логистический рост?
Я должен закодировать логистический рост на python, где время может принимать числа с плавающей запятой.
dN/dt = rN(1-N/K)
где
Н это население
Р это темп роста
К это пропускная способность
т быть временем
То время в моем коде можно брать только целые числа, но он обязательно должен принимать числа с плавающей точкой, так как позже я буду использовать его для логистического роста опухолей, и я не смог его исправить.
Я буду очень признателен за любую возможную помощь, даже если она не связана с моим кодом.
Что я уже пробовал:
import numpy as np #for basic numerical computation import matplotlib.pyplot as plt #for visualization import csv import random #val = int(input("Enter your value: ")) r = .25 # growth rate / year ,|(birth/death rate) K = 100 # carrying capacity #t = 40 # time t=random.randint(0,40) num = np.zeros(t+1)#always add +1 for your upper limit #array([ 0., 0., 0., 0., 0.]) which means that it creates 41 arrays filled with zeroes 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()
Richard MacCutchan
Если вам нужна помощь, пожалуйста, объясните, в чем именно заключается ваша проблема.
Z.BOZ
Привет Ричард,
Я должен ввести числа с плавающей запятой в t(время), например 0.01. Проблема в том, что этот код не может принимать значения с плавающей запятой. Я новичок в python и не могу понять, как это исправить.
Richard MacCutchan
Извините, я не понимаю. Python прекрасно работает с целыми числами или числами с плавающей запятой.