Una array tridiagonal es una array que tiene elementos distintos de cero solo en la diagonal principal, diagonal debajo y arriba. Todos los demás elementos son cero. Por esta razón, las arrays tridiagonales de dimensión menor o igual a 3 parecen carecer de sentido.
Ejemplo 1:
[a11, a22, 0, 0, 0, 0]
[a21, a22, a23, 0, 0, 0]
[0 , a32, a33, a34, 0 , 0 ]
[0 , 0 , a43, a44, a55, 0 ]
[0 , 0 , 0 , a54, a55, a56]
[0 , 0 , 0 , 0 , a65, a66]
Ejemplo 2:
[1, 1, 0, 0, 0, 0]
[1, 1, 1, 0, 0, 0]
[0, 1, 1, 1, 0, 0]
[0, 0, 1, 1, 1, 0]
[0, 0, 0, 1, 1, 1]
[0, 0, 0, 0, 1, 1]
Acercarse
- Tome el tamaño de la array como entrada
- Comprobar si es mayor que 3
- si no, sal
- en caso afirmativo, continúe
- Tomar elementos de la array como entrada.
- Ahora ponga cero en todas partes excepto en la diagonal principal y en las diagonales por debajo y por encima de la diagonal principal.
Programa:
Python3
# if you enter number n it will automatically # be considered as a square matrix of size n by n size_of_a_matrix = int(input("Enter size the matrix that you want : ")) if size_of_a_matrix <= 3: # since size should be greater than 3 print("Please enter the size that is greater than 3") exit() diagonal = [] numbers1 = [[0 for j in range(0, size_of_a_matrix)] for i in range(0, size_of_a_matrix)] # created a loop to enter numbers for a in range(size_of_a_matrix): numbers1 = int(input(f"Enter the numbers for the main diagonal for position[{a}][{a}] : ")) # appending the values to the list diagonal.append(numbers1) diagonalAbove = [] print("*********") # created a loop to enter numbers for k in range(size_of_a_matrix-1): numbers2 = int(input(f"Enter the numbers for diagonal above the main diagonal for position[{k}][{k+1}]: ")) # appending the values to the list diagonalAbove.append(numbers2) diagonalBelow = [] print("*********") # created a loop to enter numbers for z in range(size_of_a_matrix-1): numbers3 = int(input(f"Enter the numbers for diagonal below the main diagonal for position[{z+1}][{z}]: ")) # appending the values to the list diagonalBelow.append(numbers3) print("*********") def tridiagonal(size_of_a_matrix, diagonal, diagonalAbove, diagonalBelow): matrix = [[0 for j in range(size_of_a_matrix)] for i in range(size_of_a_matrix)] for k in range(size_of_a_matrix-1): matrix[k][k] = diagonal[k] matrix[k][k+1] = diagonalAbove[k] matrix[k+1][k] = diagonalBelow[k] matrix[size_of_a_matrix-1][size_of_a_matrix - 1] = diagonal[size_of_a_matrix-1] # so that the values will print row by row for row in matrix: print(row) return "this is the tridiagonal matrix" # printing final values print(tridiagonal(size_of_a_matrix, diagonal, diagonalAbove, diagonalBelow))
Producción:
Publicación traducida automáticamente
Artículo escrito por harshsinha03 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA