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 [ ]: