Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tạo ma trận Vandermonde của đa thức Legendre với mảng điểm phức trong Python


Để tạo ma trận Vandermonde giả của đa thức Legendre, hãy sử dụng phương thức polynomial.legvander() trong NumPy Python. Phương thức trả về ma trận Vandermonde giả. Hình dạng của ma trận trả về là x.shape + (deg + 1,), nơi chỉ số cuối cùng là bậc của đa thức Legendre tương ứng. Kiểu dữ liệu sẽ giống với x đã chuyển đổi.

Tham số x trả về mảng các điểm. Kiểu dữ liệu được chuyển đổi thành float64 hoặc complex128 tùy thuộc vào việc các phần tử có phức hay không. Nếu x là scalar, nó được chuyển đổi thành mảng 1-D. Tham số deg là bậc của ma trận kết quả.

Các bước thực hiện

Trước tiên, nhập thư viện cần thiết:

import numpy as np
from numpy.polynomial import legendre as L

Tạo mảng:

x = np.array([-2.+2.j, -1.+2.j, 0.+2.j, 1.+2.j, 2.+2.j])

Hiển thị mảng:

print("Mảng của chúng ta...\n", x)

Kiểm tra số chiều:

print("\nSố chiều mảng...\n", x.ndim)

Lấy kiểu dữ liệu:

print("\nKiểu dữ liệu đối tượng mảng...\n", x.dtype)

Lấy hình dạng:

print("\nHình dạng đối tượng mảng...\n", x.shape)

Để tạo ma trận Vandermonde giả của đa thức Legendre, sử dụng phương thức polynomial.legvander():

print("\nKết quả...\n", L.legvander(x, 2))

Ví dụ hoàn chỉnh

import numpy as np
from numpy.polynomial import legendre as L

# Tạo mảng
x = np.array([-2.+2.j, -1.+2.j, 0.+2.j, 1.+2.j, 2.+2.j])

# Hiển thị mảng
print("Mảng của chúng ta...\n", x)

# Kiểm tra số chiều
print("\nSố chiều mảng...\n", x.ndim)

# Lấy kiểu dữ liệu
print("\nKiểu dữ liệu đối tượng mảng...\n", x.dtype)

# Lấy hình dạng
print("\nHình dạng đối tượng mảng...\n", x.shape)

# Tạo ma trận Vandermonde giả
print("\nKết quả...\n", L.legvander(x, 2))

Kết quả đầu ra

Mảng của chúng ta...   [-2.+2.j -1.+2.j 0.+2.j 1.+2.j 2.+2.j]
Số chiều mảng... 1
Kiểu dữ liệu đối tượng mảng... complex128
Hình dạng đối tượng mảng... (5,)
Kết quả...   [[ 1. +0.j -2. +2.j -0.5-12.j]   [ 1. +0.j -1. +2.j -5. -6.j]   [ 1. +0.j 0. +2.j -6.5 +0.j]   [ 1. +0.j 1. +2.j -5. +6.j]   [ 1. +0.j 2. +2.j -0.5+12.j]]