다항식 벡터에서 행렬 곱셈으로

Aug 26 2020

두 개의 다항식 벡터가 있다고 상상해보십시오. $\mathbf{v}, \mathbf{u}$ 어디 $\mathbf{v} = (f_1, f_2, \dots, f_m)$$\mathbf{u} = (g_1, g_2, \dots, g_m)$$f_i,g_i \in\mathbb{Z}_q[x] / \langle x^n+1\rangle$ ...에 대한 $i \in [m]$. 기억하세요.$n$ 의 힘이다 $2$, $\mathbb{Z}_q[x] / \langle x^n+1\rangle$ 차수가 최대 인 다항식의 고리입니다. $n-1$ 계수로 $\mathbb{Z}_q = \{0, 1, \dots, q-1\}$ 프라임 $q$. 따라서 각각$f \in \mathbb{Z}_q[x] / \langle x^n+1\rangle$ 형태가있다 $$f = a_0 + a_1x + \dots + a_{n-1}x^{n-1}.$$

내 목표는 작업을 수행하는 것입니다 (벡터를 열 벡터로 나타냄) $$\mathbf{u}^T \cdot \mathbf{v}= h\in \mathbb{Z}_q[x] / \langle x^n+1\rangle$$ 그러나 행렬 형태로, 즉, 어떻게 든 이러한 벡터를 계수가있는 행렬로 표현하고 싶습니다. $\mathbb{Z}_q$ 제품이 벡터를 제공하도록 $\mathbf{h} = (h_0, h_1, \dots, h_{n-1}) \in \mathbb{Z}_q^n$ 그런 $$h = h_0 + h_1x + \dots + h_{n-1}x^{n-1}.$$ 이것은 다항식에 벡터를 자연스럽게 삽입하는 것이며 그 반대의 경우도 마찬가지입니다.

어떻게해야할지 모르겠습니다. 도움을 주시면 감사하겠습니다.

답변

3 BenGrossmann Aug 26 2020 at 16:04

만약 $P$ 순열 행렬을 나타냅니다. $$ P = \pmatrix{&&&-1\\ 1\\ &\ddots \\ &&1}, $$ 다음으로 정의 된 순환 행렬에 대한지도 $f \mapsto f(P)$고리의 동형입니다. 그것이 확립되면,$u^Tv$ 블록 매트릭스 제품으로 계산할 수 있습니다. $$ (u^Tv)(P) = \pmatrix{g_1(P) & \cdots & g_m(P)} \pmatrix{f_1(P) \\ \vdots \\ f_m(P)}. $$