0% encontró este documento útil (0 votos)
3 vistas1 página

Código Python

El documento describe un código diseñado para trabajar con una matriz cuadrada de 4x4 y un vector de 4x1 en el contexto de álgebra y matemática discreta. Incluye instrucciones para ingresar la matriz y el vector, así como un procedimiento para realizar operaciones de pivoteo en la matriz. Finalmente, se muestra cómo transformar la matriz en una forma triangular superior para resolver un sistema de ecuaciones.

Cargado por

avilamyk
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
3 vistas1 página

Código Python

El documento describe un código diseñado para trabajar con una matriz cuadrada de 4x4 y un vector de 4x1 en el contexto de álgebra y matemática discreta. Incluye instrucciones para ingresar la matriz y el vector, así como un procedimiento para realizar operaciones de pivoteo en la matriz. Finalmente, se muestra cómo transformar la matriz en una forma triangular superior para resolver un sistema de ecuaciones.

Cargado por

avilamyk
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

In [2]: """

Este códiigo ha sido escrito ESPECÍFICAMENTE para la matriz registrada en la página 10, tema 4, de la asignatura
algebra y matemática discreta, según ha sido sugerido por el docente. La matriz A es de 4 x 4 y el vector B es de 4 x 1

"""
print("Este códiigo ha sido escrito ESPECÍFICAMENTE para la matriz registrada en la página 10, tema 4, de la asignatura ")
print("algebra y Mat. discreta, según ha sido sugerido por el docente. La matriz A es de 4 x 4 y el vector B es de 4 x 1")
print("##############################################################################################################")
import numpy as np
matriz = []

filas = int(input("Indique el numero de filas de la matriz: "))


columnas = int(input("Indique el numero de columnas de la matriz"))

while(filas != columnas):
print('La matriz indicada NO es cuadrada, por favor ingrese los datos nuevamente')
filas = int(input("Indique el numero de filas: "))
columnas = int(input("Indique el numero de columnas"))

vector = []
filas1 = int(input("Indique el numero de filas del vector: "))
columnas1 = int(input("Indique el numero de columnas del vector"))

while(filas1 != 4 and columnas1 != 1):


print('El vector indicado NO cumple con lo establecido, por favor ingrese los datos nuevamente')
filas1 = int(input("Indique el numero de filas: "))
columnas1 = int(input("Indique el numero de columnas"))

for i in range (filas):


[Link]([0]*columnas)

for i in range (filas):


for j in range(columnas):
matriz[i][j] = int(input('Indique el elemento matriz %d, %d : ' %(i,j)))

for i in range (filas1):


[Link]([0]*columnas1)

for i in range (filas1):


for j in range(columnas1):
vector[i][j] = int(input('Indique el elemento vector %d, %d : ' %(i,j)))

print("La matriz A ingresada es \n ", "A = ", matriz)


print ("El vector B ingresado es \n ", "B = ",vector)

print("##############################################################################################################")

# a continuación se muestra la matriz ingresada y el vector ingresado #


# Se debe tener en cuenta que coincidan con lo registrado en la página 10 del tema 4 #

A = [Link](matriz)
print("A = ", A)

B = [Link](vector)
print("B = ", B)

print("##############################################################################################################")

"""
Se observa que el elemento 1,0 en la matriz A es mayor que todos los elementos de la primera columna de A
Para efectos del código la primera columna de A es la columna 0. Por tanto el dato 1,0 (que equivale a 12) se tomará como dato pivote;
Por tanto debemos intercambiar los datos de la fila cero de A con los datos de la fila 1 de A.
Este intercambio de filas tambien cobija al vector B
Escribiremos en efecto las siguientes lineas, que aseguran el pivoteo:

"""
if matriz[0][0] > matriz [1][0]:
if matriz[0][0] > matriz [2][0]:
if matriz[0][0] > matriz [3][0]:
print("La fila 0 será la fila pivote")
else:
if matriz[1][0] > matriz [0][0]:
if matriz[1][0] > matriz [2][0]:
if matriz[1][0] > matriz [3][0]:
print("La fila 1 será la fila pivote \n intercambiar las filas 0 y 1 en A y en B")

if matriz[2][0] > matriz [0][0]:


if matriz[2][0] > matriz [1][0]:
if matriz[2][0] > matriz [3][0]:
print("La fila 2 será la fila pivote \n intercambiar las filas 0 y 2 en A y en B")

else:
if matriz[3][0] > matriz [0][0]:
if matriz[3][0] > matriz [1][0]:
if matriz[3][0] > matriz [2][0]:
print("La fila 3 será la fila pivote \n intercambiar las filas 0 y 3 en A y en B")

print("##############################################################################################################")

matriz = []

filas = int(input("Indique el numero de filas de la matriz: "))


columnas = int(input("Indique el numero de columnas de la matriz"))

while(filas != columnas):
print('La matriz indicada NO es cuadrada, por favor ingrese los datos nuevamente')
filas = int(input("Indique el numero de filas: "))
columnas = int(input("Indique el numero de columnas"))

vector = []
filas1 = int(input("Indique el numero de filas del vector: "))
columnas1 = int(input("Indique el numero de columnas del vector"))

while(filas1 != 4 and columnas1 != 1):


print('El vector indicado NO cumple con lo establecido, por favor ingrese los datos nuevamente')
filas1 = int(input("Indique el numero de filas: "))
columnas1 = int(input("Indique el numero de columnas"))

for i in range (filas):


[Link]([0]*columnas)

for i in range (filas):


for j in range(columnas):
matriz[i][j] = int(input('Indique el elemento matriz %d, %d : ' %(i,j)))

for i in range (filas1):


[Link]([0]*columnas1)

for i in range (filas1):


for j in range(columnas1):
vector[i][j] = int(input('Indique el elemento vector %d, %d : ' %(i,j)))

print("La matriz A ingresada es \n ", "A = ", matriz)


print ("El vector B ingresado es \n ", "B = ",vector)

print("##############################################################################################################")

A = [Link](matriz)
print("A = ", A)

B = [Link](vector)
print("B = ", B)

print("##############################################################################################################")

# Este bloque garantiza que el usuario digite la nueva matriz realizando el pivote o el intercambio que arroje el bloque anterior #

cambio = int(input("Si la nueva matriz ingresada cumple con el intercambio direccionado digita 0, de lo contrario digita 1: "))

while (cambio == 1):


matriz = []
filas = int(input("Indique el numero de filas de la matriz: "))
columnas = int(input("Indique el numero de columnas de la matriz"))

while(filas != columnas):
print('La matriz indicada NO es cuadrada, por favor ingrese los datos nuevamente')
filas = int(input("Indique el numero de filas: "))
columnas = int(input("Indique el numero de columnas"))

vector = []
filas1 = int(input("Indique el numero de filas del vector: "))
columnas1 = int(input("Indique el numero de columnas del vector"))

while(filas1 != 4 and columnas1 != 1):


print('El vector indicado NO cumple con lo establecido, por favor ingrese los datos nuevamente')
filas1 = int(input("Indique el numero de filas: "))
columnas1 = int(input("Indique el numero de columnas"))

for i in range (filas):


[Link]([0]*columnas)

for i in range (filas):


for j in range(columnas):
matriz[i][j] = int(input('Indique el elemento matriz %d, %d : ' %(i,j)))

for i in range (filas1):


[Link]([0]*columnas1)

for i in range (filas1):


for j in range(columnas1):
vector[i][j] = int(input('Indique el elemento vector %d, %d : ' %(i,j)))

print("La matriz A ingresada es \n ", "A = ", matriz)


print ("El vector B ingresado es \n ", "B = ",vector)

print("##############################################################################################################")

A = [Link](matriz)
print("A = ", A)

B = [Link](vector)
print("B = ", B)

print("##############################################################################################################")
print(" Iniciamos con el paso 1 ")
print("##############################################################################################################")

print("Para hacer que los términos 1,0 2,0 y 3,0 en la matriz A se hagan cero procedemos: ")
print("La fila cero en A es la fila pivote y el término 0,0 es el coeficiente pivote (en este caso 12) ")
print("Por tanto toda la fila 1 se obiene por F1i = F1i - (0.5*F0i), el indice i corre para 0, 1, 2 y 3 ")
print("La canntidad 0,5 es el resultado de dividir los términos 1,0 y 0,0 en la matriz A")
print("Esto aplica para el componente 1,0 del vector B")

print("##############################################################################################################")

print("Ahora, toda la fila 2 se obiene por F2i = F2i - (0.25*F0i), el indice i corre para 0, 1, 2 y 3 ")
print("La canntidad 0,25 es el resultado de dividir los términos 2,0 y 0,0 en la matriz A")
print("Esto aplica para el componente 2,0 del vector B")

print("##############################################################################################################")

print("Para finlizar el paso 1, toda la fila 3 se obiene por F3i = F3i + (0.5*F0i), el indice i corre para 0, 1, 2 y 3 ")
print("La canntidad -0,5 es el resultado de dividir los términos 3,0 y 0,0 en la matriz A, teniendo en cuenta la ley de los signos para la multiplicación")
print("Esto aplica para el componente 3,0 del vector B")

print("##############################################################################################################")

for i in range (filas):


matriz[1][i]= matriz[1][i] - (0.5 * matriz[0][i])
matriz[2][i]= matriz[2][i] - (0.25 * matriz[0][i])
matriz[3][i]= matriz[3][i] + (0.5 * matriz[0][i])

vector[1][0] = vector[1][0] - (0.5 * vector[0][0])


vector[2][0] = vector[2][0] - (0.25 * vector[0][0])
vector[3][0] = vector[3][0] + (0.5 * vector[0][0])

print(matriz)

print(vector)

print("##############################################################################################################")
print("La matriz y el vector resultantes luego del paso 1 (hacer cero a los miembros 1,0 2,0 y 3,0 de la matriz A): ")
print("##############################################################################################################")

A = [Link](matriz)
print("A = ", A)

B = [Link](vector)
print("B = ", B)

print("##############################################################################################################")
print(" Seguimos con el paso 2 ")
print("##############################################################################################################")

print("Para hacer que el término 2,1 sea cero (porque el término 3,1 ya es nulo despues del paso 1) en la matriz A procedemos: ")
print("La fila 1 en A es la fila pivote y el término 1,1 es el coeficiente pivote (en este caso 2) ")
print("Por tanto toda la fila 2 se obiene por F2i = F2i + (5.5*F1i), el indice i corre para 0, 1, 2 y 3 ")
print("La canntidad -5,5 es el resultado de dividir los términos 2,1 y 1,1 en la matriz A, teniendo en cuenta ley de signos para la multiplicaión")
print("Esto aplica para el componente 2,0 del vector B")

print("##############################################################################################################")

print("Ahora, toda la fila 3 se obiene por F3i = F3i - (0*F1i), el indice i corre para 0, 1, 2 y 3 ")
print("La canntidad 0 es el resultado de dividir los términos 3,1 y 1,1 en la matriz A")
print("Esto aplica para el componente 3,0 del vector B")

print("##############################################################################################################")

for i in range (filas):


matriz[2][i]= matriz[2][i] + (5.5 * matriz[1][i])
matriz[3][i]= matriz[3][i] - (0 * matriz[1][i])

vector[2][0] = vector[2][0] + (5.5 * vector[1][0])


vector[3][0] = vector[3][0] - (0 * vector[1][0])

print(matriz)
print(vector)

print("##############################################################################################################")
print("La matriz y el vector resultantes luego del paso 2 (hacer cero al miembro y 3,2 de la matriz A): ")
print("##############################################################################################################")

A = [Link](matriz)
print("A = ", A)

B = [Link](vector)
print("B = ", B)

print("##############################################################################################################")
print(" Culminamos con el paso 3 ")
print("##############################################################################################################")

print("Para hacer que el término 3,2 sea cero en la matriz A, procedemos: ")
print("La fila 2 en A es la fila pivote y el término 2,2 es el coeficiente pivote (en este caso 2) ")
print("Por tanto toda la fila 3 se obiene por F3i = F3i - (2*F2i), el indice i corre para 0, 1, 2 y 3 ")
print("La canntidad 2 es el resultado de dividir los términos 3,2 y 2,2 en la matriz A")
print("Esto aplica para el componente 3,0 del vector B")

print("##############################################################################################################")

for i in range (filas):


matriz[3][i]= matriz[3][i] - (2 * matriz[2][i])

vector[3][0] = vector[3][0] - (2 * vector[2][0])

print(matriz)
print(vector)

print("##############################################################################################################")
print("La matriz y el vector resultantes luego del paso 3 (hacer cero a los miembros 2,1 y 3,1 de la matriz A): ")
print("##############################################################################################################")

A = [Link](matriz)
print("A = ", A)

B = [Link](vector)
print("B = ", B)

print("##############################################################################################################")
print("Lo que nos ha arrojado una matriz A triangular superior (y un vector B modificado en cada paso) que nos permite dar solucion al sistema ")
print("##############################################################################################################")

Este códiigo ha sido escrito ESPECÍFICAMENTE para la matriz registrada en la página 10, tema 4, de la asignatura
algebra y Mat. discreta, según ha sido sugerido por el docente. La matriz A es de 4 x 4 y el vector B es de 4 x 1
##############################################################################################################
Indique el numero de filas de la matriz: 4
Indique el numero de columnas de la matriz4
Indique el numero de filas del vector: 4
Indique el numero de columnas del vector1
Indique el elemento matriz 0, 0 : 6
Indique el elemento matriz 0, 1 : -2
Indique el elemento matriz 0, 2 : 2
Indique el elemento matriz 0, 3 : 4
Indique el elemento matriz 1, 0 : 12
Indique el elemento matriz 1, 1 : -8
Indique el elemento matriz 1, 2 : 6
Indique el elemento matriz 1, 3 : 10
Indique el elemento matriz 2, 0 : 3
Indique el elemento matriz 2, 1 : -13
Indique el elemento matriz 2, 2 : 9
Indique el elemento matriz 2, 3 : 3
Indique el elemento matriz 3, 0 : -6
Indique el elemento matriz 3, 1 : 4
Indique el elemento matriz 3, 2 : 1
Indique el elemento matriz 3, 3 : -18
Indique el elemento vector 0, 0 : 16
Indique el elemento vector 1, 0 : 26
Indique el elemento vector 2, 0 : -19
Indique el elemento vector 3, 0 : -34
La matriz A ingresada es
A = [[6, -2, 2, 4], [12, -8, 6, 10], [3, -13, 9, 3], [-6, 4, 1, -18]]
El vector B ingresado es
B = [[16], [26], [-19], [-34]]
##############################################################################################################
A = [[ 6 -2 2 4]
[ 12 -8 6 10]
[ 3 -13 9 3]
[ -6 4 1 -18]]
B = [[ 16]
[ 26]
[-19]
[-34]]
##############################################################################################################
La fila 1 será la fila pivote
intercambiar las filas 0 y 1 en A y en B
##############################################################################################################
Indique el numero de filas de la matriz: 4
Indique el numero de columnas de la matriz4
Indique el numero de filas del vector: 4
Indique el numero de columnas del vector1
Indique el elemento matriz 0, 0 : 12
Indique el elemento matriz 0, 1 : -8
Indique el elemento matriz 0, 2 : 6
Indique el elemento matriz 0, 3 : 10
Indique el elemento matriz 1, 0 : 6
Indique el elemento matriz 1, 1 : -2
Indique el elemento matriz 1, 2 : 2
Indique el elemento matriz 1, 3 : 4
Indique el elemento matriz 2, 0 : 3
Indique el elemento matriz 2, 1 : -13
Indique el elemento matriz 2, 2 : 9
Indique el elemento matriz 2, 3 : 3
Indique el elemento matriz 3, 0 : -6
Indique el elemento matriz 3, 1 : 4
Indique el elemento matriz 3, 2 : 1
Indique el elemento matriz 3, 3 : -18
Indique el elemento vector 0, 0 : 26
Indique el elemento vector 1, 0 : 16
Indique el elemento vector 2, 0 : -19
Indique el elemento vector 3, 0 : -34
La matriz A ingresada es
A = [[12, -8, 6, 10], [6, -2, 2, 4], [3, -13, 9, 3], [-6, 4, 1, -18]]
El vector B ingresado es
B = [[26], [16], [-19], [-34]]
##############################################################################################################
A = [[ 12 -8 6 10]
[ 6 -2 2 4]
[ 3 -13 9 3]
[ -6 4 1 -18]]
B = [[ 26]
[ 16]
[-19]
[-34]]
##############################################################################################################
Si la nueva matriz ingresada cumple con el intercambio direccionado digita 0, de lo contrario digita 1: 0
##############################################################################################################
A = [[ 12 -8 6 10]
[ 6 -2 2 4]
[ 3 -13 9 3]
[ -6 4 1 -18]]
B = [[ 26]
[ 16]
[-19]
[-34]]
##############################################################################################################
Iniciamos con el paso 1
##############################################################################################################
Para hacer que los términos 1,0 2,0 y 3,0 en la matriz A se hagan cero procedemos:
La fila cero en A es la fila pivote y el término 0,0 es el coeficiente pivote (en este caso 12)
Por tanto toda la fila 1 se obiene por F1i = F1i - (0.5*F0i), el indice i corre para 0, 1, 2 y 3
La canntidad 0,5 es el resultado de dividir los términos 1,0 y 0,0 en la matriz A
Esto aplica para el componente 1,0 del vector B
##############################################################################################################
Ahora, toda la fila 2 se obiene por F2i = F2i - (0.25*F0i), el indice i corre para 0, 1, 2 y 3
La canntidad 0,25 es el resultado de dividir los términos 2,0 y 0,0 en la matriz A
Esto aplica para el componente 2,0 del vector B
##############################################################################################################
Para finlizar el paso 1, toda la fila 3 se obiene por F3i = F3i + (0.5*F0i), el indice i corre para 0, 1, 2 y 3
La canntidad -0,5 es el resultado de dividir los términos 3,0 y 0,0 en la matriz A, teniendo en cuenta la ley de los signos para la multiplicación
Esto aplica para el componente 3,0 del vector B
##############################################################################################################
[[12, -8, 6, 10], [0.0, 2.0, -1.0, -1.0], [0.0, -11.0, 7.5, 0.5], [0.0, 0.0, 4.0, -13.0]]
[[26], [3.0], [-25.5], [-21.0]]
##############################################################################################################
La matriz y el vector resultantes luego del paso 1 (hacer cero a los miembros 1,0 2,0 y 3,0 de la matriz A):
##############################################################################################################
A = [[ 12. -8. 6. 10. ]
[ 0. 2. -1. -1. ]
[ 0. -11. 7.5 0.5]
[ 0. 0. 4. -13. ]]
B = [[ 26. ]
[ 3. ]
[-25.5]
[-21. ]]
##############################################################################################################
Seguimos con el paso 2
##############################################################################################################
Para hacer que el término 2,1 sea cero (porque el término 3,1 ya es nulo despues del paso 1) en la matriz A procedemos:
La fila 1 en A es la fila pivote y el término 1,1 es el coeficiente pivote (en este caso 2)
Por tanto toda la fila 2 se obiene por F2i = F2i + (5.5*F1i), el indice i corre para 0, 1, 2 y 3
La canntidad -5,5 es el resultado de dividir los términos 2,1 y 1,1 en la matriz A, teniendo en cuenta ley de signos para la multiplicaión
Esto aplica para el componente 2,0 del vector B
##############################################################################################################
Ahora, toda la fila 3 se obiene por F3i = F3i - (0*F1i), el indice i corre para 0, 1, 2 y 3
La canntidad 0 es el resultado de dividir los términos 3,1 y 1,1 en la matriz A
Esto aplica para el componente 3,0 del vector B
##############################################################################################################
[[12, -8, 6, 10], [0.0, 2.0, -1.0, -1.0], [0.0, 0.0, 2.0, -5.0], [0.0, 0.0, 4.0, -13.0]]
[[26], [3.0], [-9.0], [-21.0]]
##############################################################################################################
La matriz y el vector resultantes luego del paso 2 (hacer cero al miembro y 3,2 de la matriz A):
##############################################################################################################
A = [[ 12. -8. 6. 10.]
[ 0. 2. -1. -1.]
[ 0. 0. 2. -5.]
[ 0. 0. 4. -13.]]
B = [[ 26.]
[ 3.]
[ -9.]
[-21.]]
##############################################################################################################
Culminamos con el paso 3
##############################################################################################################
Para hacer que el término 3,2 sea cero en la matriz A, procedemos:
La fila 2 en A es la fila pivote y el término 2,2 es el coeficiente pivote (en este caso 2)
Por tanto toda la fila 3 se obiene por F3i = F3i - (2*F2i), el indice i corre para 0, 1, 2 y 3
La canntidad 2 es el resultado de dividir los términos 3,2 y 2,2 en la matriz A
Esto aplica para el componente 3,0 del vector B
##############################################################################################################
[[12, -8, 6, 10], [0.0, 2.0, -1.0, -1.0], [0.0, 0.0, 2.0, -5.0], [0.0, 0.0, 0.0, -3.0]]
[[26], [3.0], [-9.0], [-3.0]]
##############################################################################################################
La matriz y el vector resultantes luego del paso 3 (hacer cero a los miembros 2,1 y 3,1 de la matriz A):
##############################################################################################################
A = [[12. -8. 6. 10.]
[ 0. 2. -1. -1.]
[ 0. 0. 2. -5.]
[ 0. 0. 0. -3.]]
B = [[26.]
[ 3.]
[-9.]
[-3.]]
##############################################################################################################
Lo que nos ha arrojado una matriz A triangular superior (y un vector B modificado en cada paso) que nos permite dar solucion al sistema
##############################################################################################################

In [ ]:

También podría gustarte