Computer >> Máy Tính >  >> Lập trình >> Python

Tính toán các giá trị riêng của ma trận Hermitian phức tạp hoặc ma trận đối xứng thực bằng Python

Để tính toán các giá trị riêng của ma trận đối xứng thực hoặc Hermitian phức, hãy sử dụng phương pháp numpy.eigvalsh (). Phương thức này trả về các giá trị riêng theo thứ tự tăng dần, mỗi giá trị được lặp lại theo tính đa dạng của nó.

Tham số đầu tiên, a là một ma trận có giá trị thực hoặc phức có các giá trị riêng của nó sẽ được tính toán. Tham số thứ 2, UPLO chỉ định việc tính toán được thực hiện với phần hình tam giác dưới của a (‘L’, mặc định) hay phần hình tam giác phía trên (‘U’). Bất kể giá trị này, chỉ các phần thực của đường chéo sẽ được xem xét trong tính toán để bảo toàn khái niệm về ma trận Hermitian. Do đó, phần ảo của đường chéo sẽ luôn được coi là số không.

Các bước

Đầu tiên, hãy nhập các thư viện được yêu cầu -

import numpy as np
from numpy import linalg as LA

Tạo một mảng numpy 2D bằng phương thức numpy.array () -

arr = np.array([[5+2j, 9-2j], [0+2j, 2-1j]])

Hiển thị mảng -

print("Our Array...\n",arr)

Kiểm tra các thứ nguyên -

print("\nDimensions of our Array...\n",arr.ndim)

Lấy Datatype -

print("\nDatatype of our Array object...\n",arr.dtype)

Lấy hình dạng -

print("\nShape of our Array object...\n",arr.shape)

Để tính toán các giá trị riêng của ma trận Hermitian phức tạp hoặc ma trận đối xứng thực, hãy sử dụng phương thức numpy.eigvalsh () -

print("\nResult...\n",LA.eigvalsh(arr))

Ví dụ

from numpy import linalg as LA
import numpy as np

# Creating a 2D numpy array using the numpy.array() method
arr = np.array([[5+2j, 9-2j], [0+2j, 2-1j]])

# Display the array
print("Our Array...\n",arr)

# Check the Dimensions
print("\nDimensions of our Array...\n",arr.ndim)

# Get the Datatype
print("\nDatatype of our Array object...\n",arr.dtype)

# Get the Shape
print("\nShape of our Array object...\n",arr.shape)

# To compute the eigenvalues of a complex Hermitian or real symmetric matrix, use the numpy.eigvalsh() method
print("\nResult...\n",LA.eigvalsh(arr))

Đầu ra

Our Array...
[[5.+2.j 9.-2.j]
[0.+2.j 2.-1.j]]

Dimensions of our Array...
2

Datatype of our Array object...
complex128

Shape of our Array object...
(2, 2)

Result...
[1. 6.]