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

Đánh giá đa thức tại điểm x với mở rộng shape hệ số (tensor=True) trong Python

Giới thiệu

Khi tensor=True (mặc định), polynomial.polyval() mở rộng shape của mảng hệ số c bằng cách thêm các chiều kích thước 1 ở bên phải cho mỗi chiều của x. Kết quả: mỗi cột hệ số được đánh giá tại tất cả các điểm x.

Ví dụ so sánh

import numpy as np
from numpy.polynomial.polynomial import polyval

c = np.arange(4).reshape(2, 2)  # 2 đa thức: [0,2] và [1,3]
x = [1, 2]

print("Hệ số:\n", c)

# tensor=True (mặc định)
result_true = polyval(x, c, tensor=True)
print("\nKết quả (tensor=True):\n", result_true)
print("Shape:", result_true.shape)

# tensor=False
result_false = polyval(x, c, tensor=False)
print("\nKết quả (tensor=False):", result_false)
print("Shape:", result_false.shape)

Kết quả

Hệ số:
 [[0 1]
 [2 3]]

Kết quả (tensor=True):
 [[2. 4.]
 [4. 7.]]
Shape: (2, 2)

Kết quả (tensor=False):
 [2. 7.]
Shape: (2,)

Ma trận kết quả tensor=True

x=1x=2
Poly 0: 0+2x24
Poly 1: 1+3x47

Đây là hành vi "outer product" giữa x và các đa thức, rất hữu ích cho việc vẽ đồ thị hoặc tính toán lưới.