Matlab - ¿Cómo asignar una variable de entrada a una función (ode45)?

   
Vista:

¿Cómo asignar una variable de entrada a una función (ode45)?

Publicado por Adrián Alfonso (11 intervenciones) el 05/04/2012 13:39:25
Hola a tod@s!

Os explico mi problema. Estoy trabajando con el comando ode 45, el cual requiere la asignación de una función en un archivo .m.
Pues bien, me encuentro definiendo dicha función F.m donde aparece la ecuación diferencial a resolver por ode45, pero ahora necesito que en esta ecuación aparezca el valor de una variable de entrada definida en el Command Window principal.
------------------------------
Por ejemplo:
(Archivo .m)
function xp=F(t,x)
...
xp(2)= -a+x(2)+6 % donde a es una variable definida en el Command Window.
------------------------------
He probado ',num2str(a),' o 'a', pero no hay manera. ¿Cómo podría hacerlo?
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 JOSE JEREMIAS CABALLERO

¿Cómo asignar una variable de entrada a una función (ode45)?

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3432 intervenciones) el 05/04/2012 18:26:14
Hola Adrian.
Te contestado dos veces en el foro, nose lo que contesto esta bien o no. Me gustaria que repondieras a las preguntas que te contesto, de esta firmo poder cerrar las preguntas que abres en el foro.


Saludos.
JOSE JEREMIAS CABALLERO
Servicios de programacion matlab
Asesor de Proyectos con Matlab
programador en matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com/
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

¿Cómo asignar una variable de entrada a una función (ode45)?

Publicado por Adrián Alfonso (11 intervenciones) el 05/04/2012 22:09:32
Ok, perdón, ya te contesté. Me sirvieron tus contestaciones, muchas gracias.
¿Puedes ayudarme con esta cuestión?
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
Imágen de perfil de JOSE JEREMIAS CABALLERO

¿Cómo asignar una variable de entrada a una función (ode45)?

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3432 intervenciones) el 05/04/2012 22:20:25
Tu pregunta ya fue contestada.

Saludos.
JOSE JEREMIAS CABALLERO
Servicios de programacion matlab
Asesor de Proyectos con Matlab
programador en matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com/
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

¿Cómo asignar una variable de entrada a una función (ode45)?

Publicado por Adrián Alfonso (11 intervenciones) el 05/04/2012 22:31:05
¿Dónde? Discúlpame, pero no encuentro la contestación a mi pregunta. Sólo puedo leer 4 comentarios en esta nota, y no lo encuentro :S.
Disculpa las molestias, y gracias de antemano.
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
Imágen de perfil de JOSE JEREMIAS CABALLERO

¿Cómo asignar una variable de entrada a una función (ode45)?

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3432 intervenciones) el 05/04/2012 22:35:42
Hummm
al parecer no entras ami blog.
Que pena, porque en el blog, hay temas interesante, de matlab.

Saludos.
JOSE JEREMIAS CABALLERO
Servicios de programacion matlab
Asesor de Proyectos con Matlab
programador en matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com/
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

¿Cómo asignar una variable de entrada a una función (ode45)?

Publicado por Adrián Alfonso (11 intervenciones) el 05/04/2012 23:26:18
Perdón, no sabía que te referías a tu blog. Muchas gracias por tu contestación. He estado probando, pero me sigue dando error.
Mi caso en concreto es el siguiente:

function xp=fint2(t,x);
% He probado con "global a" y no me funciona
xp=zeros(2,1);
xp(1)=x(2);
xp(2)=a-x(2);

(el valor a está definido en el command window)

En donde, al ejecutar en MATLAB, la expresión es:
[t,x]=ode45('fint2',[0,5],[-4,uinf]);
plot(t,x(:,1));

Mi objetivo es poder poner en el command window:

a=6; %(por ejemplo)
[t,x]=ode45('fint2',[0,5],[-4,uinf]);
plot(t,x(:,1));

Y me saque directamente la gráfica de la función solución y=y(t).

Gracias por la ayuda de antemano.
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
Imágen de perfil de JOSE JEREMIAS CABALLERO

¿Cómo asignar una variable de entrada a una función (ode45)?

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3432 intervenciones) el 07/04/2012 20:40:44
Hola Adrian,
Pero uno no es adivino, para saber como son tus ecuaciones, por eso debes poner toda la informacion posible. Pero igual el problema esta resuelto.

Saludos.
JOSE JEREMIAS CABALLERO
Servicios de programacion matlab
Asesor de Proyectos con Matlab
programador en matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com/
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