En primer lugar, podemos realizar un análisis cualitativo del campo vectorial mediante un gráfico de campo vectorial .
Se puede observar que hay puntos fijos de repulsión cerca de $(0.6,0.6)$ y $(-0.6,-0.6)$ y los puntos fijos de atracción $(0.6,-0.6)$ y $(-0.6,0.6)$ . También hay un punto de ensillamiento en $(0,0)$ . Este gráfico se ha realizado en MATLAB con el código
[X,Y] = meshgrid(linspace(-2,2,21)); % create mesh
dfx = @(x,y) -(y-2*x.^2.*y).*exp(-(x.^2+y.^2)); % x partial derivative
dfy = @(x,y) -(x-2*x.*y.^2).*exp(-(x.^2+y.^2)); % y partial derivative
Fx = dfx(X,Y);Fy = dfy(X,Y); % calculate the partial derivatives
quiver(X,Y,Fx,Fy) % plot the vector field
axis square,axis([-1,1,-1,1]*2),xlabel('x'),ylabel('y') % set plot options
A partir de esto, esperamos que la condición inicial $(0,1)$ para tender hacia el punto fijo cerca de $(-0.6,0.6)$ . Aunque no se muestra en el gráfico, esperamos que la condición inicial $(2,4)$ para aumentar sin límites.
El siguiente código se utiliza para producir estos resultados. El sistema ODE se resuelve con ODE45. Esto está diseñado para ser ejecutado después del fragmento de código anterior.
g = @(t,y) [dfx(y(1),y(2));dfy(y(1),y(2))];
ic = [0;1];
tend = 10;
[t,sol] = ode45(g,[0,tend],ic);
% generate graph
subplot(2,1,1)
quiver(X,Y,Fx,Fy),hold on
plot(sol(:,1),sol(:,2),'r','Linewidth',2)
axis([-1,0.5,0.5,1.1])
xlabel('x'),ylabel('y')
subplot(2,1,2)
plot(t,sol(:,1),'b',t,sol(:,2),'r')
legend('x(t)','y(t)','Location','SouthEast')
El gráfico superior muestra el $(x,y)$ posición superpuesta en el campo vectorial. Los componentes individuales se muestran en función del tiempo en el gráfico inferior.
Esto se puede repetir con la segunda condición inicial $(2,4)$ . tend
se ha incrementado a $10^{12}$ en este gráfico. Obsérvese también la escala logarítmica en el $x$ -eje.
La resolución del sistema ODE para ambas condiciones iniciales, como se ha hecho, confirma el análisis cualitativo realizado inicialmente.