Matlab - Ayuda con esta programación

 
Vista:
sin imagen de perfil

Ayuda con esta programación

Publicado por Francisco Lopez Piñero (2 intervenciones) el 05/04/2007 11:47:27
Tengo que programar un metodo numérico para la resolución de sistema de ecuaciones diferenciales,me he basado en este, pero tengo ciertos errores,espero que alguien me pueda ayudar:

function V=equation(y)
global Ha Ei R n
Ha=2;Ei=10;R=100;
n=10;
h=1/n;
V=zeros(2*n,1);
y0=1;
V(1)=1/h^2*(-y0+2*y(1)-y(2))+Ha^2*y(1)*y(n+2);
for i=2:(n-1)
V(i)=1/h^2*(-y(i-1)+2*y(i)-y(i+1))+Ha^2*y(i)+(y(n+1+i));
end;
V(n)=(2/h^2)*(-y(n-1)+y(n)-(Ha^2-R)*h*y(n))+Ha^2*y(n);
V(n+1)=(2/h^2)*(y(n+1)-y(n+2))+Ha^2/(Ei-1)*y(n+1);
for i=(n+2):(2*n-1)
V(i)=1/h^2*(-y(i-1)+2*y(i)-y(i+1))+Ha^2/(Ei-1)*y(i-(n+1))*y(i);
end;
y2n1=1;
v(2*n)=1/h^2*(-y(2*n-1)+2*y(2*n)-y2n1)+Ha^2/(Ei-1)*y(n)*y(2*n);

me sale el siguiente error:
?? Input argument "y" is undefined.

Error in ==> ecuacion at 8
V(1)=1/h^2*(-y0+2*y(1)-y(2))+Ha^2*y(1)*y(n+2);

soy un poco novato asi que seguro que es una tonteria.

Espero respuesta. Un saludo.
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

RE:Ayuda con esta programación

Publicado por Antonio (32 intervenciones) el 05/04/2007 19:52:42
Bueno, parece que en todas estas líneas pretendes trabajar con las componentes de un supuesto vector "y" que no has definido aún (por lo menos en el trozo de código que aparece en tu pregunta).

y(1) y(2)) y(n+2) son componentes de "y"; te dice que no sabe quien es.
Supongo que tendrás definido el vector "y" en una macro general que llama a esta function o incluso a otras.
Yo me aseguraría de que:
1.- El vector "y" está definido en esa macro general, justo antes de la línea de llamada de esta function. (pide una salida por pantalla, por ejemplo).
2.- Revisa los nombres que estás asignando a tus variables, a veces es fácil equivocarse con los nombres cuando tienes que ir pasando datos de una function a otra. Puede ser que donde lo calculases llevara este nombre pero en la macro general no lo hayas cambiado.

Espero que te sirva de ayuda. Un saludo
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