Sie sind auf Seite 1von 3

# 12/6/2016 Untitled

## File "<ipython-input-1-95c9755a1f1e>", line 5

import numpy as np
^
IndentationError: expected an indented block

## In[17]: import numpy as np

from matplotlib import pyplot as plt

## def eulers(coef, prey, pred, step):

#This function takes in a tuple containing 4 values representing
#the coefficients, then the current populations and step size.
a, b, c, d = coef[0], coef[1], coef[2], coef[3]
next_x = prey + step * (a*prey - b*prey*pred)
next_y = pred + step * (c*pred*prey - d*pred)
#The output is a tuple, with the new prey population
#followed by the new predator population.
return next_x, next_y

## In[124]: ### Here, I originate the inputs

prey_pop = int(input('What is the initial prey population?'))
pred_pop = int(input('What is the initial predator population?'))
a, b, c, d = 0.1, 0.1, 0.1, 0.1
coefficients = a, b, c, d
time_elapse = input('What is the amount of time to be modeled?')
time_step = input('What is the desired step size?')
#Here, I calculate the number of steps we will do,
#and build a list containing the values for
#"current time" that I will move through.
num_steps = int(time_elapse/time_step)
time_values = []
for i in range(num_steps + 1):
time_values.append(i*time_step)
#This list will be used to create the graph.

## What is the initial prey population?10

What is the initial predator population?10
What is the amount of time to be modeled?10
What is the desired step size?2

12/6/2016 Untitled

## In[125]: #Next, I will originate, then iteratively add to

#the lists containing the values for
#predator and prey populations over time.

prey_values = [prey_pop]
pred_values = [pred_pop]
for i in range (num_steps):
#Here, I will do Euler's method for the current time.
step = eulers(coefficients, prey_pop, pred_pop, time_step)
#Then, I will take the output, and add the relevant
#populations to each population's list.
prey_pop = step[0]
pred_pop = step[1]
#Next, I will adjust any negative outcomes to 0,
#since the population must be a positive number.
if pred_pop < 0 :
pred_pop = 0
if prey_pop < 0 :
prey_pop = 0
#Then, I will add this current value to the list containing
#values from every step. These will be used to create the graph.
prey_values.append(prey_pop)
pred_values.append(pred_pop)
print 'The final prey population is', str(int(round(prey_values[num_step
s])))
print num_steps, pred_values, prey_values
print 'The final predator population is', str(int(round(pred_values[num_
steps])))

## #Then, these will be put into a line graph.

plt.plot(time_values, prey_values, time_values, pred_values)
plt.xlabel('Time Elapsed')
plt.ylabel('Population Size')
plt.legend(labels = ['Prey', 'Predators'], bbox_to_anchor=(1.38, 0.6))
plt.show()

12/6/2016 Untitled

## The final prey population is 0

5 [10, 28.0, 22.4, 17.919999999999998, 14.335999999999999, 11.468799999
999998] [10, 0, 0.0, 0.0, 0.0, 0.0]
The final predator population is 11