2 views
in Python

I'm trying to graph Exponential and Logistic Population Models for my Differential Equations subject as part of its requirements, this is my code so far, it gets an error when I run it, what should I replace/do for this to run?

import numpy as np

import matplotlib.pyplot as plt

import math

from IPython.display import clear_output

print("Utilize Which Growth Model of Population? (Type A or B)")

print()

print("A Exponential Growth Model")

print("B Logistic Growth Model")

print()

A = int(1)

# Exponential Growth Model

B = int(2)

# Logistic Growth Model

C = input("Growth Model of choice : ")

print()

if C == "A":

# Definition of Parameters

print("The Differential Equation of your chosen growth model is P'(t) = r*P(t)")

print()

print("Where r = growth parameter")

print("Where P(t) = total population at a certain time t")

print("Where t = time")

print()

# Explanation of Differential Equation

print("This equation can be considered as the exponential differential equation")

print("because its solution is P(t) = P(0)*e^r*t ; where P(0) = Initial Population")

print()

print("This equation can be portrayed by using this graph : ")

# Graph Code

x, y = np.meshgrid(np.linspace(-50, 50, 10), np.linspace(-50, 50, 10))

r = float(input("Encode Growth Parameter :"))

t = float(input("At how many years do you want to solve? :"))

P = float(input("Encode Population Count :"))

P = y

t = x

x = np.asarray(x, dtype="float64")

Un = u / P * (math.exp ** (r * t))

Vn = u / P * (math.exp ** (r * t))

plt.quiver(x, y, Un, Vn)

plt.plot([8, 12, 25, 31], [1, 16, 20, 40])

plt.show()

if C == "B":

print("The Differential Equation of your chosen growth model is y' = k*y*(M-y)")

print()

print("Where k = slope of the function")

print("Where y = y-value at the specific point")

print("Where M = limit of y as x approaches infinity")

print()

print("This equation is derived using *** ")

I ran this code in python and I expected it to run as I have seen through examples online, but instead I got an "unsupported operand type(s) for ** or pow(): 'builtin_function_or_method' and 'float'" what does this mean?

by (25.1k points)

You are getting this error because use are using math.exp as a number, it is actually a function that will raise e to the power of the number you pass in as argument eg”:

math.exp(1) will give you the output as e^1 which is 2.718281828459045