Está en la página 1de 4

# -*- coding: utf-8 -*"""

Editor de Spyder

Este es un archivo temporal


"""
###########################
### TAREA 1 ###############
### Mecnica de slidos ###
###########################

### B) Dibujando el cilindro con R=3 y L=20

from mpl_toolkits.mplot3d import axes3d


import matplotlib.pyplot as plt
import numpy as np

fig=plt.figure()
ax=axes3d.Axes3D(fig,azim=30,elev=30)

x=np.linspace(-9,9,100)
z=np.linspace(0,20,100)

X, Z=np.meshgrid(x,z)
Y=np.sqrt(9-X**2)

ax.plot_wireframe(X,Y,Z)
ax.plot_wireframe(X,-Y,Z)

ax.set_xlabel('x-axis')
ax.set_ylabel('y-axis')
ax.set_zlabel('z-axis')

plt.plot([3,3],[0,0],[0,20], 'k-', lw=4) #Linea AB


plt.show()

### C) Conociendo el ngulo beta, dibujar linea AB en lka posicion lineal


### deformada, y evaluar los puntos de A) con python

import matplotlib as mpl


from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt

mpl.rcParams['legend.fontsize'] = 10

fig = plt.figure()
ax = fig.gca(projection='3d')
beta = 3*np.pi/40

z = np.linspace(0, 20, 100)


x = 3*np.cos(beta*z)

y = 3*np.sin(beta*z)

ax.plot(x, y, z, label='parametric curve')


ax.legend()
plt.show() #muestra la linea deformada AB

# Evaluando numricamente los tensores calculados en A) en el punto medio


entre AB
# Escribiendo los tensores calculados en A), en el punto medio AB que es
(3,0,10)

x,y,z = (3,0,10)

A = np.matrix([[np.cos(beta*10)-1,-np.sin(beta*10),beta*(3*np.sin(beta*10)+0*np.cos(beta*10))],
[np.sin(beta*10),np.cos(beta*10)-1,beta*(3*np.sin(beta*10)0*np.cos(beta*10))],[0,0,0]])
print(A)

e = 0.5*(A+A.T) # deformaciones pequeas


print(e)

E = 0.5*(A + A.T + A*A.T) # deformaciones Lagrangeanas


print(E)

### D) Para calcular las magnitudes y direcciones tanto en deformaciones


lagrangeanas como en infitnitesimales se calculan los valores y vectores
propios de cada matriz

# Valores y vetores propios para deformaciones pequeas


val1 = val = np.linalg.eig(e)
print(val1)

# Valores y vectores propios oara deformaciones Lagrangeanas


val2 = np.linalg.eig(E)
print(val2)

# los valores propios aparecen en el array y corresponden a las


deformaciones principles en cada
# deformacion, mientras que los vectores propios corresponden a las
direcciones de cada una de estas
# deformaciones.

También podría gustarte