Download as pdf or txt
Download as pdf or txt
You are on page 1of 1

codigo :

#PROGRAMA PORTICO MATRIZ DE RIGIDEZ.


from numpy import *
from numpy.linalg import *
from math import *
Ar = float(input('Colocar el valor Area :'))
El = float(input ('Colocar el valor del coeficiete de Elasticidad :'))
In = float(input ('colocar el valor de inercia :'))
n = int(raw_input('Colocar numero de nodos:'))
A=[]

for u in range(0,n):
cordenada=[input('Poner coordenadas :')]
A=A+cordenada
N = []
for p in range (1,n,2):
for t in range (0,n,2):
if p>t:
B = float(norm(array(A[p])-array(A[t])))
C = array(array(A[p])-array(A[t]))
D = [array(C/B)]
N=N+D
TR = []
for q in range(len(N)):
T = [array([(float(N[q][0]),float(N[q][1]),0,0,0,0),(float(-
N[q][1]),float(N[q][0]),0,0,0,0),(0,0,1.0,0,0,0),(0,0,0,float(N[q][0]),float(N[q][1]),0),(0,0,0,float(-
N[q][1]),float(N[q][0]),0),(0,0,0,0,0,1.0)])]
TR = TR +T
Ki = array([(Ar*El/B,0,0,-Ar*El/B,0,0),(0,12*El*In/(B**3),6*El*In/(B**2),0,-
12*El*In/(B**3),6*El*In/(B**2)),(0,6*El*In/(B**2),4*El*In/(B),0,-6*El*In/(B**2),2*El*In/(B)),(-
Ar*El/B,0,0,Ar*El/B,0,0),(0,-12*El*In/(B**3),-6*El*In/(B**2),0,12*El*In/(B**3),-
6*El*In/(B**2)),(0,6*El*In/(B**2),2*El*In/(B),0,-6*El*In/(B**2),4*El*In/(B))])
KA=[]
for g in range(len(TR)):
Kt = [dot(dot(transpose(TR[g]),Ki),TR[g])]
KA = KA + Kt
for a in range(len(KA)):
print 'La matrices de rigidez son :\n',(a+1,KA[a])

You might also like