Red de conocimiento informático - Aprendizaje de código fuente - ¿El análisis numérico requiere programación?

¿El análisis numérico requiere programación?

Es muy sencillo resolver este problema con MATLAB, pero la pregunta parece tener dos preguntas:

1. ¿Deben las ecuaciones en los dos conjuntos de ecuaciones diferenciales ser dx1/dt y dx2/dt respectivamente?

2. El proceso de transición entre los dos sistemas es muy corto y no es necesario establecer un tiempo de simulación demasiado largo (de hecho, 1 segundo es demasiado).

El código del programa es el siguiente (tf es el tiempo de simulación, que se puede modificar según convenga):

dx1? =?en línea('[-(x(1)-1)^3-(x(1)-1)*x(2)^2;?-x(2)^5]'?t ',?x ');

dx2? =?inline('[-x(1)^3-x(1)*x(2)^2;?-x(2)^3]'?t ',?x');

X0? =?[-100,?40;? -100,?-50;? 0,01?60;? 100?100];

n? =?tamaño(X0,1);

tf? =?0.5;

¿Para qué? i=1:n

x0? =?X0(I,?:);

[t,? incógnita]? =?ode45(dx1,?0:0.01:tf,?x0);

Gráfico de rama (n, 2,?(i-1)*2+1)

Gráfico (t, x)

Legend('x_1',?x_2',?0)

ylabel(sprintf('x_0?=?(%.3g,?%.3g )',? x0));

¿Si? yo==1,? título("Sistema I");? Fin

[t,? incógnita]? =?ode45(dx2,?0:0.01:tf,?x0);

Gráfico de rama (n, 2,?i*2)

plot(t,x)

Leyenda('x_1',?x_2',?0)

¿Si? yo==1,? título("Sistema II");? Fin

Fin

Representaciones de resultados (simulando 2 sistemas y 4 conjuntos de valores iniciales para obtener 8 conjuntos de curvas):