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

Tính toán nghịch đảo giả Moore-Penrose của một chồng ma trận bằng Python

Để tính toán nghịch đảo giả (Moore-Penrose) của một chồng ma trận, hãy sử dụng phương thức numpy.linalg.pinv () trong Python. Tính toán nghịch đảo tổng quát của ma trận bằng cách sử dụng phân rã giá trị đơn lẻ (SVD) của nó và bao gồm tất cả các giá trị đơn lẻ lớn.

Tham số đầu tiên, a là Ma trận hoặc chồng ma trận được đảo ngược giả. Tham số thứ 2, rcodn bị cắt đối với các giá trị kỳ dị nhỏ. Các giá trị số ít nhỏ hơn hoặc bằng rcond * large_singular_value được đặt thành 0. Truyền phát đối với chồng ma trận. Tham số thứ 3, hermitian, nếu True, a được giả định là Hermitian, cho phép một phương pháp hiệu quả hơn để tìm các giá trị kỳ dị. Mặc định là Sai.

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

Tạo một mảng bằng array ().

arr = np.array([ [[1, 2], [3, 4]], [[1, 2], [2, 1]], [[1, 3], [3, 1]] ])

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 nghịch đảo giả (Moore-Penrose) của một chồng ma trận, hãy sử dụng phương thức numpy.linalg.pinv () trong Python.

print("\nResult...\n",np.linalg.pinv(arr))

Ví dụ

import numpy as np

# Create an array using array()
arr = np.array([ [[1, 2], [3, 4]], [[1, 2], [2, 1]], [[1, 3], [3, 1]] ])

# 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 (Moore-Penrose) pseudo-inverse of a stack of matrices, use the numpy.linalg.pinv() method in Python.
print("\nResult...\n",np.linalg.pinv(arr))

Đầu ra

Our Array...
[[[1 2]
[3 4]]

[[1 2]
[2 1]]

[[1 3]
[3 1]]]

Dimensions of our Array...
3

Datatype of our Array object...
int64

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

Result...
[[[-2. 1. ]
[ 1.5 -0.5 ]]

[[-0.33333333 0.66666667]
[ 0.66666667 -0.33333333]]

[[-0.125 0.375 ]
[ 0.375 -0.125 ]]]