frecuencias separadas

Generador de Matrices de Masa y Rigidez

Generador de Matrices de Masa y Rigidez

table { border-collapse: collapse; margin: 20px; } th, td { border: 1px solid black; padding: 10px; text-align: center; } input { width: 100px; margin: 5px; } function crearFormulario() { const numPisos = parseInt(document.getElementById("numPisos").value); const formularioDiv = document.getElementById("formulario"); formularioDiv.innerHTML = ''; // Limpiar formulario anterior // Crear formulario para ingresar masas y rigideces for (let i = 0; i < numPisos; i++) { formularioDiv.innerHTML += `

Piso ${i + 1}

${i > 0 ? ` ` : ` `} `; } formularioDiv.innerHTML += ''; } function generarMatrices() { const numPisos = parseInt(document.getElementById("numPisos").value); const matricesDiv = document.getElementById("matrices"); const resultadosDiv = document.getElementById("resultados"); // Crear matrices vacías const matrizMasa = Array.from({ length: numPisos }, () => Array(numPisos).fill(0)); const matrizRigidez = Array.from({ length: numPisos }, () => Array(numPisos).fill(0)); const lambda = []; for (let i = 0; i < numPisos; i++) { const masa = parseFloat(document.getElementById(`masa${i}`).value); matrizMasa[i][i] = masa; if (i > 0) { const rigidez = parseFloat(document.getElementById(`rigidez${i}`).value); matrizRigidez[i][i] += rigidez; matrizRigidez[i - 1][i - 1] += rigidez; matrizRigidez[i][i - 1] = -rigidez; matrizRigidez[i - 1][i] = -rigidez; } else { const rigidez0 = parseFloat(document.getElementById(`rigidez0`).value); matrizRigidez[0][0] += rigidez0; matrizRigidez[0][1] += rigidez0; matrizRigidez[1][0] = -rigidez0; matrizRigidez[1][1] += rigidez0; // Aquí se debe corregir } } // Corregir el elemento matrizRigidez[1][1] const rigidez1 = parseFloat(document.getElementById(`rigidez1`)?.value) || 0; const rigidez2 = parseFloat(document.getElementById(`rigidez2`)?.value) || 0; matrizRigidez[1][1] = rigidez1 + rigidez2; // Calcular lambda[i] for (let i = 0; i < numPisos; i++) { lambda[i] = matrizRigidez[i][i] / matrizMasa[i][i]; } // Mostrar matrices en HTML matricesDiv.innerHTML = `

Matriz de Masa

${matrizMasa.map(fila => `${fila.map(valor => ``).join('')}`).join('')}
${valor}

Matriz de Rigidez

${matrizRigidez.map(fila => `${fila.map(valor => ``).join('')}`).join('')}
${valor}
`; // Mostrar resultados de lambda resultadosDiv.innerHTML = `

Resultados de λ

    ${lambda.map((valor, index) => `
  • λ[${index}] = ${valor}
  • `).join('')}
`; }

Comentarios

Entradas populares de este blog

1coeficientes sismicos y cortes por pisos

Costanera madera

inercia viga doble C y coeficientes K perfiles compuestos