Diferencia entre revisiones de «Movimiento de partículas. Grupo 22C»
(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]] | ||
| − | |||
| − | |||
| − | |||
| − | |||
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.
Contenido
- 1 Visualización de un sistema de partículas
- 2 Centro de masas de un sistema de particulas
- 3 Rotacion de un sistema de particulas
- 3.1 Matriz Rotacion con eje ω=e3 y angulo θ= π/16
- 3.2 Visualizacion de un sistema de puntos rotados con eje ω=e3 y angulo θ= π/16
- 3.3 Matriz Rotacion con eje ω=e1 y angulo θ= π/16
- 3.4 Visualizacion de un sistema de puntos rotados con eje ω=e1 y angulo θ= π/16
- 3.5 Matriz Rotacion con eje ω=e2 y angulo θ= π/16
- 3.6 Visualizacion de un sistema de puntos rotados con eje ω=e2 y angulo θ= π/16
- 3.7 Matriz Rotacion con eje ω=e1 y angulo θ= π/16
- 3.8 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
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]
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 on2 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:
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.
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
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.
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
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: