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 Hermite với điểm x, y, z phức trong Python


Để tạo ma trận Vandermonde giả (pseudo-Vandermonde matrix) của đa thức Hermite và các điểm mẫu x, y, z, dùng hermite.hermvander3d() trong NumPy Python. Phương thức trả về ma trận pseudo-Vandermonde. Tham số x, y, z là mảng tọa độ điểm, cùng hình dạng. Kiểu dữ liệu chuyển thành float64 hoặc complex128 tùy thuộc vào việc có phần tử phức hay không. Tham số deg là danh sách bậc tối đa dạng [x_deg, y_deg, z_deg].

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

Nhập thư viện:

import numpy as np
from numpy.polynomial import hermite as H

Tạo mảng tọa độ phức:

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

Hiển thị mảng:

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

Kiểm tra kiểu dữ liệu, số chiều, hình dạng:

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

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

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

Tạo ma trận Vandermonde giả với bậc [2, 3, 4]:

x_deg, y_deg, z_deg = 2, 3, 4
print("\nKết quả...\n", H.hermvander3d(x, y, z, [x_deg, y_deg, z_deg]))

Ví dụ hoàn chỉnh

import numpy as np
from numpy.polynomial import hermite as H

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

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

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

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

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

x_deg, y_deg, z_deg = 2, 3, 4
print("\nKết quả...\n", H.hermvander3d(x, y, z, [x_deg, y_deg, z_deg]))

Kết quả đầu ra

Mảng 1...
[-2.+2.j -1.+2.j]
Mảng 2...
[0.+2.j 1.+2.j]
Mảng 3...
[2.+2.j 3.+3.j]
Kiểu dữ liệu Mảng 1...
complex128
Kiểu dữ liệu Mảng 2...
complex128
Kiểu dữ liệu Mảng 3...
complex128
Số chiều Mảng 1...
1
Số chiều Mảng 2...
1
Số chiều Mảng 3...
1
Hình dạng Mảng 1...
(2,)
Hình dạng Mảng 2...
(2,)
Hình dạng Mảng 3...
(2,)
Kết quả...
[[ 1.000000e+00+0.000000e+00j  4.000000e+00+4.000000e+00j ... ]
 [ 1.000000e+00+0.000000e+00j  6.000000e+00+6.000000e+00j ... ]]