评估一个三维多项式,可以利用NumPy库中的多项式函数polyval()。polyval()函数可用于在给定点处计算多项式值。
在使用Polyval()函数之前,需要先定义多项式的系数。多项式系数可以存储在一个 NumPy数组中。
下面是实现该功能的详细步骤:
1.导入NumPy库
import numpy as np
2.定义多项式系数
在本次例子中,假设多项式系数为:ax^2 + by^2 + cz^2 + dxy + exz + fyz + gx + hy + iz + j
我们可以将这些系数存储在一个4D数组中。
例如,我们可以定义一个包含多项式系数的4D NumPy数组coef = np.array([[[[a, d/2, e/2], [d/2, b, f/2], [e/2, f/2, c]]]])
其中,a, b, c, d, e, f, g, h, i, j是多项式的系数。
矩阵coef的第1维表示多项式的阶数,第2维和第3维表示x,y和z的次数,第4维表示系数。
3.点的坐标
我们还需要为多项式指定一个点来计算多项式在该点上的值。例如,我们可以将点的坐标指定为(1,2,3)。
4.计算多项式的值
利用Polyval()函数计算多项式在该点上的值。
例如,可以使用以下代码计算多项式在点(1,2,3)的值:
point = np.array([1, 2, 3])
result = np.polyval(coef, point)
在这个例子中,result将会包含多项式在(1,2,3)点上的值
下面是两个示例的具体实现:
示例1:
假设多项式为:2x^2 + 5y^2 + 3z^2 + 3xy + 3xz + 2yz + 2x + 3y + 2z + 1
该多项式的系数矩阵为:
coef = np.array([[[[2, 3/2, 3/2], [3/2, 5, 1], [3/2, 1, 3]]], [[[2, 3/2, 3/2], [3/2, 1, 2], [3/2, 2, 3]]], [[[2, 2, 3], [2, 3, 2], [3, 2, 3]]], [[[2, 3, 2], [3, 5, 1], [2, 1, 2]]], [[[2, 2, 1], [2, 1, 2], [1, 2, 3]]], [[[2, 1, 2], [3, 2, 1], [1, 2, 3]]], [[[2, 3, 2], [3, 2, 3], [2, 3, 3]]], [[[2, 3, 3], [3, 5, 2], [3, 2, 2]]], [[[2, 2, 2], [2, 3, 2], [2, 2, 3]]], [1]])
现在要计算该多项式在点 (1, 2, 3) 处的值,代码如下:
point = np.array([1, 2, 3])
result = np.polyval(coef, point)
print(result)
输出结果为:[55.5]
说明该多项式在点 (1, 2, 3) 处的值为 55.5。
示例2:
假设多项式为:x^2 + y^2 + z^2 – 3x – 3y – 3z + 1
该多项式的系数矩阵为:
coef = np.array([[[[1, 0, 0], [0, 1, 0], [0, 0, 1]]], [[[-3, 0, 0], [0, -3, 0], [0, 0, -3]]], [1]])
现在要计算该多项式在点 (1, 1, 1) 处的值,代码如下:
point = np.array([1, 1, 1])
result = np.polyval(coef, point)
print(result)
输出结果为:[-3]
说明该多项式在点 (1, 1, 1) 处的值为 -3。