Matlab - Systems of ODE

 
Vista:
sin imagen de perfil

Systems of ODE

Publicado por sandra (1 intervención) el 26/05/2015 23:21:31
Buenas

Estoy intentado realizar un programa para resolver el siguiente sistema con ode23:

2y’ + z’–y + 2z = 0;
y’ + 3z’ –3y +z = 0;

Con valores iniciales : y(0) = 1,z(0) = 0. y solucion analitica y= cos(x),z= sin(x)


Pero tengo un problema a la hora de hacer el cambio de variables, ya que tendria que utilizar 4 tal que asi:
function dy = eqdif2(t,y)

%2y’ + z’ –y + 2z = 0;
%y’ + 3z’ –3y +z = 0

% y(0) = 1, Z(0) = 0

% y=y(1), z=y(2), y'=y(3), z'=y(4)

dy = [-2*y(3)+y(1)-2*y(2);3*y(1)-y(2)-3*y(4)];

Pero ode23 solo admite dos, entonces no se como realizar este cambio, un ayudilla plis
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Daniel
Val: 269
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Systems of ODE

Publicado por Daniel (264 intervenciones) el 27/05/2015 17:28:40
2y’ + z’–y + 2z = 0;
y’ + 3z’ –3y +z = 0;


primero las ecuaciones diferenciales a resolver deben ser de la forma x_i'=f(x_1,x_2,...x_n)

si despejas de segunda ecuación z' y la reemplazas en la primer ecuacion te queda:

2y’ + (-y'+3y-z)/3 –y + 2z = 0;

o bien

5/3*y' + 5/3*z = 0

en definitiva y' = - z

y la segunda al reemplazar por la que obtuvimos:

(-z) +3z' -3y +z = 0

o bien

3z' -3y = 0

en definitiva z' = y

finalmente el sistema que tenemos que resolver es:

y' = -z
z' = y


te paso el código para resolverlas, guardalo con el nombre solver2.m y luego ejecutalo escribiendo en el command window solver2:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function solver2
clc
clear all
 
y0=1;
z0=0;
 
t1=0;
t2=10;
 
[t,sol]=ode23(@ds,[t1 t2],[y0 z0],[]);
 
plot(t,sol(:,1),t,sol(:,2))
legend('y(t)','z(t)')
 
 
     function ds=ds(~,s)
        ds = zeros(2,1);
        ds(1) = -s(2);
        ds(2) =  s(1);
        ds=ds(:);
    end
 
end


Contanos como te fue


Saludos

Daniel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar