सदिशीकरण (गणित): Difference between revisions
No edit summary |
No edit summary |
||
(4 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Conversion of a matrix or a tensor to a vector}} | {{Short description|Conversion of a matrix or a tensor to a vector}} | ||
{{other uses| | {{other uses|सदिशीकरण (असंबद्धता){{!}} सदिशीकरण}} | ||
गणित में, विशेष रूप से रैखिक बीजगणित और [[मैट्रिक्स (गणित)|आव्यूह (गणित)]] में, आव्यूह (गणित) का '''सदिशीकरण''' [[रैखिक परिवर्तन]] है जो आव्यूह को [[वेक्टर (गणित और भौतिकी)|सदिश (गणित और भौतिकी)]] में परिवर्तित करता है। विशेष रूप से a {{nowrap|''m'' × ''n''}} आव्यूह A का सदिशीकरण, जिसे vec(A) कहा जाता है, {{nowrap|''mn'' × 1}} स्तंभ सदिश है जो आव्यूह A के स्तंभों को एक दूसरे के ऊपर रखकर प्राप्त किया जाता है: | |||
<math display="block">\operatorname{vec}(A) = [a_{1,1}, \ldots, a_{m,1}, a_{1,2}, \ldots, a_{m,2}, \ldots, a_{1,n}, \ldots, a_{m,n}]^\mathrm{T}</math> | <math display="block">\operatorname{vec}(A) = [a_{1,1}, \ldots, a_{m,1}, a_{1,2}, \ldots, a_{m,2}, \ldots, a_{1,n}, \ldots, a_{m,n}]^\mathrm{T}</math> | ||
उदाहरण के लिए, 2×2 | यहां, <math>a_{i,j}</math> A की i-वीं पंक्ति और j-वें स्तंभ में अवयव का प्रतिनिधित्व करता है, और सुपरस्क्रिप्ट <math>{}^\mathrm{T}</math> ट्रांसपोज़ को दर्शाता है। सदिशीकरण, इनके (अर्थात्, आव्यूहों और सदिशों के) मध्य समरूपता <math>\mathbf{R}^{m \times n} := \mathbf{R}^m \otimes \mathbf{R}^n \cong \mathbf{R}^{mn}</math> को सदिश स्थानों के रूप में समन्वयित करके व्यक्त करता है। | ||
उदाहरण के लिए, 2×2 आव्यूह <math>A = \begin{bmatrix} a & b \\ c & d \end{bmatrix}</math>,के लिए सदिशीकरण <math>\operatorname{vec}(A) = \begin{bmatrix} a \\ c \\ b \\ d \end{bmatrix}</math> है . | |||
[[File:Vectorized-addition.gif|thumb|सदिशकृत जोड़ का चित्रण वीडियो]] | [[File:Vectorized-addition.gif|thumb|सदिशकृत जोड़ का चित्रण वीडियो]]A के सदिशीकरण और उसके स्थानान्तरण के सदिशीकरण के मध्य संबंध [[रूपान्तरण मैट्रिक्स|कम्यूटेशन आव्यूह]] द्वारा दिया गया है। | ||
==[[क्रोनकर उत्पाद]] | ==[[क्रोनकर उत्पाद]] के साथ संगतता== | ||
[[मैट्रिक्स गुणन]] को | [[मैट्रिक्स गुणन|आव्यूह गुणन]] को आव्यूह पर रैखिक परिवर्तन के रूप में व्यक्त करने के लिए क्रोनेकर उत्पाद के साथ सदिशीकरण का अधिकांशतः उपयोग किया जाता है। विशेष रूप से, | ||
<math display="block"> \operatorname{vec}(ABC) = (C^\mathrm{T}\otimes A) \operatorname{vec}(B) </math> | <math display="block"> \operatorname{vec}(ABC) = (C^\mathrm{T}\otimes A) \operatorname{vec}(B) </math> | ||
आयाम k×l, l×m, और m×n के आव्यूह A, B, और C के लिए।<ref group="note" name="RowMajor">The identity for row-major vectorization is <math> \operatorname{vec}(ABC) = (A \otimes C^\mathrm{T})\operatorname{vec}(B)</math>. | आयाम k×l, l×m, और m×n के आव्यूह A, B, और C के लिए।<ref group="note" name="RowMajor">The identity for row-major vectorization is <math> \operatorname{vec}(ABC) = (A \otimes C^\mathrm{T})\operatorname{vec}(B)</math>. | ||
</ref> उदाहरण के लिए, | </ref> उदाहरण के लिए, (समष्टि प्रविष्टियों वाले सभी n×n आव्यूहों के <math> \operatorname{ad}_A(X) = AX-XA</math> ली बीजगणित {{nowrap|gl(''n'', '''C''')}} का संयुक्त एंडोमोर्फिज्म), फिर <math>\operatorname{vec}(\operatorname{ad}_A(X)) = (I_n\otimes A - A^\mathrm{T} \otimes I_n ) \text{vec}(X)</math>, जहां <math>I_n</math> n×n पहचान आव्यूह है। | ||
दो अन्य उपयोगी सूत्रीकरण हैं: | दो अन्य उपयोगी सूत्रीकरण हैं: | ||
<math display="block"> \begin{align} | <math display="block"> \begin{align} | ||
\operatorname{vec}(ABC) &= (I_n\otimes AB)\operatorname{vec}(C) = (C^\mathrm{T}B^\mathrm{T}\otimes I_k) \operatorname{vec}(A) \\ | \operatorname{vec}(ABC) &= (I_n\otimes AB)\operatorname{vec}(C) = (C^\mathrm{T}B^\mathrm{T}\otimes I_k) \operatorname{vec}(A) \\ | ||
\operatorname{vec}(AB) &= (I_m \otimes A) \operatorname{vec}(B) = (B^\mathrm{T}\otimes I_k) \operatorname{vec}(A) | \operatorname{vec}(AB) &= (I_m \otimes A) \operatorname{vec}(B) = (B^\mathrm{T}\otimes I_k) \operatorname{vec}(A) | ||
\end{align}</math> | \end{align}</math> | ||
अधिक | अधिक सामान्यतः, यह दिखाया गया है कि सदिशीकरण किसी भी श्रेणी के आव्यूह की मोनोइडल संवृत संरचना में स्व-एडजंक्शन है।<ref>{{cite journal |first1=H. D. |last1=Macedo |first2=J. N. |last2=Oliveira |title=Typing Linear Algebra: A Biproduct-oriented Approach |journal=Science of Computer Programming |volume=78 |issue=11 |year=2013 |pages=2160–2191 |doi=10.1016/j.scico.2012.07.012 |arxiv=1312.4818 |s2cid=9846072 }}</ref> | ||
==हैडामर्ड उत्पादों के साथ संगतता== | ==हैडामर्ड उत्पादों के साथ संगतता== | ||
सदिशीकरण | सदिशीकरण एक [[बीजगणित समरूपता]] है जो हैडामर्ड (एंट्रीवाइज) उत्पाद के साथ {{nowrap|''n'' × ''n''}} आव्यूह के स्थान से लेकर हैडामर्ड उत्पाद के साथ C<sup>n<sup>2</sup></sup> तक है: | ||
<math display="block">\operatorname{vec}(A \circ B) = \operatorname{vec}(A) \circ \operatorname{vec}(B) .</math> | <math display="block">\operatorname{vec}(A \circ B) = \operatorname{vec}(A) \circ \operatorname{vec}(B) .</math> | ||
==आंतरिक उत्पादों के साथ संगतता== | ==आंतरिक उत्पादों के साथ संगतता== | ||
सदिशीकरण आव्यूह मानदंड फ्रोबेनियस मानदंड (या हिल्बर्ट-श्मिट) आंतरिक उत्पाद के साथ n×n आव्यूह के स्थान से 'C<sup>n<sup>2</sup></sup>' तक [[एकात्मक परिवर्तन]] है।: | |||
<math display="block">\operatorname{tr}(A^\dagger B) = \operatorname{vec}(A)^\dagger \operatorname{vec}(B),</math> | <math display="block">\operatorname{tr}(A^\dagger B) = \operatorname{vec}(A)^\dagger \operatorname{vec}(B),</math> | ||
जहां सुपरस्क्रिप्ट <sup>†</sup>संयुग्म स्थानान्तरण को दर्शाता है। | जहां सुपरस्क्रिप्ट <sup>†</sup> संयुग्म स्थानान्तरण को दर्शाता है। | ||
==एक रैखिक योग के रूप में सदिशीकरण== | ==एक रैखिक योग के रूप में सदिशीकरण== | ||
आव्यूह सदिशीकरण ऑपरेशन को एक रैखिक योग के रूप में लिखा जा सकता है। मान लीजिए X एक {{nowrap|''m'' × ''n''}} आव्यूह है जिसे हम सदिश करना चाहते हैं, और e<sub>''i''</sub> को n-डायमेंशनल स्पेस के लिए i-th कैनोनिकल बेस सदिश होने दें, जो कि है। <math display="inline">\mathbf{e}_i=\left[0,\dots,0,1,0,\dots,0\right]^\mathrm{T}</math> मान लीजिए Bi एक {{nowrap|(''mn'') × ''m''}} ब्लॉक आव्यूह है जिसे इस प्रकार परिभाषित किया गया है: | |||
<math display="block"> | <math display="block"> | ||
\mathbf{B}_i = \begin{bmatrix} | \mathbf{B}_i = \begin{bmatrix} | ||
Line 51: | Line 50: | ||
\end{bmatrix} | \end{bmatrix} | ||
= \mathbf{e}_i \otimes \mathbf{I}_m | = \mathbf{e}_i \otimes \mathbf{I}_m | ||
</math> | </math>B<sub>''i''</sub> में {{nowrap|''m'' × ''m''}} आकार के n ब्लॉक आव्यूह होते हैं, जो स्तंभ-वार स्टैक्ड होते हैं, और यह सभी आव्यूह i-वें को छोड़कर सभी-शून्य हैं, जो कि {{nowrap|''m'' × ''m''}} पहचान आव्यूह I<sub>''m''</sub> है। | ||
फिर X का सदिश संस्करण इस प्रकार व्यक्त किया जा सकता है: | फिर X का सदिश संस्करण इस प्रकार व्यक्त किया जा सकता है: | ||
<math display="block">\operatorname{vec}(\mathbf{X}) = \sum_{i=1}^n \mathbf{B}_i \mathbf{X} \mathbf{e}_i</math> | <math display="block">\operatorname{vec}(\mathbf{X}) = \sum_{i=1}^n \mathbf{B}_i \mathbf{X} \mathbf{e}_i</math>X को e<sub>''i''</sub> से गुणा करने पर i-th स्तंभ निकलता है, जबकि B<sub>''i''</sub> से गुणा करने पर यह अंतिम सदिश में वांछित स्थिति में आ जाता है। | ||
वैकल्पिक रूप से, रैखिक योग को क्रोनकर उत्पाद का उपयोग करके व्यक्त किया जा सकता है: | वैकल्पिक रूप से, रैखिक योग को क्रोनकर उत्पाद का उपयोग करके व्यक्त किया जा सकता है: | ||
<math display="block">\operatorname{vec}(\mathbf{X}) = \sum_{i=1}^n \mathbf{e}_i \otimes \mathbf{X} \mathbf{e}_i</math> | <math display="block">\operatorname{vec}(\mathbf{X}) = \sum_{i=1}^n \mathbf{e}_i \otimes \mathbf{X} \mathbf{e}_i</math> | ||
==अर्ध-सदिशीकरण== | |||
एक [[सममित मैट्रिक्स|सममित आव्यूह]] A के लिए, सदिश vec(A) में आवश्यकता से अधिक जानकारी होती है, क्योंकि आव्यूह पूरी तरह से निचले त्रिकोणीय आव्यूह भाग के साथ समरूपता द्वारा निर्धारित होता है, अर्थात, {{nowrap|''n''(''n'' + 1)/2}} [[मुख्य विकर्ण]] पर और नीचे प्रविष्टियाँ ऐसे आव्यूह के लिए, अर्ध-सदिशीकरण कभी-कभी सदिशीकरण की तुलना में अधिक उपयोगी होता है। एक सममित {{nowrap|''n'' × ''n''}} आव्यूह A का अर्ध-सदिशीकरण, vec (A), {{nowrap|''n''(''n'' + 1)/2 × 1}} स्तंभ सदिश है जो A के केवल निचले त्रिकोणीय भाग को सदिश करके प्राप्त किया जाता है: | |||
<math display="block"> \operatorname{vech}(A) = [A_{1,1}, \ldots, A_{n,1}, A_{2,2}, \ldots, A_{n,2}, \ldots, A_{n-1,n-1}, A_{n,n-1}, A_{n,n}]^\mathrm{T}.</math> | <math display="block"> \operatorname{vech}(A) = [A_{1,1}, \ldots, A_{n,1}, A_{2,2}, \ldots, A_{n,2}, \ldots, A_{n-1,n-1}, A_{n,n-1}, A_{n,n}]^\mathrm{T}.</math> | ||
उदाहरण के लिए, 2×2 | उदाहरण के लिए, 2×2 आव्यूह <math>A = \begin{bmatrix} a & b \\ b & d \end{bmatrix}</math> के लिए , अर्ध-सदिशीकरण <math>\operatorname{vech}(A) = \begin{bmatrix} a \\ b \\ d \end{bmatrix}</math> है . | ||
ऐसे अद्वितीय | ऐसे अद्वितीय आव्यूह उपस्थित हैं जो आव्यूह के आधे-सदिशीकरण को उसके सदिशीकरण और इसके विपरीत में परिवर्तित करते हैं, जिन्हें क्रमशः [[दोहराव मैट्रिक्स|डुप्लीकेशन आव्यूह]] और [[ उन्मूलन मैट्रिक्स |एलिमिनेशन आव्यूह]] कहा जाता है। | ||
==प्रोग्रामिंग लैंग्वेज == | |||
मैट्रिसेस प्रयुक्त करने वाली प्रोग्रामिंग लैंग्वेज में सदिशीकरण के आसान साधन हो सकते हैं। मैटलैब/[[जीएनयू ऑक्टेव]] में आव्यूह <code>A</code> को <code>A(:)</code>. द्वारा वेक्टरकृत किया जा सकता है जीएनयू ऑक्टेव क्रमश <code>vec(A)</code> और <code>vech(A)</code> सदिशीकरण और अर्ध-सदिशीकरण की भी अनुमति देता है । [[जूलिया (प्रोग्रामिंग भाषा)|जूलिया (प्रोग्रामिंग लैंग्वेज )]] के पास <code>vec(A)</code> है [[पायथन (प्रोग्रामिंग भाषा)|पायथन (प्रोग्रामिंग लैंग्वेज )]] में [[NumPy]] सरणियाँ प्रयुक्त होती हैं ,<ref group="note" name="RowMajor" /> जबकि [[आर प्रोग्रामिंग भाषा|आर प्रोग्रामिंग]] लैंग्वेज में वांछित प्रभाव इसके माध्यम से प्राप्त किया जा सकता है आर प्रोग्रामिंग लैंग्वेज में, फ़ंक्शन <code>vec()</code> पैकेज 'ks' सदिशीकरण और कार्य की अनुमति देता है <code>vech()</code> 'ks' और 'sn' दोनों पैकेजों में प्रयुक्त किया गया अर्ध-सदिशीकरण की अनुमति देता है।<ref>{{cite web |first=Tarn |last=Duong |date=2018 |title=ks: Kernel Smoothing |work=R package version 1.11.0 |url=https://cran.r-project.org/package=ks }}</ref><ref>{{cite web |first=Adelchi |last=Azzalini |date=2017 |title=The R package 'sn': The Skew-Normal and Related Distributions such as the Skew-t |work=R package version 1.5.1 |url=https://cran.r-project.org/package=sn }}</ref><ref>{{cite book |first=Hrishikesh D. |last=Vinod |title=Hands-on Matrix Algebra Using R: Active and Motivated Learning with Applications |location=Singapore |publisher=World Scientific |year=2011 |isbn=978-981-4313-69-8 |chapter=Simultaneous Reduction and Vec Stacking |pages=233–248 |via=[[Google Books]] |chapter-url=https://books.google.com/books?id=oXzkJwutS1UC&pg=PA233 }}</ref> | |||
==टिप्पणियाँ== | ==टिप्पणियाँ== | ||
{{reflist|group=note}} | {{reflist|group=note}} | ||
==यह भी देखें== | ==यह भी देखें== | ||
* [[दोहराव और उन्मूलन मैट्रिक्स]] | * [[दोहराव और उन्मूलन मैट्रिक्स|डुप्लीकेशन]] [[दोहराव और उन्मूलन मैट्रिक्स|और]] [[ उन्मूलन मैट्रिक्स |एलिमिनेशन]] आव्यूह | ||
* [[वोइगट संकेतन]] | * [[वोइगट संकेतन|वोइगट नोटेशन]] | ||
* [[पैक्ड स्टोरेज मैट्रिक्स]] | * [[पैक्ड स्टोरेज मैट्रिक्स|पैक्ड स्टोरेज आव्यूह]] | ||
* [[पंक्ति-प्रमुख क्रम]] | * [[पंक्ति-प्रमुख क्रम]] या स्तंभ-प्रमुख क्रम | ||
*[[मैट्रिकाइजेशन]] | *[[मैट्रिकाइजेशन]] | ||
Line 91: | Line 81: | ||
{{Reflist}} | {{Reflist}} | ||
*Jan R. Magnus and Heinz Neudecker (1999), ''Matrix Differential Calculus with Applications in Statistics and Econometrics'', 2nd Ed., Wiley. {{isbn|0-471-98633-X}}. | *Jan R. Magnus and Heinz Neudecker (1999), ''Matrix Differential Calculus with Applications in Statistics and Econometrics'', 2nd Ed., Wiley. {{isbn|0-471-98633-X}}. | ||
[[Category: | [[Category:Articles with hatnote templates targeting a nonexistent page]] | ||
[[Category:Created On 24/07/2023]] | [[Category:Created On 24/07/2023]] | ||
[[Category:Lua-based templates]] | |||
[[Category:Machine Translated Page]] | |||
[[Category:Pages with script errors]] | |||
[[Category:Short description with empty Wikidata description]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:Templates that add a tracking category]] | |||
[[Category:Templates that generate short descriptions]] | |||
[[Category:Templates using TemplateData]] | |||
[[Category:मैट्रिसेस]] | |||
[[Category:लीनियर अलजेब्रा]] |
Latest revision as of 14:01, 14 August 2023
गणित में, विशेष रूप से रैखिक बीजगणित और आव्यूह (गणित) में, आव्यूह (गणित) का सदिशीकरण रैखिक परिवर्तन है जो आव्यूह को सदिश (गणित और भौतिकी) में परिवर्तित करता है। विशेष रूप से a m × n आव्यूह A का सदिशीकरण, जिसे vec(A) कहा जाता है, mn × 1 स्तंभ सदिश है जो आव्यूह A के स्तंभों को एक दूसरे के ऊपर रखकर प्राप्त किया जाता है:
यहां, A की i-वीं पंक्ति और j-वें स्तंभ में अवयव का प्रतिनिधित्व करता है, और सुपरस्क्रिप्ट ट्रांसपोज़ को दर्शाता है। सदिशीकरण, इनके (अर्थात्, आव्यूहों और सदिशों के) मध्य समरूपता को सदिश स्थानों के रूप में समन्वयित करके व्यक्त करता है।
उदाहरण के लिए, 2×2 आव्यूह ,के लिए सदिशीकरण है .
A के सदिशीकरण और उसके स्थानान्तरण के सदिशीकरण के मध्य संबंध कम्यूटेशन आव्यूह द्वारा दिया गया है।
क्रोनकर उत्पाद के साथ संगतता
आव्यूह गुणन को आव्यूह पर रैखिक परिवर्तन के रूप में व्यक्त करने के लिए क्रोनेकर उत्पाद के साथ सदिशीकरण का अधिकांशतः उपयोग किया जाता है। विशेष रूप से,
दो अन्य उपयोगी सूत्रीकरण हैं:
हैडामर्ड उत्पादों के साथ संगतता
सदिशीकरण एक बीजगणित समरूपता है जो हैडामर्ड (एंट्रीवाइज) उत्पाद के साथ n × n आव्यूह के स्थान से लेकर हैडामर्ड उत्पाद के साथ Cn2 तक है:
आंतरिक उत्पादों के साथ संगतता
सदिशीकरण आव्यूह मानदंड फ्रोबेनियस मानदंड (या हिल्बर्ट-श्मिट) आंतरिक उत्पाद के साथ n×n आव्यूह के स्थान से 'Cn2' तक एकात्मक परिवर्तन है।:
एक रैखिक योग के रूप में सदिशीकरण
आव्यूह सदिशीकरण ऑपरेशन को एक रैखिक योग के रूप में लिखा जा सकता है। मान लीजिए X एक m × n आव्यूह है जिसे हम सदिश करना चाहते हैं, और ei को n-डायमेंशनल स्पेस के लिए i-th कैनोनिकल बेस सदिश होने दें, जो कि है। मान लीजिए Bi एक (mn) × m ब्लॉक आव्यूह है जिसे इस प्रकार परिभाषित किया गया है:
फिर X का सदिश संस्करण इस प्रकार व्यक्त किया जा सकता है:
वैकल्पिक रूप से, रैखिक योग को क्रोनकर उत्पाद का उपयोग करके व्यक्त किया जा सकता है:
अर्ध-सदिशीकरण
एक सममित आव्यूह A के लिए, सदिश vec(A) में आवश्यकता से अधिक जानकारी होती है, क्योंकि आव्यूह पूरी तरह से निचले त्रिकोणीय आव्यूह भाग के साथ समरूपता द्वारा निर्धारित होता है, अर्थात, n(n + 1)/2 मुख्य विकर्ण पर और नीचे प्रविष्टियाँ ऐसे आव्यूह के लिए, अर्ध-सदिशीकरण कभी-कभी सदिशीकरण की तुलना में अधिक उपयोगी होता है। एक सममित n × n आव्यूह A का अर्ध-सदिशीकरण, vec (A), n(n + 1)/2 × 1 स्तंभ सदिश है जो A के केवल निचले त्रिकोणीय भाग को सदिश करके प्राप्त किया जाता है:
ऐसे अद्वितीय आव्यूह उपस्थित हैं जो आव्यूह के आधे-सदिशीकरण को उसके सदिशीकरण और इसके विपरीत में परिवर्तित करते हैं, जिन्हें क्रमशः डुप्लीकेशन आव्यूह और एलिमिनेशन आव्यूह कहा जाता है।
प्रोग्रामिंग लैंग्वेज
मैट्रिसेस प्रयुक्त करने वाली प्रोग्रामिंग लैंग्वेज में सदिशीकरण के आसान साधन हो सकते हैं। मैटलैब/जीएनयू ऑक्टेव में आव्यूह A
को A(:)
. द्वारा वेक्टरकृत किया जा सकता है जीएनयू ऑक्टेव क्रमश vec(A)
और vech(A)
सदिशीकरण और अर्ध-सदिशीकरण की भी अनुमति देता है । जूलिया (प्रोग्रामिंग लैंग्वेज ) के पास vec(A)
है पायथन (प्रोग्रामिंग लैंग्वेज ) में NumPy सरणियाँ प्रयुक्त होती हैं ,[note 1] जबकि आर प्रोग्रामिंग लैंग्वेज में वांछित प्रभाव इसके माध्यम से प्राप्त किया जा सकता है आर प्रोग्रामिंग लैंग्वेज में, फ़ंक्शन vec()
पैकेज 'ks' सदिशीकरण और कार्य की अनुमति देता है vech()
'ks' और 'sn' दोनों पैकेजों में प्रयुक्त किया गया अर्ध-सदिशीकरण की अनुमति देता है।[2][3][4]
टिप्पणियाँ
यह भी देखें
- डुप्लीकेशन और एलिमिनेशन आव्यूह
- वोइगट नोटेशन
- पैक्ड स्टोरेज आव्यूह
- पंक्ति-प्रमुख क्रम या स्तंभ-प्रमुख क्रम
- मैट्रिकाइजेशन
संदर्भ
- ↑ Macedo, H. D.; Oliveira, J. N. (2013). "Typing Linear Algebra: A Biproduct-oriented Approach". Science of Computer Programming. 78 (11): 2160–2191. arXiv:1312.4818. doi:10.1016/j.scico.2012.07.012. S2CID 9846072.
- ↑ Duong, Tarn (2018). "ks: Kernel Smoothing". R package version 1.11.0.
- ↑ Azzalini, Adelchi (2017). "The R package 'sn': The Skew-Normal and Related Distributions such as the Skew-t". R package version 1.5.1.
- ↑ Vinod, Hrishikesh D. (2011). "Simultaneous Reduction and Vec Stacking". Hands-on Matrix Algebra Using R: Active and Motivated Learning with Applications. Singapore: World Scientific. pp. 233–248. ISBN 978-981-4313-69-8 – via Google Books.
- Jan R. Magnus and Heinz Neudecker (1999), Matrix Differential Calculus with Applications in Statistics and Econometrics, 2nd Ed., Wiley. ISBN 0-471-98633-X.