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

Đánh giá đa thức 3D tại điểm (x, y, z) với mảng hệ số 4D trong Python

Để đánh giá đa thức 3D tại các điểm (x, y, z), sử dụng phương thức polynomial.polyval3d() trong Python NumPy. Phương thức trả về giá trị của đa thức đa chiều trên các điểm được hình thành từ ba giá trị tương ứng của x, y, và z.

Tham số là x, y, z. Chuỗi ba chiều được đánh giá tại các điểm (x, y, z), nơi x, y, và z phải có cùng hình dạng. Nếu bất kỳ x, y, hoặc z là list hoặc tuple, nó đầu tiên được chuyển thành ndarray, ngược lại nó giữ nguyên và nếu không phải ndarray thì được coi như scalar.

Tham số c là mảng hệ số được sắp xếp sao cho hệ số của hạng tử đa bậc i,j,k chứa trong c[i,j,k]. Nếu c có chiều lớn hơn 3, các chỉ số còn lại liệt kê nhiều tập hợp hệ số. Nếu c có ít hơn 3 chiều, 1 được ngầm thêm vào hình dạng để làm nó 3-D. Hình dạng kết quả sẽ là c.shape[3:] + x.shape.

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.polynomial import polyval3d

Tạo mảng hệ số 4D:

c = np.arange(48).reshape(2, 2, 6, 2)

Hiển thị mảng:

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

Kiểm tra số chiều:

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

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

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

Lấy hình dạng:

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

Để đánh giá đa thức 3D tại các điểm (x, y, z), sử dụng polynomial.polyval3d():

print("\nKết quả...\n", polyval3d([1, 2], [1, 2], [1, 2], c))

Ví dụ hoàn chỉnh

import numpy as np
from numpy.polynomial.polynomial import polyval3d

# Tạo mảng hệ số 4D
c = np.arange(48).reshape(2, 2, 6, 2)

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

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

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

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

# Đánh giá đa thức 3D
print("\nKết quả...\n", polyval3d([1, 2], [1, 2], [1, 2], c))

Kết quả đầu ra

Mảng của chúng ta...
 [[[[ 0  1]
   [ 2  3]
   [ 4  5]
   [ 6  7]
   [ 8  9]
   [10 11]]
  [[12 13]
   [14 15]
   [16 17]
   [18 19]
   [20 21]
   [22 23]]]
 [[[24 25]
   [26 27]
   [28 29]
   [30 31]
   [32 33]
   [34 35]]
  [[36 37]
   [38 39]
   [40 41]
   [42 43]
   [44 45]
   [46 47]]]]
Số chiều của mảng...
 4
Kiểu dữ liệu của đối tượng mảng...
 int64
Hình dạng của đối tượng mảng...
 (2, 2, 6, 2)
Kết quả...
 [[ 552. 18252.]
 [ 576. 18819.]]

Giải thích: Hệ số c shape (2,2,6,2) → 2 tập hợp đa thức 3D (chỉ số 3). Mỗi đa thức 3D có hệ số shape (2,2,6) (bậc x≤1, y≤1, z≤5). Đánh giá tại 2×2×2=8 điểm (tích Descartes [1,2]³). Kết quả shape (2, 2, 2) = 2 tập hợp × 2×2 điểm (vì z shape (2,) broadcast?). Thực tế kết quả (2,2) cho thấy đánh giá tại 4 điểm (x,y) với z cố định?