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

Tạo ma trận Vandermonde giả của đa thức Chebyshev trong Python

Để tạo ma trận Vandermonde giả của đa thức Chebyshev, sử dụng chebyshev.chebvander2d() trong Python NumPy. Phương thức trả về ma trận pseudo-Vandermonde của các bậc deg và điểm mẫu (x, y).

Tham số x, y là mảng tọa độ điểm, tất cả cùng hình dạng. Các dtype sẽ được chuyển đổi thành float64 hoặc complex128 tùy thuộc vào việc có phần tử phức hay không. Các scalar được chuyển đổi thành mảng 1-D. Tham số deg là danh sách các bậc tối đa dạng [x_deg, y_deg].

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 chebyshev as C

Tạo mảng tọa độ điểm, cùng hình dạng bằng numpy.array():

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

Hiển thị các mảng:

print("Mảng 1...\n", x)
print("\nMảng 2...\n", y)

Hiển thị kiểu dữ liệu:

print("\nKiểu dữ liệu mảng 1...\n", x.dtype)
print("\nKiểu dữ liệu mảng 2...\n", y.dtype)

Kiểm tra số chiều:

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

Kiểm tra hình dạng:

print("\nHình dạng mảng 1...\n", x.shape)
print("\nHình dạng mảng 2...\n", y.shape)

Để tạo ma trận Vandermonde giả của đa thức Chebyshev, sử dụng chebyshev.chebvander2d():

x_deg, y_deg = 2, 3
print("\nKết quả...\n", C.chebvander2d(x, y, [x_deg, y_deg]))

Ví dụ hoàn chỉnh

import numpy as np
from numpy.polynomial import chebyshev as C

# Tạo mảng tọa độ điểm
x = np.array([1, 2])
y = np.array([3, 4])

# Hiển thị mảng
print("Mảng 1...\n", x)
print("\nMảng 2...\n", y)

# Kiểu dữ liệu
print("\nKiểu dữ liệu mảng 1...\n", x.dtype)
print("\nKiểu dữ liệu mảng 2...\n", y.dtype)

# Số chiều
print("\nSố chiều mảng 1...\n", x.ndim)
print("\nSố chiều mảng 2...\n", y.ndim)

# Hình dạng
print("\nHình dạng mảng 1...\n", x.shape)
print("\nHình dạng mảng 2...\n", y.shape)

# Tạo ma trận Vandermonde giả Chebyshev 2D
x_deg, y_deg = 2, 3
print("\nKết quả...\n", C.chebvander2d(x, y, [x_deg, y_deg]))

Kết quả đầu ra

Mảng 1...
 [1 2]
Mảng 2...
 [3 4]
Kiểu dữ liệu mảng 1...
 int64
Kiểu dữ liệu mảng 2...
 int64
Số chiều mảng 1...
 1
Số chiều mảng 2...
 1
Hình dạng mảng 1...
 (2,)
Hình dạng mảng 2...
 (2,)
Kết quả...
 [[1.000e+00 3.000e+00 1.700e+01 9.900e+01 1.000e+00 3.000e+00 1.700e+01 9.900e+01 1.000e+00 3.000e+00 1.700e+01 9.900e+01]
 [1.000e+00 4.000e+00 3.100e+01 2.440e+02 2.000e+00 8.000e+00 6.200e+01 4.880e+02 7.000e+00 2.800e+01 2.170e+02 1.708e+03]]

Giải thích: Ma trận Vandermonde giả 2D Chebyshev kích thước (2, (2+1)*(3+1)) = (2, 12). Điểm 1: (1,3), Điểm 2: (2,4). Các cột: T₀(x)T₀(y), T₀(x)T₁(y), T₀(x)T₂(y), T₀(x)T₃(y), T₁(x)T₀(y), T₁(x)T₁(y), ... T₂(x)T₃(y). Với T₀=1, T₁(x)=x, T₂(x)=2x²-1, T₃(x)=4x³-3x.