El Brusselator
El Brusselator es un sistema dinámico continuo que modela un proceso autocatalítico. Fue propuesto de manera conjunta por Ilya Prigogine y sus colaboradores de la Universidad Libre de Bruselas. Las reacciones químicas que describe están dadas por el siguiente sistema de ecuaciones diferenciales
$$\begin{equation}\begin{split} \dot{x}&= \alpha + x^{2} y - \beta x - x\\ \dot{y}&= \beta x - x^{2} y \end{split}\end{equation}\label{brus}\tag 1$$
El Brusselator tiene el punto de equilibrio
$$X(\alpha,\beta)=\left( \alpha, \frac{\beta}{\alpha} \right),\label{eqp}\tag 2$$
el cual es localmente asintóticamente estable para \( \beta< 1+\alpha^{2} \), tiende lentamente hacia el equilibrio (foco débil) en el valor crítico \( \beta= 1+\alpha^{2} \), y pierde su estabilidad cuando \( \beta>1+\alpha^{2} \); dando como resultado la aparición de una oscilación autosostenida ampliamente conocida en la literatura matemática como ciclo límite. En particular, a esta pérdida de estabilidad se le conoce como bifurcación de Hopf o de Andronov-Hopf. A diferencia del tipo de oscilaciones que aparecen en el sistema Lotka-Volterra, las oscilaciones en el sistema (\ref{brus}) no dependen de la cantidad inicial de elementos reactivos. De esta manera, dadas ciertas cantidades iniciales de reactivos, las órbitas en una vecindad del punto de equilibrio (\ref{eqp}) siempre tienden a un ciclo límite cuando \( \beta>1+\alpha^{2} \). Para mayores detalles consultar [1,2].
Simulación del Brusselator
(*Parametric solution*)
vf = ParametricNDSolveValue[
{
x'[t]==α+x[t]^2*y[t]-β*x[t]-x[t],
y'[t]==β*x[t]-x[t]^2*y[t],
x[0]==0,
y[0]==2
},
{x,y},
{t,0,100},
{α,β}
];
(*Frames*)
frames = Animate[
Block[
{
$PerformanceGoal = "Quality"
},
With[
{
α = 1
},
Show[
{
ContourPlot[α + x^2 y - β x - x == 0, {x, 0,
3.5}, {y, 0, 3.5}, ContourStyle -> {Orange, Dashed}],
ContourPlot[β x - x^2*y == 0, {x, 0, 3.5}, {y, 0, 3.5},
ContourStyle -> {Red, Dashed}],
StreamPlot[{α + x^2 y - β x - x, β x -
x^2*y}, {x, 0, 3.5}, {y, 0, 3.5},
StreamStyle -> Directive[Opacity[0.5]]],
ParametricPlot[
Evaluate[Through[vf[α, β][t]]], {t, 0, 70},
PlotStyle -> Directive[Thickness[0.006], Black]]
},
PlotRange -> All, FrameStyle -> Black,
LabelStyle -> Directive[Small]
]
]
], {β, 0.5, 2.3, 0.01},
AnimationDirection -> ForwardBackward
];
(*Exporting frames to a GIF image*)
Export[
"Brusselator.gif",
frames,
"ControlAppearance"->None,
"AnimationRepetitions"->Infinity,
"AnimationRate"->Automatic,
"DisplayDurations"->0.08
]Referencias
No hay comentarios.:
Publicar un comentario