es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Aplicando la derivada de Riemann-Liouville a la ecuación tridimensional de Lorenz.

Estoy usando un módulo en python llamado differint para resolver el sistema de ecuaciones tridimensionales de Lorenz. Después de ejecutar mi sistema 3D sobre differint ==> operador Riemann-Liouville para valor alfa 1, la ecuación original y los resultados de Riemann-Liouville no son iguales. El código se menciona a continuación:

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

t = np.arange(1, 50, 0.01)

def Lorenz(state, t):
  # desempaquetar el vector de estado
  x = state[0]
  y = state[1]
  z = state[2]

  a = 10
  b = 8/3
  c = 28 
  xd = a * (y - x) 
  yd = -y + c * x - x * z
  zd = -b * z + x * y

  return [xd, yd, zd]
state0 = [1, 1, 1]

state = odeint(Lorenz, state0, t)
# Gráfico de la ecuación de Lorenz simple
plt.subplot(2, 2, 1)
plt.plot(state[:,0], state[:,1])
plt.subplot(2, 2, 2)
plt.plot(state[:,0], state[:,2])
plt.subplot(2, 2, 3)
plt.plot(state[:,1], state[:,2])
plt.show()

DF = df.RL(1, state, 0, len(t), len(t)) 
# Gráficos de Riemann-Liouville
state = DF
plt.subplot(2, 2, 1)
plt.plot(state[:,0], state[:,1])
plt.subplot(2, 2, 2)
plt.plot(state[:,0], state[:,2])
plt.subplot(2, 2, 3)
plt.plot(state[:,1], state[:,2])
plt.show()

¿Estoy cometiendo algún error o este es el resultado real?

Como puede ver en la ecuación (2), cuando ponemos α = 1, obtendremos los mismos resultados que en el sistema no fraccional (1). Estoy interesado en calcular la ecuación (3) para diferentes valores de alfa.

Creo que esta idea mía puede ser incorrecta, porque lo que estoy haciendo es primero calcular el sistema de ecuaciones diferenciales usando

state = odeint(Lorenz, state0, t)

seguido del módulo differint

DF = df.RL(1, state, 0, len(t), len(t))

Gráficos para la ecuación de Lorenz:

enter image description here

Gráficos para el sistema fraccional de RL para alfa = 1:

enter image description here

En estos gráficos, como puede ver, las trayectorias son absolutamente iguales pero la escala se vuelve diferente.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Basándose en su código y los gráficos que ha proporcionado, parece que los resultados para el sistema original de Lorenz y el sistema de derivada fraccional de Riemann-Liouville con alfa=1 son realmente diferentes.

    Es posible que haya un error en su implementación del módulo differint, o puede haber un error en el mismo módulo. Sin embargo, sin más información sobre el módulo differint y los detalles específicos de la implementación, es difícil decir con certeza.

    Algo a tener en cuenta es que cuando alfa=1, la derivada fraccional de Riemann-Liouville se reduce a la derivada estándar. Por lo tanto, los resultados para el sistema original de Lorenz y el sistema de Riemann-Liouville con alfa=1 deberían ser los mismos.

    En general, puede ser útil revisar la documentación del módulo differint y verificar nuevamente su implementación, o considerar el uso de un módulo o método diferente para resolver el sistema de Lorenz si continúa encontrando discrepancias.

Comments are closed.