Я использовал функцию solve_ivp в Pyhon в oredr для решения системы четырех связанных дифференциальных уравнений, и теперь я хочу построить решение, чтобы показать его устойчивость вблизи определенной фиксированной точки в четырехмерном фазовом пространстве. .
Я думал, что непрерывная линия в трехмерном пространстве, которая также меняет свой цвет в соответствии с 4-м измерением, могла бы быть хорошим решением, но не мог найти никакого способа сделать это и хотел бы некоторую помощь.
Код, который я использовал для решения уравнений и построения четырех векторов как функции времени:
from scipy.integrate import solve_ivp
import numpy as np
import matplotlib.pyplot as plt
#parametres
Alpha1= 0.4 #in [0,1]
Alpha2= 1 - Alpha1
Kappa=2
A1=A2=A=0.3
B1=B2=B=0.03
K1 = 2
K2 = 2
Taun = 3.1
Taup = 3.1
# Differential Equations
def V( t , y):
dN1dt = Alpha1*Kappa + K1*y[1]*(B1-y[0]) - K2*y[0]*(B2-y[1]) -(y[0]/Taun) - A1*( y[0]*(y[2])-(B1-y[0])*y[2])
dN2dt = Alpha2*Kappa + K2*y[0]*(B2-y[1]) - K1*y[1]*(B1-y[0]) -(y[1]/Taun) - A2*( y[1]*(y[3])-(B2-y[1])*y[3])
dS1dt = -(y[2]/Taup) + A1*(y[0]*(y[2]) - (B1-y[0])*y[2])
dS2dt = -(y[3]/Taup) + A2*(y[1]*(y[3]) - (B2-y[1])*y[3])
return [dN1dt, dN2dt, dS1dt, dS2dt]
# Stable Points
N1ss = B1/2 + 1/(2*A1*Taup)
N2ss = B2/2 + 1/(2*A2*Taup)
S1ss = Alpha1*Kappa*Taup - 0.5*((B*Taup/Taun) + 1/(A*Taun) + (K1-K2)*Taup*(1/(2*(A**2)*(Taup**2)) - 0.5*(B**2)))
S2ss = Alpha2*Kappa*Taup - 0.5*((B*Taup/Taun) + 1/(A*Taun) + (K2-K1)*Taup*(1/(2*(A**2)*(Taup**2)) - 0.5*(B**2)))
print(N1ss,N2ss,S1ss,S2ss)
# Initial Conditions
N10 = N1ss*(1.1)
N20 = N2ss*(0.9)
S10 = S1ss*(1.5)
S20 = S2ss*(0.3)
y0 = [N10,N20,S10,S20]
#Solution and Plotting
sol = solve_ivp(V, (0,100) , y0)
plt.plot(sol.t, sol.y.T)
plt.legend(['N1', 'N2', 'S1', 'S2'])
plt.xlabel('Time')
plt.ylabel('Excited Dots and Photons')
Что дает следующий сюжет: