CONVERSACION CON EL CHAT GPT
Se realizo la entrada con las especificaciones que tendrá el pórtico que resolveremos nos genero el siguiente codigo
import numpy as np
from scipy.linalg import solve
# Paso 1: Definir Propiedades del Material y Sección Transversal
E = 2.1e6 # Módulo de elasticidad en kN/m^2
A = 0.2 * 0.4 # Área de la sección transversal en m^2
# Paso 2: Definir los nodos y elementos de la estructura
nodos = [(0, 0), (0, 4), (6, 4), (6, 0)]
elementos = [(0, 1), (1, 2), (2, 3)]
# Paso 3: Crear la función para calcular la matriz de rigidez local
def calcular_matriz_rigidez(E, A, L, theta):
c = np.cos(theta)
s = np.sin(theta)
k_local = np.array([
[c**2, c*s, -c**2, -c*s],
[c*s, s**2, -c*s, -s**2],
[-c**2, -c*s, c**2, c*s],
[-c*s, -s**2, c*s, s**2]
])
k_local *= E * A / L
return k_local
# Paso 4: Crear la función para ensamblar el sistema de ecuaciones
def ensamblar_sistema(nodos, elementos):
# ... (código previo)
# Paso 5: Crear la función para aplicar las cargas distribuidas
def aplicar_cargas_distribuidas(F_global, nodos, elementos, q):
# ... (código previo)
# Paso 6: Crear la función para resolver el sistema de ecuaciones
def resolver_sistema(K_global, F_global):
# ... (código previo)
# Paso 7: Definir la carga distribuida y ensamblar el sistema de ecuaciones
q = 4 # kN/m
# Ensamblar el sistema de ecuaciones
K, F = ensamblar_sistema(nodos, elementos)
# Paso 8: Aplicar cargas distribuidas y resolver el sistema
# Aplicar cargas distribuidas
F = aplicar_cargas_distribuidas(F, nodos, elementos, q)
# Resolver el sistema de ecuaciones
desplazamientos, reacciones = resolver_sistema(K, F)
# Paso 9: Mostrar resultados
# Mostrar resultados
print("Desplazamientos:")
print(desplazamientos)
print("\nReacciones:")
print(reacciones)
Introduciendo en el Python nos genero el siguiente error
IndentationError: expected an indented block after function definition on line 26
ChatGPT
# Paso 4: Crear la función para ensamblar el sistema de ecuaciones
def ensamblar_sistema(nodos, elementos):
num_nodos = len(nodos)
K_global = np.zeros((2 * num_nodos, 2 * num_nodos))
F_global = np.zeros(2 * num_nodos)
for elemento in elementos:
nodo_i, nodo_j = elemento
x_i, y_i = nodos[nodo_i]
x_j, y_j = nodos[nodo_j]
L = np.sqrt((x_j - x_i)**2 + (y_j - y_i)**2)
theta = np.arctan2(y_j - y_i, x_j - x_i)
k_local = calcular_matriz_rigidez(E=2.1e6, A=0.2 * 0.4, L=L, theta=theta)
dof_i = [2 * nodo_i, 2 * nodo_i + 1]
dof_j = [2 * nodo_j, 2 * nodo_j + 1]
for i in range(4):
for j in range(4):
K_global[dof_i[i], dof_i[j]] += k_local[i, j]
K_global[dof_i[i], dof_j[j]] += k_local[i, j]
K_global[dof_j[i], dof_i[j]] += k_local[i, j]
K_global[dof_j[i], dof_j[j]] += k_local[i, j]
de la misma forma me genero otro error
IndentationError: expected an indented block after function definition on line 87
el chat GPT me genero la siguiente solucion
Paso 6: Crear la función para resolver el sistema de ecuaciones
def resolver_sistema(K_global, F_global):
# Aplicar condiciones de contorno (apoyo fijo en el nodo A)
K_reducida = np.delete(np.delete(K_global, 0, axis=0), 0, axis=1)
F_reducida = np.delete(F_global, 0)
# Resolver el sistema de ecuaciones
desplazamientos_reducidos = solve(K_reducida, F_reducida)
# Reconstruir el vector de desplazamientos con ceros en el nodo A
desplazamientos = np.insert(desplazamientos_reducidos, 0, 0)
# Calcular reacciones
reacciones = np.dot(K_global, desplazamientos) - F_global
return desplazamientos, reacciones

comentarios:
ResponderBorrar