Barridos con matrices de por medio
Publicado por Dez (2 intervenciones) el 04/04/2013 22:19:36
Hola buenas.
Estoy intentando hacer un programa para predecir la órbita de asteroides con Euler. Consiste en darle una aceleración, velocidad y posiciones iniciales en x e y, usando el siguiente bucle:
Los valores se guardan en matrices 2xn (en la primera fila los valores de x y en la segunda los de y)
El problema llega cuando quiero meter la velocidad como un vector e intentar hacer un bucle que haga lo mismo que el anterior pero con un barrido de todas las velocidades. He intentado meter un "for" que las recorra, pero no puedo poner v(i,:,n-1) por ejemplo. ¿Cómo podría solucionarlo? Gracias
Estoy intentando hacer un programa para predecir la órbita de asteroides con Euler. Consiste en darle una aceleración, velocidad y posiciones iniciales en x e y, usando el siguiente bucle:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
t(1)=tini;
pos(:,1)=[x0;y0];
a(:,1)=[a0x;a0y];
v(:,1)=[vx0;vy0];
n=1;
while ~(pos(1,n)>0 && pos(2,n)<0 )
n=n+1;
t(n)=t(n-1)+da;
a(:,n)=-G*M.*pos(:,n-1)/(sum(pos(:,n-1).^2)).^(3/2);
v(:,n)=v(:,n-1)+a(:,n)*da;
pos(:,n)=pos(:,n-1)+(v(:,n-1)+v(:,n))/2*da;
end
Los valores se guardan en matrices 2xn (en la primera fila los valores de x y en la segunda los de y)
El problema llega cuando quiero meter la velocidad como un vector e intentar hacer un bucle que haga lo mismo que el anterior pero con un barrido de todas las velocidades. He intentado meter un "for" que las recorra, pero no puedo poner v(i,:,n-1) por ejemplo. ¿Cómo podría solucionarlo? Gracias
Valora esta pregunta
0