How to Construct a Symmetric Matrix from a Given Upper Triangle in Python?

Estimated read time 2 min read

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 = [[0] * 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[i][j] and 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.

You May Also Like

More From Author

+ There are no comments

Add yours

Leave a Reply