Inverse Number Theoretic Transform पर पिछले अध्याय में, हमने दावा किया था कि unity के primitive -th root के लिए Vandermonde matrix का inverse भी एक Vandermonde matrix होता है, जिसे द्वारा दिया जाता है। अब हम इस तथ्य को सिद्ध करेंगे।
गणित में कम रुचि रखने वाले पाठक बिना किसी नुकसान के इस अध्याय को छोड़ सकते हैं। INTT को समझने के लिए यह आवश्यक नहीं है, बशर्ते वे यह स्वीकार करें कि हमारा प्रस्तावित inverse matrix मान्य है।
Vandermonde matrix को एक ऐसे matrix के रूप में परिभाषित किया जाता है जहां प्रत्येक पंक्ति (row) एक geometric progression (गुणोत्तर श्रेणी) होती है।
- पहली पंक्ति का geometric progression है, जो से तक होता है।
- दूसरी पंक्ति का geometric progression है, जो से तक होता है।
- यह अंतिम पंक्ति तक जारी रहता है, जो का geometric progression है, जो से तक होता है।
इस प्रकार, की पंक्ति और स्तंभ (column) में प्रत्येक प्रविष्टि (entry) निम्न द्वारा दी जाती है:
अधिकतम डिग्री वाले एक polynomial पर विचार करें, जिसे निम्न प्रकार दिया गया है:
मान लें कि एक ऐसा सेट है जिसमें एक primitive -th root द्वारा उत्पन्न unity के -th roots शामिल हैं:
सेट पर के मूल्यांकन (evaluations) का vector,
coefficient vector को से गुणा करके प्राप्त किया जा सकता है:
\mathbf{y}= V(\omega) \cdot \mathbf{a}\
जहां polynomial के coefficients हैं।
बाईं ओर की प्रत्येक पंक्ति Vandermonde matrix की -th पंक्ति और vector का inner product है। उदाहरण के लिए, -th तत्व है:
इस प्रकार, evaluations को इस रूप में लिखा जा सकता है:
के लिए।
Indices पर ध्यान दें: उपरोक्त समीकरण में, हमारे पास दो indices हैं। Index यह दर्शाता है कि हम किस evaluation के साथ काम कर रहे हैं, और यह मान ले सकता है। इसका मतलब है कि उपरोक्त सूत्र केवल एक समीकरण का प्रतिनिधित्व नहीं करता है, बल्कि समीकरणों का प्रतिनिधित्व करता है, जो के प्रत्येक मान के लिए एक है। उदाहरण के लिए, उपरोक्त अंकन (notation) निम्न का एक संक्षिप्त रूप (shorthand) है:
और में index एक summation index है और इसलिए योग (sum) द्वारा “consumed” (उपभोग) कर लिया जाता है। क्योंकि यह योग द्वारा consumed हो जाता है, यह समीकरण के बाईं ओर दिखाई नहीं देता है। Indices और का चुनाव मनमाना (arbitrary) है; हम या किसी अन्य अक्षर का उपयोग कर सकते थे। सामान्य तौर पर, vector indices के लिए, वर्णमाला के मध्य के अक्षरों का उपयोग करना आम बात है।
अब हम vector से vector प्राप्त करने के लिए inverse relation खोजना चाहते हैं। दूसरे शब्दों में, हम की गणना करना चाहते हैं, जहां , का inverse है।
हमारा दावा है कि Vandermonde matrix का inverse भी एक Vandermonde matrix होता है, जिसे द्वारा दिया जाता है।
पूरी तरह से स्पष्ट करने के लिए, हमारा दावा यह है कि
जहां unity का एक primitive -th root है।
यदि दावा सही है, तो vector की गणना निम्न प्रकार से की जा सकती है:
Component , की -th पंक्ति और vector के बीच का inner product है:
इस ऑपरेशन को निम्नलिखित योग (sum) के रूप में लिखा जा सकता है:
के लिए।
शैक्षणिक कारणों (pedagogical reasons) से, हम अपने दावे को - कि Vandermonde matrix का inverse एक अन्य Vandermonde matrix है, जिसे द्वारा दिया जाता है - दो अलग-अलग तरीकों से सिद्ध करेंगे।
सबसे पहले, हम दिखाएंगे कि और का matrix multiplication identity matrix देता है, अर्थात,
फिर, हम दिखाएंगे कि यदि हम पहले प्राप्त करने के लिए को से गुणा करते हैं, और फिर को से गुणा करते हैं, तो हम वापस प्राप्त कर लेते हैं।
ये दोनों प्रमाण अनिवार्य रूप से समान हैं, बस दो अलग-अलग तरीकों से व्यक्त किए गए हैं।
इसका प्रमाण कि
हम सिद्ध करेंगे कि का के साथ matrix multiplication, identity matrix देता है।
यह प्रमाण roots of unity की orthogonality property पर निर्भर करता है, जिसे एक summation के रूप में व्यक्त किया जाता है। इसलिए, हम पहले matrix multiplication को summation form में लिखते हैं ताकि हम इस orthogonality property का उपयोग कर सकें।
Index notation में का गुणन (multiplication)
याद करें कि पंक्ति और स्तंभ में की matrix entry निम्न द्वारा दी जाती है:
नोट: यहां पंक्तियों और स्तंभों की नंबरिंग (numbering) के बजाय से मानी गई है।
उदाहरण के लिए, की पंक्ति और स्तंभ में entry है, जैसा कि नीचे लाल रंग में highlight किया गया है:
इसके अलावा, पंक्ति और स्तंभ में की matrix entry निम्न द्वारा दी जाती है:
उदाहरण के लिए, की पंक्ति और स्तंभ में entry है, जैसा कि नीचे highlight किया गया है:
इसलिए, जब दो matrices और को गुणा किया जाता है, तो पंक्ति और स्तंभ में परिणामी तत्व की पंक्ति (लाल) को के स्तंभ (नीला) के साथ गुणा करके प्राप्त किया जाता है:
Matrix की प्रत्येक entry, जिसे हम द्वारा निरूपित करते हैं, तब निम्न प्रकार दी जाती है:
अब हमें यह दिखाना होगा कि entries identity matrix की entries के बराबर हैं। ऐसा करने के लिए, हम roots of unity की orthogonality का उपयोग करते हैं।
याद करें: Roots of unity की Orthogonality
Roots of unity की orthogonality पर आधारित अध्याय में, हमने दिखाया था कि
संक्षेप में कहें तो, उपरोक्त सूत्र हमें दो स्थितियों में summation का परिणाम देता है: (1) जब और (2) जब । हम नीचे दोनों स्थितियों का उपयोग करेंगे।
स्थिति 1: जब
हम गणना करना चाहते हैं:
जब हो। Roots of unity की orthogonality कहती है कि, जब ,
के लिए इस परिणाम का उपयोग करने पर, हमें प्राप्त होता है:
इस प्रकार, diagonal terms (जैसे ) के लिए, हमारे पास है:
स्थिति 2: जब
अब हम गणना करना चाहते हैं:
जब हो। Roots of unity की orthogonality कहती है कि, जब ,
के लिए इस परिणाम का उपयोग करने पर, हमारे पास है:
इसलिए, किसी भी non-diagonal terms (जैसे ) के लिए, हमारे पास है।
Matrix
उपरोक्त स्थितियों (1) और (2) को ध्यान में रखते हुए, हमें प्राप्त होता है कि matrix है:
जो बिल्कुल identity matrix है। इस प्रकार, matrices और एक दूसरे के inverses हैं, क्योंकि
Vector के साथ का Matrix multiplication वापस vector देता है
यह दिखाने का दूसरा तरीका कि , का inverse है, यह दिखाना है कि यह बाद वाले (latter) को invert करता है।
अर्थात, यदि हम पहले प्राप्त करने के लिए को पर लागू करते हैं,
और फिर पर लागू करते हैं, तो हम वापस प्राप्त कर लेते हैं:
हम बिल्कुल यही दिखाएंगे।
पहला transformation निम्नलिखित matrix operation के माध्यम से coefficients के vector को evaluations के vector में ले जाता है:
जैसा कि हम पहले ही देख चुके हैं, इस matrix operation को indices का उपयोग करके लिखा जा सकता है:
अब हम vector पर एक दूसरा transformation करते हैं, जिसके परिणामस्वरूप एक vector प्राप्त होता है:
\begin{bmatrix}
\tilde{a}_0 \\ \tilde{a}_1 \\ \tilde{a}_2 \\\vdots \\ \tilde{a}_{k-1}
\end{bmatrix}= \frac{1}{k}\begin{bmatrix}(\omega^0)^0 & (\omega^0)^1 & (\omega^0)^2 & \cdots & (\omega^0)^{k-1} \\(\omega^{-1})^0 & (\omega^{-1})^1 & (\omega^{-1})^{2} & \cdots & (\omega^{-1})^{k-1} \\ (\omega^{-2})^0 & (\omega^{-2})^1 & (\omega^{-2)^2 & \cdots & (\omega^{-2})^{k-1} \\\vdots & \vdots & \vdots & \ddots & \vdots \\ (\omega^{-(k-1)})^0 & (\omega^{-(k-1)})^1 & (\omega^{-(k-1)})^2 & \cdots & (\omega^{-(k-1)})^{k-1} \end{bmatrix}
\begin{bmatrix}
f(\omega^0) \\ f(\omega^1) \\ f(\omega^2) \\\vdots \\ f(\omega^{k-1})
\end{bmatrix}
यदि हम यह दिखा सकें कि , तो दूसरा transformation पहले वाले का inverse होगा।
उपरोक्त matrix operation को index form में इस प्रकार लिखा जा सकता है:
अब के लिए expression (व्यंजक) को substitute (प्रतिस्थापित) करें। याद करें कि
जहां सिर्फ एक index है जिसे हम , या किसी अन्य अक्षर से बदल सकते हैं। इस प्रकार, के परिणाम में को प्रतिस्थापित करने पर, हमारे पास है:
Double sum के रूप में फिर से लिखना:
कोष्ठक (parentheses) में मौजूद पद (term) बिल्कुल orthogonality relation है:
प्रमाण को जारी रखने के लिए, हम स्थिति (1), जहां , और स्थिति (2), जहां का अध्ययन कर सकते थे, लेकिन हम एक अलग तरीके से आगे बढ़ेंगे। हम Kronecker delta नामक एक प्रतीक का परिचय देंगे।
Kronecker delta, , इस मामले में और 2 indices वाला एक प्रतीक है, जो होने पर होता है और अन्यथा होता है:
Kronecker delta को identity matrix की entries के रूप में समझा जा सकता है।
Kronecker delta का उपयोग करते हुए, हम orthogonality property को इस प्रकार लिख सकते हैं:
के expression में Kronecker delta का उपयोग करने पर, हमारे पास है:
Summation का विस्तार (expanding) करने पर, उपरोक्त expression को इस प्रकार लिखा जा सकता है:
Kronecker delta property के अनुसार, summation में केवल एक पद nonzero (अशून्य) होता है। उदाहरण के लिए, के लिए, केवल nonzero है। इस प्रकार, हमारे पास है:
यह किसी भी के लिए सत्य है, इसलिए हम कह सकते हैं कि
किसी भी के लिए।
यह दर्शाता है कि transformation , transformation का inverse है।
यह लेख हमारी ZK Book में Number Theoretic Transform पर आधारित श्रृंखला का एक हिस्सा है।