
Aquí está una guía paso a paso para resolver el problema del oscilador de Van der Pol en Matlab. Vamos a descomponer el problema en partes más pequeñas y manejables.
Paso 1: Definir la Ecuación Diferencial
El primer paso es definir la ecuación diferencial que describe el oscilador de Van der Pol. La ecuación es:
x'' - μ(1 - x^2)x' + x = 0.
Aquí, μ (mu) es un parámetro que controla la no linealidad y la fuerza de la amortiguación. Recuerda que x'' es la segunda derivada de x con respecto al tiempo, y x' es la primera derivada.
Para resolverla en Matlab, necesitamos transformar esta ecuación de segundo orden en un sistema de dos ecuaciones de primer orden. Introducimos una nueva variable y = x'. Esto nos da el siguiente sistema:
x' = y
y' = μ(1 - x^2)y - x.
Must Read
Paso 2: Crear una Función de Matlab
Ahora, crearemos una función de Matlab que represente este sistema de ecuaciones. Esta función tomará el tiempo (t) y el vector de estado ([x; y]) como entrada, y devolverá las derivadas ([x'; y']). Abre un nuevo archivo en el editor de Matlab y guarda el archivo como van_der_pol.m.
El contenido del archivo van_der_pol.m será algo similar a esto:
function dxdt = van_der_pol(t, x, mu)
dxdt = [x(2); mu(1 - x(1)^2)x(2) - x(1)];
end

Recuerda guardar la función en el mismo directorio donde ejecutarás el script principal de Matlab.
Paso 3: Resolver la Ecuación Diferencial con ODE45
Matlab proporciona la función ode45 para resolver ecuaciones diferenciales ordinarias. Usaremos esta función para simular el oscilador de Van der Pol. Crea un nuevo script de Matlab (por ejemplo, main.m).

En main.m, primero definiremos los parámetros iniciales. Esto incluye el valor de μ, las condiciones iniciales para x e y, y el intervalo de tiempo de la simulación. Un ejemplo sería:
mu = 1.5;
initial_conditions = [1; 0]; % x(0) = 1, y(0) = 0
tspan = [0 20]; % Simulación de t=0 a t=20
A continuación, llamamos a la función ode45 para resolver la ecuación diferencial:
[t, sol] = ode45(@(t,x) van_der_pol(t, x, mu), tspan, initial_conditions);
Aquí, @(t,x) van_der_pol(t, x, mu) es una función anónima que llama a nuestra función van_der_pol con el valor actual de μ.

La función ode45 devuelve dos matrices: t, que contiene los puntos de tiempo en los que se resolvió la ecuación, y sol, que contiene los valores correspondientes de x e y en esos puntos de tiempo.
Paso 4: Visualizar los Resultados
Finalmente, visualizaremos los resultados de la simulación. Podemos graficar x en función del tiempo, o graficar y en función de x (el plano de fase). En el archivo main.m, agregamos el siguiente código:

Para graficar x en función del tiempo:
plot(t, sol(:,1));
xlabel('Tiempo (t)');
ylabel('x(t)');
title('Oscilador de Van der Pol: x(t) vs Tiempo');
Para graficar el plano de fase:
figure; % Crea una nueva figura
plot(sol(:,1), sol(:,2));
xlabel('x(t)');
ylabel('y(t) = x''(t)');
title('Oscilador de Van der Pol: Plano de Fase');
Ejecuta el script main.m. Deberías ver dos gráficas: una mostrando la evolución de x con el tiempo, y otra mostrando el plano de fase, que revelará el ciclo límite característico del oscilador de Van der Pol.