Chica, gracias por explicarlo tan bien y tan sintetizado, y créeme es difícil que le comente a alguien porque lo haga bien, en verdad lo hiciste muy bien, la comunidad te lo agradece.
Tienes que guardar la función en otro archivo Guarda lo siguiente como miODE.m %EDO function dy = miODE(t,y) dy(1) = y(2)+1; dy(2) = y(1)*y(2)-6; dy = [dy(1);dy(2)]; end Luego, En otro script que guardes en la misma carpeta pero con otro nombre, podría ser Ejemplo.m escribe lo siguiente clc; clear; %Tiempo integración tspan = (0:0.1:5); %Condiciones Iniciales y0 = [1,0]; %Solver [t,y] = ode45(@miODE,tspan,y0); %Graficar plot(t,y(:,1),'r'); hold on; plot(t,y(:,2),'b'); legend('y1','y2'); xlabel('tiempo'); ylabel('y');
Hola, gracias por el video, ¿sabes por que motivo cuando corro un ejercicio de resolucion de ODE no avanza? no me grafica, y abre un nuevo script llamado ode45.m con lineas que van tipo : ... hmin = 16*eps(t); if isempty(htry) % Compute an initial step size h using y'(t). absh = min(hmax, htspan); if normcontrol rh = (norm(f0) / max(normy,threshold)) / (0.8 * rtol^pow); else rh = norm(f0 ./ max(abs(y),threshold),inf) / (0.8 * rtol^pow); end ... Y por ese motivo no se termina de ejecutar mi script, se queda en la funcion ode45, ya intente con distintas funciones, incluso con las de tu video, y me sigue saliendo lo mismo. No me marca error pero se abre ese otro script y no me deja continuar.
Hola Liz 😊 En este otro video te mostramos como implementar Runge Kutta de 4to orden. ruclips.net/video/qw7onY6YRG0/видео.html ¿Te refieres al ode45? En el blog que aquí te dejo puedes encontrar una buena discusión sobre el método utilizado. En particular... ode45 is a six-stage, fifth-order, Runge-Kutta method. blogs.mathworks.com/cleve/2014/05/26/ordinary-differential-equation-solvers-ode23-and-ode45/#:~:text=ode45%20is%20a%20six%2Dstage,order%2C%20Runge%2DKutta%20method.
Ya que se resuelven numéricamente, lo que se obtiene es la matriz de dos columnas que contiene los valores de y1 y y2 en el intervalo de integración. Con éste método no se obtienen las funciones explícitas y1(t), y2(t).
Son dos ejercicios por separado, ¿cierto? Ambos ejercicios se pueden resolver en forma analítica y son relativamente sencillos, si los quires resolver numéricamente te dejo aquí el código para el primero: clc; clear; %Tiempo integración xspan = (0:0.1:1); %Condiciones Iniciales y0 = [0]; %Solver [x,y] = ode45(@miODE,xspan,y0); %Graficar plot(x,y(:,1),'r'); hold on; legend('y'); xlabel('tiempo'); ylabel('y'); %EDO function dy = miODE(x,y) dy(1) = 1 + y(1)^2; dy = [dy(1)]; end
@@matesenminutos8351 Sí, son 2 ejercicios pero no los enumere. Disculpa. Ya corrí el programa y me da la gráfica con las solución. Muchísimas gracias, llevaba atorado en esa parte varios días y no entendía la sintaxis cómo lo planteé porque normalmente era dy/dt.
Hola!! como puedo traficar dt/dx= 0.08x=0.4, x(0)=0.5 he intentado con tu video pero me arroja muchos errores, cambié que tu tienes dos ecuaciones yo solo tengo 1, pero creo que lo que más error me arroja es la t, y el 0.5 😥Ayuda please
Chica, gracias por explicarlo tan bien y tan sintetizado, y créeme es difícil que le comente a alguien porque lo haga bien, en verdad lo hiciste muy bien, la comunidad te lo agradece.
Que alegría de encontrar a gente que explique como tú, muchas gracias
Del presente al pasado, gracias, justo voy aprendiendo matlab
Me encantó!!! Me has ayudado mucho a hacer una tarea!!!
Me resolviste muchas dudas en el video, muchas gracias.
Muchas gracias, te amo
Gracias por las explicaciones tan claras y concisas
De nada, espero te haya ayudado :)
Muchas gracias, me has salvado! Te amo 😂
Te amo
Muchas gracias!
Hola. Si el programa lo pongo en Octave este no me resuelve las "y" ¿Cual podría ser el problema?
Tienes que guardar la función en otro archivo
Guarda lo siguiente como miODE.m
%EDO
function dy = miODE(t,y)
dy(1) = y(2)+1;
dy(2) = y(1)*y(2)-6;
dy = [dy(1);dy(2)];
end
Luego, En otro script que guardes en la misma carpeta pero con otro nombre, podría ser Ejemplo.m escribe lo siguiente
clc; clear;
%Tiempo integración
tspan = (0:0.1:5);
%Condiciones Iniciales
y0 = [1,0];
%Solver
[t,y] = ode45(@miODE,tspan,y0);
%Graficar
plot(t,y(:,1),'r'); hold on;
plot(t,y(:,2),'b');
legend('y1','y2'); xlabel('tiempo');
ylabel('y');
@@matesenminutos8351 excelente, más tarde lo intento. Muchas gracias de antemano.
¿Te funcionó?
Hola, gracias por el video, ¿sabes por que motivo cuando corro un ejercicio de resolucion de ODE no avanza? no me grafica, y abre un nuevo script llamado ode45.m con lineas que van tipo :
...
hmin = 16*eps(t);
if isempty(htry)
% Compute an initial step size h using y'(t).
absh = min(hmax, htspan);
if normcontrol
rh = (norm(f0) / max(normy,threshold)) / (0.8 * rtol^pow);
else
rh = norm(f0 ./ max(abs(y),threshold),inf) / (0.8 * rtol^pow);
end
...
Y por ese motivo no se termina de ejecutar mi script, se queda en la funcion ode45, ya intente con distintas funciones, incluso con las de tu video, y me sigue saliendo lo mismo. No me marca error pero se abre ese otro script y no me deja continuar.
Hola José, me podrías enviar el código que no te corre por favor? Nuestro correo es: matesenminutos@gmail.com
Una disculpa, este método se relaciona con Runge Kutta de 4to orden?
Hola Liz 😊
En este otro video te mostramos como implementar Runge Kutta de 4to orden.
ruclips.net/video/qw7onY6YRG0/видео.html
¿Te refieres al ode45?
En el blog que aquí te dejo puedes encontrar una buena discusión sobre el método utilizado. En particular... ode45 is a six-stage, fifth-order, Runge-Kutta method.
blogs.mathworks.com/cleve/2014/05/26/ordinary-differential-equation-solvers-ode23-and-ode45/#:~:text=ode45%20is%20a%20six%2Dstage,order%2C%20Runge%2DKutta%20method.
Gracias
Buen día el programa si corre, pero solo hace la gráfica y no me sale los valores de los resultados. Por favor ayuda.
Hola hola, da doble clic en la variable que quieras ver en el workspace y vas a poder observar la tabla con los valores
Pero la solución y1(t), y2(t) cómo quedarían?? Antes de graficar
Ya que se resuelven numéricamente, lo que se obtiene es la matriz de dos columnas que contiene los valores de y1 y y2 en el intervalo de integración.
Con éste método no se obtienen las funciones explícitas y1(t), y2(t).
Hola, ¿Cómo es que puedo solucionar ?
y'=1+y^2. y(0)=0
y'=x/y. y(1)=3
Por favor 🙏🏻
Son dos ejercicios por separado, ¿cierto?
Ambos ejercicios se pueden resolver en forma analítica y son relativamente sencillos, si los quires resolver numéricamente te dejo aquí el código para el primero:
clc; clear;
%Tiempo integración
xspan = (0:0.1:1);
%Condiciones Iniciales
y0 = [0];
%Solver
[x,y] = ode45(@miODE,xspan,y0);
%Graficar
plot(x,y(:,1),'r'); hold on;
legend('y'); xlabel('tiempo');
ylabel('y');
%EDO
function dy = miODE(x,y)
dy(1) = 1 + y(1)^2;
dy = [dy(1)];
end
@@matesenminutos8351 Sí, son 2 ejercicios pero no los enumere. Disculpa.
Ya corrí el programa y me da la gráfica con las solución.
Muchísimas gracias, llevaba atorado en esa parte varios días y no entendía la sintaxis cómo lo planteé porque normalmente era dy/dt.
Hola!! como puedo traficar dt/dx= 0.08x=0.4, x(0)=0.5
he intentado con tu video pero me arroja muchos errores, cambié que tu tienes dos ecuaciones yo solo tengo 1, pero creo que lo que más error me arroja es la t, y el 0.5 😥Ayuda please
Hola
Me parece que no esta bien el problema como lo has escrito, por favor, corrobora si es: dx/dt = 0.08x ; x(0)=0.5.
Gracias