我不确定如何解码此函数的返回值
所以我想拥有的基本上是2度的xyz多项式:
(x,y,z)=(3,3,3),度数为[2,2,2]
>>>polyvander3d(3, 3, 3, [2, 2, 2] )
array([[ 1., 3., 9., 3., 9., 27., 9., 27., 81.,
3., 9., 27., 9., 27., 81., 27., 81., 243.,
9., 27., 81., 27., 81., 243., 81., 243., 729.]])
此外,文档说:
V的前导索引指向点(x,y,z)和最后一个索引编码x,y和z的幂。
我不知道他们的意思。
有人可以帮忙吗?
答案 0 :(得分:0)
polyvander3d(x, y, z, [x_deg, y_deg, z_deg])
返回一个矩阵,其中每列的形状为((x_deg+1)*(y_deg+1)*(z_deg+1), )
,并按c000, c001, c002, ..., c010, c011...
因此,使用您的示例,返回矩阵的第一列包含(V[0]
)包含所有3d多项式系数:
>>>V = polyvander3d(3, 3, 3, [2, 2, 2])
>>>V
array([[ 1., 3., 9., 3., 9., 27., 9., 27., 81.,
3., 9., 27., 9., 27., 81., 27., 81., 243.,
9., 27., 81., 27., 81., 243., 81., 243., 729.]])
如:
V[0][0] = (3^0 + 3^0 + 3^0) = 1
V[0][1] = (3^0 + 3^0 + 3^1) = 3
V[0][2] = (3^0 + 3^0 + 3^2) = 9
V[0][3] = (3^0 + 3^1 + 3^0) = 3
V[0][4] = (3^0 + 3^1 + 3^1) = 9
等等,直到
V[0][(x_deg+1)*(y_deg+1)*(z_deg+1) - 1] = V[0][26] = (3^2 + 3^2 + 3^2) = 729
Here's the most current link to the documentation(问题中的那个导致numpy v1.10)。