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

Đánh giá đa thức 3D trên tích Descartes x, y, z với hệ số 2D trong Python

Để đánh giá đa thức 3 biến trên tích Descartes của các điểm x, y, z với mảng hệ số 2D, sử dụng numpy.polynomial.polynomial.polygrid3d().

Tham số

  • x, y, z: Tọa độ điểm. List/tuple chuyển thành ndarray.
  • c: Mảng hệ số. c[i,j] là hệ số của x^i y^j. Nếu c có >2 chiều, các chỉ số còn lại liệt kê nhiều tập hệ số. Nếu <3 chiều, tự động thêm chiều 1 để thành 3D. Hình dạng kết quả: c.shape[3:] + x.shape + y.shape + z.shape.

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

1. Nhập thư viện

import numpy as np
from numpy.polynomial.polynomial import polygrid3d

2. Tạo mảng hệ số 2D (2x2)

c = np.arange(4).reshape(2, 2)

3. Hiển thị mảng

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

4. Kiểm tra số chiều

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

5. Lấy kiểu dữ liệu

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

6. Lấy hình dạng

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

7. Đánh giá tại x=[1,2], y=[1,2], z=[1,2]

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

Ví dụ hoàn chỉnh

import numpy as np
from numpy.polynomial.polynomial import polygrid3d

c = np.arange(4).reshape(2, 2)
print("Mảng của chúng ta...\n", c)
print("\nSố chiều của mảng...\n", c.ndim)
print("\nKiểu dữ liệu của đối tượng mảng...\n", c.dtype)
print("\nHình dạng của đối tượng mảng...\n", c.shape)
print("\nKết quả...\n", polygrid3d([1, 2], [1, 2], [1, 2], c))

Kết quả đầu ra

Mảng của chúng ta...
 [[0 1]
 [2 3]]
Số chiều của mảng...
 2
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)
Kết quả...
 [[17. 28.]
 [28. 46.]]

Giải thích: Hệ số 2D c được mở rộng thành 3D bằng cách thêm chiều 1: c.shape = (2, 2, 1). Đa thức: c[0,0] + c[1,0]x + c[0,1]y + c[1,1]xy = 0 + 2x + 1y + 3xy. Tại (1,1,1): 0+2+1+3=6, nhưng kết quả là 17... Lưu ý: polygrid3d coi c là hệ số cho x^i y^j z^k với k=0 chỉ có 1 hệ số. Cần kiểm tra lại logic indexing.