Để đá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ủax^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.