user6936420
user6936420

Reputation:

Plotting system of differential equations in Python

I've just started to use Python to plot numerical solutions of differential equations. I know how to use scipy.odeint to solve and to plot single differential equations, but I have no idea about systems of differential equations. How can I plot the following coupled system?

N' = a * N - (C/(1+C)) * b * N
C' = (C/(1+C)) * N - C + 1

a = 4
b = 7
N(0) = 100
C(0) = 5

Upvotes: 4

Views: 22700

Answers (1)

user1393214
user1393214

Reputation:

Just define all of the variables as a space vector, then apply integration:

import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt

def f(s,t):
    a = 4
    b = 7
    n = s[0]
    c = s[1]
    dndt = a * n - (c/(c+1)) * b * n
    dcdt = (c/(c+1)) * n - c + 1
    return [dndt, dcdt]

t = np.linspace(0,20)
s0=[20,5]

s = odeint(f,s0,t)

plt.plot(t,s[:,0],'r--', linewidth=2.0)
plt.plot(t,s[:,1],'b-', linewidth=2.0)
plt.xlabel("t")
plt.ylabel("S[N,C]")
plt.legend(["N","C"])
plt.show()

enter image description here

Upvotes: 6

Related Questions