Diferencia entre revisiones de «Movimiento de partículas. Grupo 22C»

De MateWiki
Saltar a: navegación, buscar
(Página creada con «{{ TrabajoED | Movimiento de un sistema de partículas. (Grupo 22-C) | Teoría de Campos|2014-15 | Palacios Pin...»)
 
Línea 11: Línea 11:
 
[[Categoría:Teoría de Campos]]
 
[[Categoría:Teoría de Campos]]
 
[[Categoría:TC14/15]]
 
[[Categoría:TC14/15]]
 
 
<big>Perdona, Nieves Vidal Sánchez, pero que haceis en nuestro pagina exactamente? teneis que crear vuestra propio articulo... DEJAD DE USURPAR TRABAJOS!!!!</big>
 
 
  
  

Revisión del 12:10 4 dic 2014

Trabajo realizado por estudiantes
Título Movimiento de un sistema de partículas. (Grupo 22-C)
Asignatura Teoría de Campos
Curso 2014-15
Autores

Palacios Pintor, Pedro

Lafita, María

De la Torre Prado, Yago

Vidal Sánchez, Nieves

Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura







Consideramos un conjunto de 20 partículas que inicialmente se encuentran en los puntos de coordenadas (xi,yi,zi) = (cos(2πi/10),sin(2πi/10), i/10), i=1, 2, ..., 20 respecto a la base ortonormal {e1,e2,e3}. Supondremos que las partículas están unidas por alambres de masa despreciable de manera que su posición relativa no cambia.

1 Visualización de un sistema de partículas

Los ejes de la siguiente figura están fijados en la región [-2,2]x[-2,2]x[0,2] Visualizacion de un sistema de particulas

El código en MATLAB para obtener la gráfica del sistema sería:

%la primera parte del programa calcula las coordenadas de los puntos materiales
%crea una matriz de 3 filas y 20 columnas, donde cada columna son las tres coordenadas de los puntos
coordenadas=zeros(3,20);
for i=1:20
coordenadas(1,i)=(cos((2*pi*i)/10));
coordenadas(2,i)=(sin((2*pi*i)/10));
coordenadas(3,i)=(i/10);
end
clear('i');
%dibujamos la helice en 3d con los ejes pedidos, creamos los vectores de coordeandas X, Y, Z
coorX=zeros(1,20);
coorY=zeros(1,20);
coorZ=zeros(1,20);
for i=1:20
coorX(1,i)=coordenadas(1,i);
coorY(1,i)=coordenadas(2,i);
coorZ(1,i)=coordenadas(3,i);
end
clear('i');
%pintamos esos vectores
figure(1);
plot3(coorX,coorY,coorZ, '--. b');
axis([-2,2,-2,2,0,2]);
hold on

2 Centro de masas de un sistema de particulas

Sabiendo que las partículas tienen masa creciente mi=10+i/10, para calcular el centro de masas hacemos uso de la siguiente fórmula: (∑inrimi)/M donde M es la masa total y ri= la distancia del punto al eje correspondiente x,y ó z. El código de Matlab será el siguiente:

%calculamos una matriz con las masas
masas=zeros(1,20);
for i=1:20
masas(1,i)=(10+i/10);
end
clear('i');
%calculamos cuanto aporta cada particula al centro de masas y el centro de masas
auxXG=zeros(1,20);
auxYG=zeros(1,20);
auxZG=zeros(1,20);
for i=1:20
auxXG(1,i)=(masas(1,i)*coorX(1,i));
auxYG(1,i)=(masas(1,i)*coorY(1,i));
auxZG(1,i)=(masas(1,i)*coorZ(1,i));
end
clear('i');
masatotal=sum(masas);
auxXG=sum(auxXG);
auxYG=sum(auxYG);
auxZG=sum(auxZG);
%calculamos las coordenads del centro de masas y lo pintamos
XG=((1/masatotal)*auxXG);
YG=((1/masatotal)*auxYG);
ZG=((1/masatotal)*auxZG);
plot3(XG,YG,ZG,'. g ','linewidth',10)
hold off
figure(2);


2.1 Visualicacion del centro de masas

Esta sería la gráfica obtenida ejecutando el programa anterior:

Visualicacion del centro de masas


3 Rotacion de un sistema de particulas

3.1 Matriz Rotacion con eje ω=e3 y angulo θ= π/16

Calculamos la matriz de rotación a partir de un eje ω=e3 y un ángulo θ= π/16. El código que nos permite obtener dicha matriz de rotación es esta:

%esta parte del programa calcula la primera matriz de rotación
%calculamos la matriz de la rotación a partir de un eje de vector w y un angulo theta
w=[0, 0 , 1];
theta=pi/16;
matriz1=eye(3);
matriz2=zeros(3,3);
matriz3=zeros(3,3);
for i=1:3
matriz2(1,i)=(w(1)*w(i));
matriz2(2,i)=(w(2)*w(i));
matriz2(2,i)=(w(3)*w(i));
end
clear('i');
matriz3(1,1)=0;
matriz3(1,2)=(-1*w(3));
matriz3(1,3)=(w(2));
matriz3(2,1)=(w(3));
matriz3(2,2)=0;
matriz3(2,3)=(-1*w(1));
matriz3(3,1)=(-1*w(2));
matriz3(3,2)=(w(1));
matriz3(3,3)=0;
%construimos la matriz de rotación
rotacion1=zeros(3,3);
matrizaux1=(cos(theta)*matriz1);
matrizaux2=((1-cos(theta))*matriz2);
matrizaux3=(sin(theta)*matriz3);
rotacion1=matrizaux1+matrizaux2+matrizaux3;
%separamos los vectores directores de cada particula y les hacemos la rotación
coorxR1=zeros(1,20);
cooryR1=zeros(1,20);
coorzR1=zeros(1,20);
vaux=zeros(3,1);
for i=1:20
vaux(1,1)=coorX(1,i);
vaux(2,1)=coorY(1,i);
vaux(3,1)=coorZ(1,i);
rotpunto=rotacion1*vaux;
coorxR1(1,i)=rotpunto(1);
cooryR1(1,i)=rotpunto(2);
coorzR1(1,i)=rotpunto(3);
clear('rotpunto');
end
clear('i');
plot3(coorxR1,cooryR1, coorzR1, '--. g')
axis([-2,2,-2,2,0,2])
hold on
plot3(coorX, coorY, coorZ, '--p b')
hold off


La matriz de componentes del tensor de la primera rotación es:

   0.9808   -0.1951         0
   0.1951    0.9808         0
        0         0    1.0000

3.2 Visualizacion de un sistema de puntos rotados con eje ω=e3 y angulo θ= π/16

Para poder entonces visualizar el sistema de puntos rotado tenemos que multiplicar cada coordenada de nuestras particulas por la matriz de rotacion. De esta manera conseguimos sistema de puntos rotado.

Visualizacion de un sistema de puntos rotados con eje ω=e3 y angulo θ= π/16

3.3 Matriz Rotacion con eje ω=e1 y angulo θ= π/16

Código:

%segunda matriz de rotacion, eje e1%
w=[1, 0 , 0];
theta=pi/16;
matriz1=eye(3);
matriz2=zeros(3,3);
matriz3=zeros(3,3);
for i=1:3
matriz2(1,i)=(w(1)*w(i));
matriz2(2,i)=(w(2)*w(i));
matriz2(2,i)=(w(3)*w(i));
end
clear('i');
matriz3(1,1)=0;
matriz3(1,2)=(-1*w(3));
matriz3(1,3)=(w(2));
matriz3(2,1)=(w(3));
matriz3(2,2)=0;
matriz3(2,3)=(-1*w(1));
matriz3(3,1)=(-1*w(2));
matriz3(3,2)=(w(1));
matriz3(3,3)=0;
%construimos la matriz de rotación%
rotacion2=zeros(3,3);
matrizaux1=(cos(theta)*matriz1);
matrizaux2=((1-cos(theta))*matriz2);
matrizaux3=(sin(theta)*matriz3);
rotacion2=matrizaux1+matrizaux2+matrizaux3;
clear ('vaux');
%separamos los vectores directores de cada particula y les hacemos la rotación%
coorxR2=zeros(1,20);
cooryR2=zeros(1,20);
coorzR2=zeros(1,20);
vaux=zeros(3,1);
for i=1:20
vaux(1,1)=coorX(1,i);
vaux(2,1)=coorY(1,i);
vaux(3,1)=coorZ(1,i);
rotpunto=rotacion2*vaux;
coorxR2(1,i)=rotpunto(1);
cooryR2(1,i)=rotpunto(2);
coorzR2(1,i)=rotpunto(3);
clear('rotpunto');
end
clear('i');
plot3(coorxR2,cooryR2, coorzR2, '--p r')
axis([-2,2,-2,2,0,2])
hold on
plot3(coorX, coorY, coorZ, '--. b')
hold off


La matriz de componentes del tensor de la segunda rotacion es:

   0.9475   -0.0810    0.3093
   0.1747    0.9414   -0.2885
  -0.2679    0.3274    0.9061

3.4 Visualizacion de un sistema de puntos rotados con eje ω=e1 y angulo θ= π/16

Visualizacion de un sistema de puntos rotados con eje ω=e1 y angulo θ= π/16

3.5 Matriz Rotacion con eje ω=e2 y angulo θ= π/16

Calculamos la matriz de rotación a partir de un eje ω=e2 y un ángulo θ= π/16. El código que nos permite obtener dicha matriz de rotación es esta:

%calculamos la matriz de la tercera rotación a partir de un vector w y un eje angulo theta%
w=[0, 1, 0];
theta=pi/16;
matriz1=eye(3);
matriz2=zeros(3,3);
matriz3=zeros(3,3);
for i=1:3
matriz2(1,i)=(w(1)*w(i));
matriz2(2,i)=(w(2)*w(i));
matriz2(2,i)=(w(3)*w(i));
end
clear('i');
matriz3(1,1)=0;
matriz3(1,2)=(-1*w(3));
matriz3(1,3)=(w(2));
matriz3(2,1)=(w(3));
matriz3(2,2)=0;
matriz3(2,3)=(-1*w(1));
matriz3(3,1)=(-1*w(2));
matriz3(3,2)=(w(1));
matriz3(3,3)=0;
%construimos la matriz de rotación%
rotacion3=zeros(3,3);
matrizaux1=(cos(theta)*matriz1);
matrizaux2=((1-cos(theta))*matriz2);
matrizaux3=(sin(theta)*matriz3);
rotacion3=matrizaux1+matrizaux2+matrizaux3;
clear('vaux');
%separamos los vectores directores de cada particula y les hacemos la rotación%
coorxR3=zeros(1,20);
cooryR3=zeros(1,20);
coorzR3=zeros(1,20);
vaux=zeros(3,1);
for i=1:20
vaux(1,1)=coorX(1,i);
vaux(2,1)=coorY(1,i);
vaux(3,1)=coorZ(1,i);
rotpunto=rotacion3*vaux;
coorxR3(1,i)=rotpunto(1);
cooryR3(1,i)=rotpunto(2);
coorzR3(1,i)=rotpunto(3);
clear('rotpunto');
end
clear('i');
plot3(coorxR3,cooryR3, coorzR3, '--p k')
axis([-2,2,-2,2,0,2])
hold on
plot3(coorX, coorY, coorZ, '--. b')
hold off


La matriz de componentes del tensor de la tercera rotación es:

   0.9808   -0.1951         0
   0.1951    0.9808         0
        0         0    1.0000

3.6 Visualizacion de un sistema de puntos rotados con eje ω=e2 y angulo θ= π/16

Para poder entonces visualizar el sistema de puntos rotado tenemos que multiplicar cada coordenada de nuestras particulas por la matriz de rotacion. De esta manera conseguimos sistema de puntos rotado.

Visualizacion de un sistema de puntos rotados con eje ω=e3 y angulo θ= π/16

3.7 Matriz Rotacion con eje ω=e1 y angulo θ= π/16

Código:

%segunda matriz de rotacion, eje e1%
w=[1, 0 , 0];
theta=pi/16;
matriz1=eye(3);
matriz2=zeros(3,3);
matriz3=zeros(3,3);
for i=1:3
matriz2(1,i)=(w(1)*w(i));
matriz2(2,i)=(w(2)*w(i));
matriz2(2,i)=(w(3)*w(i));
end
clear('i');
matriz3(1,1)=0;
matriz3(1,2)=(-1*w(3));
matriz3(1,3)=(w(2));
matriz3(2,1)=(w(3));
matriz3(2,2)=0;
matriz3(2,3)=(-1*w(1));
matriz3(3,1)=(-1*w(2));
matriz3(3,2)=(w(1));
matriz3(3,3)=0;
%construimos la matriz de rotación%
rotacion2=zeros(3,3);
matrizaux1=(cos(theta)*matriz1);
matrizaux2=((1-cos(theta))*matriz2);
matrizaux3=(sin(theta)*matriz3);
rotacion2=matrizaux1+matrizaux2+matrizaux3;
clear ('vaux');
%separamos los vectores directores de cada particula y les hacemos la rotación%
coorxR2=zeros(1,20);
cooryR2=zeros(1,20);
coorzR2=zeros(1,20);
vaux=zeros(3,1);
for i=1:20
vaux(1,1)=coorX(1,i);
vaux(2,1)=coorY(1,i);
vaux(3,1)=coorZ(1,i);
rotpunto=rotacion2*vaux;
coorxR2(1,i)=rotpunto(1);
cooryR2(1,i)=rotpunto(2);
coorzR2(1,i)=rotpunto(3);
clear('rotpunto');
end
clear('i');
plot3(coorxR2,cooryR2, coorzR2, '--p r')
axis([-2,2,-2,2,0,2])
hold on
plot3(coorX, coorY, coorZ, '--. b')
hold off


La matriz de rotacion R obtenida es:

   0.9475   -0.0810    0.3093
   0.1747    0.9414   -0.2885
  -0.2679    0.3274    0.9061

3.8 Visualizacion de un sistema de puntos rotados con eje ω=e1 y angulo θ= π/16

Visualizacion de un sistema de puntos rotados con eje ω=e1 y angulo θ= π/16

3.9 Visualizacion de un sistema de puntos rotados con eje ω = e1,e2,e1+e2+e3 y angulo θ= π/16

Para visualizar el sistema de puntos rotados usamos el analogo a lo que hicimos anteriormente solo que ahora tenemos una matriz de rotacion distinta. El codigo que hemos usado es el siguiente:

Visualizacion de un sistema de puntos rotados con eje ω = e1,e2,e1+e2+e3 y angulo θ= π/16