To construct a symmetric matrix from a given upper triangle in Python, you can use nested loops to populate the lower triangle based on the values in the upper triangle. Here’s an example:
def construct_symmetric_matrix(upper_triangle): n = len(upper_triangle) symmetric_matrix = [ * n for _ in range(n)] # Initialize an n x n matrix with zeros for i in range(n): for j in range(i, n): symmetric_matrix[i][j] = upper_triangle[j][i] # Assign the value from the upper triangle symmetric_matrix[j][i] = upper_triangle[j][i] # Assign the same value to the corresponding position in the lower triangle return symmetric_matrix # Example usage upper_triangle = [ [1, 2, 3], [0, 4, 5], [0, 0, 6] ] symmetric_matrix = construct_symmetric_matrix(upper_triangle) for row in symmetric_matrix: print(row)
In this example, the function
construct_symmetric_matrix() takes the upper triangle as input and returns the corresponding symmetric matrix.
The function initializes an
n x n matrix (
symmetric_matrix) with zeros, where
n is the number of rows in the upper triangle. It then uses nested loops to iterate over the upper triangle’s elements.
For each element at index
(i, j) in the upper triangle, it assigns that value to both
symmetric_matrix[j][i] to ensure symmetry.
Finally, the code demonstrates an example usage by constructing a symmetric matrix from the given upper triangle and printing each row of the resulting matrix.
The output will be:
[1, 2, 3] [2, 4, 5] [3, 5, 6]
This represents the symmetric matrix where the values in the upper triangle are reflected in the lower triangle.