Efficiently computing symmetric Toeplitz matrix such that $Tx=y$












2












$begingroup$


Let $x,y in mathbb{R}^N$ be known vectors. I am looking for an efficient means to compute the coefficients of the symmetric Toeplitz matrix
$$
T = begin{bmatrix}
c_0 & c_1 & ldots & c_{N-1} \
c_1 & c_0 & ldots & c_{N-2} \
vdots & vdots & ddots & vdots \
c_{N-1} & c_{N-2} & ldots & c_0
end{bmatrix}
$$
which satisfies $Tx=y$. Tests in Mathematica seem to indicate that all $c_i$ can be uniquely determined from $x$ and $y$, but I cannot find a generic algorithm to do this.










share|cite|improve this question









$endgroup$

















    2












    $begingroup$


    Let $x,y in mathbb{R}^N$ be known vectors. I am looking for an efficient means to compute the coefficients of the symmetric Toeplitz matrix
    $$
    T = begin{bmatrix}
    c_0 & c_1 & ldots & c_{N-1} \
    c_1 & c_0 & ldots & c_{N-2} \
    vdots & vdots & ddots & vdots \
    c_{N-1} & c_{N-2} & ldots & c_0
    end{bmatrix}
    $$
    which satisfies $Tx=y$. Tests in Mathematica seem to indicate that all $c_i$ can be uniquely determined from $x$ and $y$, but I cannot find a generic algorithm to do this.










    share|cite|improve this question









    $endgroup$















      2












      2








      2





      $begingroup$


      Let $x,y in mathbb{R}^N$ be known vectors. I am looking for an efficient means to compute the coefficients of the symmetric Toeplitz matrix
      $$
      T = begin{bmatrix}
      c_0 & c_1 & ldots & c_{N-1} \
      c_1 & c_0 & ldots & c_{N-2} \
      vdots & vdots & ddots & vdots \
      c_{N-1} & c_{N-2} & ldots & c_0
      end{bmatrix}
      $$
      which satisfies $Tx=y$. Tests in Mathematica seem to indicate that all $c_i$ can be uniquely determined from $x$ and $y$, but I cannot find a generic algorithm to do this.










      share|cite|improve this question









      $endgroup$




      Let $x,y in mathbb{R}^N$ be known vectors. I am looking for an efficient means to compute the coefficients of the symmetric Toeplitz matrix
      $$
      T = begin{bmatrix}
      c_0 & c_1 & ldots & c_{N-1} \
      c_1 & c_0 & ldots & c_{N-2} \
      vdots & vdots & ddots & vdots \
      c_{N-1} & c_{N-2} & ldots & c_0
      end{bmatrix}
      $$
      which satisfies $Tx=y$. Tests in Mathematica seem to indicate that all $c_i$ can be uniquely determined from $x$ and $y$, but I cannot find a generic algorithm to do this.







      linear-algebra matrices algorithms






      share|cite|improve this question













      share|cite|improve this question











      share|cite|improve this question




      share|cite|improve this question










      asked Apr 2 '18 at 1:26









      Steven RobertsSteven Roberts

      132




      132






















          2 Answers
          2






          active

          oldest

          votes


















          0












          $begingroup$

          Are you sure this is always possible with a symmetric Toeplitz matrix? Take for example $x = [1, 1, 0, ldots, 0]^T$. Then the first two elements of $T cdot x$ are given by $c_0 + c_1$ and $c_1 + c_0$. Therefore, if $y_0 neq y_1$, there is no solution.



          If you drop the symmetric constraint it's easier. For



          $$T = {rm toep}{c} = begin{bmatrix}
          c_0 & 0 & 0 & ldots & 0 \
          c_1 & c_0 & 0 & ldots & 0 \
          c_2 & c_1 & c_0 & ldots & 0 \
          vdots & vdots & vdots & ddots & vdots \
          c_{N-1} & c_{N-2} & c_{N-3}& ldots & c_0
          end{bmatrix},$$
          we have ${rm toep}{c} cdot x = {rm toep}{x} cdot c$ due to the commutativity of the (truncated) convolution. To see this, just write out the product: $y_0 = c_0 x_0$, $y_1 = c_0 x_1 + c_1 x_0$, $y_2 = c_0 x_2 + c_1 x_1 + c_2 x_0$ and so on, you can clearly see how $c$ and $x$ are interchangeable. Then, it is easy to find $c$ via $c = {rm toep}{x}^{-1} cdot y$. Note that since the Toeplitz matrix is diagonal, this can be done efficiently. We have $c_0 = frac{y_0}{x_0}$, $c_1 = frac{y_1 - c_0 x_1}{x_0}$, etc.



          If you must do it with symmetrix Toeplitz matrices (which will not always work), write out your products and isolate the c's. You'll notice that $T = c_0 I + sum_{n=1}^{N-1} c_n (D_n + D_n^T)$, where $D_n$ is a matrix with ones on its $n$-th diagonal (note that $D_n = D_1^n$ for $ngeq 1$). Therefore, $T x = c_0 x + sum_{n=1}^{N-1} c_n (D_n + D_n^T)x$, which we can write as $T x = X cdot c$, where $$X=begin{bmatrix} x & (D_1 + D_1^T)x & ldots & (D_{N-1} + D_{N-1}^T)xend{bmatrix}.$$ This allows to solve for $c$ via $c = X^{-1} y$, provided that $X$ is invertible (it is not for my example given in the beginning of this post).






          share|cite|improve this answer











          $endgroup$





















            0












            $begingroup$

            You are looking for a $c$ such that $y = c ast x,$ where $ast$ denotes (cyclic) convolution. Take Fourier transforms (DFT, in this case) of both sides, to get
            $widehat{y} = widehat{c} widehat{x},$ where the multiplication is pointwise.It follows that you can compute $c$ given $x, y$ as long as the compatibility condition that $widehat{y}_i$ is zero if $widehat{x}_i$ is.






            share|cite|improve this answer









            $endgroup$









            • 1




              $begingroup$
              I didn't think to diagonalize $T$. Doesn't this only work, though, if $T$ is circulant, not symmetric Toeplitz?
              $endgroup$
              – Steven Roberts
              Apr 2 '18 at 3:12












            Your Answer





            StackExchange.ifUsing("editor", function () {
            return StackExchange.using("mathjaxEditing", function () {
            StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
            StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
            });
            });
            }, "mathjax-editing");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "69"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            noCode: true, onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f2718178%2fefficiently-computing-symmetric-toeplitz-matrix-such-that-tx-y%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0












            $begingroup$

            Are you sure this is always possible with a symmetric Toeplitz matrix? Take for example $x = [1, 1, 0, ldots, 0]^T$. Then the first two elements of $T cdot x$ are given by $c_0 + c_1$ and $c_1 + c_0$. Therefore, if $y_0 neq y_1$, there is no solution.



            If you drop the symmetric constraint it's easier. For



            $$T = {rm toep}{c} = begin{bmatrix}
            c_0 & 0 & 0 & ldots & 0 \
            c_1 & c_0 & 0 & ldots & 0 \
            c_2 & c_1 & c_0 & ldots & 0 \
            vdots & vdots & vdots & ddots & vdots \
            c_{N-1} & c_{N-2} & c_{N-3}& ldots & c_0
            end{bmatrix},$$
            we have ${rm toep}{c} cdot x = {rm toep}{x} cdot c$ due to the commutativity of the (truncated) convolution. To see this, just write out the product: $y_0 = c_0 x_0$, $y_1 = c_0 x_1 + c_1 x_0$, $y_2 = c_0 x_2 + c_1 x_1 + c_2 x_0$ and so on, you can clearly see how $c$ and $x$ are interchangeable. Then, it is easy to find $c$ via $c = {rm toep}{x}^{-1} cdot y$. Note that since the Toeplitz matrix is diagonal, this can be done efficiently. We have $c_0 = frac{y_0}{x_0}$, $c_1 = frac{y_1 - c_0 x_1}{x_0}$, etc.



            If you must do it with symmetrix Toeplitz matrices (which will not always work), write out your products and isolate the c's. You'll notice that $T = c_0 I + sum_{n=1}^{N-1} c_n (D_n + D_n^T)$, where $D_n$ is a matrix with ones on its $n$-th diagonal (note that $D_n = D_1^n$ for $ngeq 1$). Therefore, $T x = c_0 x + sum_{n=1}^{N-1} c_n (D_n + D_n^T)x$, which we can write as $T x = X cdot c$, where $$X=begin{bmatrix} x & (D_1 + D_1^T)x & ldots & (D_{N-1} + D_{N-1}^T)xend{bmatrix}.$$ This allows to solve for $c$ via $c = X^{-1} y$, provided that $X$ is invertible (it is not for my example given in the beginning of this post).






            share|cite|improve this answer











            $endgroup$


















              0












              $begingroup$

              Are you sure this is always possible with a symmetric Toeplitz matrix? Take for example $x = [1, 1, 0, ldots, 0]^T$. Then the first two elements of $T cdot x$ are given by $c_0 + c_1$ and $c_1 + c_0$. Therefore, if $y_0 neq y_1$, there is no solution.



              If you drop the symmetric constraint it's easier. For



              $$T = {rm toep}{c} = begin{bmatrix}
              c_0 & 0 & 0 & ldots & 0 \
              c_1 & c_0 & 0 & ldots & 0 \
              c_2 & c_1 & c_0 & ldots & 0 \
              vdots & vdots & vdots & ddots & vdots \
              c_{N-1} & c_{N-2} & c_{N-3}& ldots & c_0
              end{bmatrix},$$
              we have ${rm toep}{c} cdot x = {rm toep}{x} cdot c$ due to the commutativity of the (truncated) convolution. To see this, just write out the product: $y_0 = c_0 x_0$, $y_1 = c_0 x_1 + c_1 x_0$, $y_2 = c_0 x_2 + c_1 x_1 + c_2 x_0$ and so on, you can clearly see how $c$ and $x$ are interchangeable. Then, it is easy to find $c$ via $c = {rm toep}{x}^{-1} cdot y$. Note that since the Toeplitz matrix is diagonal, this can be done efficiently. We have $c_0 = frac{y_0}{x_0}$, $c_1 = frac{y_1 - c_0 x_1}{x_0}$, etc.



              If you must do it with symmetrix Toeplitz matrices (which will not always work), write out your products and isolate the c's. You'll notice that $T = c_0 I + sum_{n=1}^{N-1} c_n (D_n + D_n^T)$, where $D_n$ is a matrix with ones on its $n$-th diagonal (note that $D_n = D_1^n$ for $ngeq 1$). Therefore, $T x = c_0 x + sum_{n=1}^{N-1} c_n (D_n + D_n^T)x$, which we can write as $T x = X cdot c$, where $$X=begin{bmatrix} x & (D_1 + D_1^T)x & ldots & (D_{N-1} + D_{N-1}^T)xend{bmatrix}.$$ This allows to solve for $c$ via $c = X^{-1} y$, provided that $X$ is invertible (it is not for my example given in the beginning of this post).






              share|cite|improve this answer











              $endgroup$
















                0












                0








                0





                $begingroup$

                Are you sure this is always possible with a symmetric Toeplitz matrix? Take for example $x = [1, 1, 0, ldots, 0]^T$. Then the first two elements of $T cdot x$ are given by $c_0 + c_1$ and $c_1 + c_0$. Therefore, if $y_0 neq y_1$, there is no solution.



                If you drop the symmetric constraint it's easier. For



                $$T = {rm toep}{c} = begin{bmatrix}
                c_0 & 0 & 0 & ldots & 0 \
                c_1 & c_0 & 0 & ldots & 0 \
                c_2 & c_1 & c_0 & ldots & 0 \
                vdots & vdots & vdots & ddots & vdots \
                c_{N-1} & c_{N-2} & c_{N-3}& ldots & c_0
                end{bmatrix},$$
                we have ${rm toep}{c} cdot x = {rm toep}{x} cdot c$ due to the commutativity of the (truncated) convolution. To see this, just write out the product: $y_0 = c_0 x_0$, $y_1 = c_0 x_1 + c_1 x_0$, $y_2 = c_0 x_2 + c_1 x_1 + c_2 x_0$ and so on, you can clearly see how $c$ and $x$ are interchangeable. Then, it is easy to find $c$ via $c = {rm toep}{x}^{-1} cdot y$. Note that since the Toeplitz matrix is diagonal, this can be done efficiently. We have $c_0 = frac{y_0}{x_0}$, $c_1 = frac{y_1 - c_0 x_1}{x_0}$, etc.



                If you must do it with symmetrix Toeplitz matrices (which will not always work), write out your products and isolate the c's. You'll notice that $T = c_0 I + sum_{n=1}^{N-1} c_n (D_n + D_n^T)$, where $D_n$ is a matrix with ones on its $n$-th diagonal (note that $D_n = D_1^n$ for $ngeq 1$). Therefore, $T x = c_0 x + sum_{n=1}^{N-1} c_n (D_n + D_n^T)x$, which we can write as $T x = X cdot c$, where $$X=begin{bmatrix} x & (D_1 + D_1^T)x & ldots & (D_{N-1} + D_{N-1}^T)xend{bmatrix}.$$ This allows to solve for $c$ via $c = X^{-1} y$, provided that $X$ is invertible (it is not for my example given in the beginning of this post).






                share|cite|improve this answer











                $endgroup$



                Are you sure this is always possible with a symmetric Toeplitz matrix? Take for example $x = [1, 1, 0, ldots, 0]^T$. Then the first two elements of $T cdot x$ are given by $c_0 + c_1$ and $c_1 + c_0$. Therefore, if $y_0 neq y_1$, there is no solution.



                If you drop the symmetric constraint it's easier. For



                $$T = {rm toep}{c} = begin{bmatrix}
                c_0 & 0 & 0 & ldots & 0 \
                c_1 & c_0 & 0 & ldots & 0 \
                c_2 & c_1 & c_0 & ldots & 0 \
                vdots & vdots & vdots & ddots & vdots \
                c_{N-1} & c_{N-2} & c_{N-3}& ldots & c_0
                end{bmatrix},$$
                we have ${rm toep}{c} cdot x = {rm toep}{x} cdot c$ due to the commutativity of the (truncated) convolution. To see this, just write out the product: $y_0 = c_0 x_0$, $y_1 = c_0 x_1 + c_1 x_0$, $y_2 = c_0 x_2 + c_1 x_1 + c_2 x_0$ and so on, you can clearly see how $c$ and $x$ are interchangeable. Then, it is easy to find $c$ via $c = {rm toep}{x}^{-1} cdot y$. Note that since the Toeplitz matrix is diagonal, this can be done efficiently. We have $c_0 = frac{y_0}{x_0}$, $c_1 = frac{y_1 - c_0 x_1}{x_0}$, etc.



                If you must do it with symmetrix Toeplitz matrices (which will not always work), write out your products and isolate the c's. You'll notice that $T = c_0 I + sum_{n=1}^{N-1} c_n (D_n + D_n^T)$, where $D_n$ is a matrix with ones on its $n$-th diagonal (note that $D_n = D_1^n$ for $ngeq 1$). Therefore, $T x = c_0 x + sum_{n=1}^{N-1} c_n (D_n + D_n^T)x$, which we can write as $T x = X cdot c$, where $$X=begin{bmatrix} x & (D_1 + D_1^T)x & ldots & (D_{N-1} + D_{N-1}^T)xend{bmatrix}.$$ This allows to solve for $c$ via $c = X^{-1} y$, provided that $X$ is invertible (it is not for my example given in the beginning of this post).







                share|cite|improve this answer














                share|cite|improve this answer



                share|cite|improve this answer








                edited Dec 14 '18 at 14:12

























                answered Dec 14 '18 at 12:25









                FlorianFlorian

                1,5772721




                1,5772721























                    0












                    $begingroup$

                    You are looking for a $c$ such that $y = c ast x,$ where $ast$ denotes (cyclic) convolution. Take Fourier transforms (DFT, in this case) of both sides, to get
                    $widehat{y} = widehat{c} widehat{x},$ where the multiplication is pointwise.It follows that you can compute $c$ given $x, y$ as long as the compatibility condition that $widehat{y}_i$ is zero if $widehat{x}_i$ is.






                    share|cite|improve this answer









                    $endgroup$









                    • 1




                      $begingroup$
                      I didn't think to diagonalize $T$. Doesn't this only work, though, if $T$ is circulant, not symmetric Toeplitz?
                      $endgroup$
                      – Steven Roberts
                      Apr 2 '18 at 3:12
















                    0












                    $begingroup$

                    You are looking for a $c$ such that $y = c ast x,$ where $ast$ denotes (cyclic) convolution. Take Fourier transforms (DFT, in this case) of both sides, to get
                    $widehat{y} = widehat{c} widehat{x},$ where the multiplication is pointwise.It follows that you can compute $c$ given $x, y$ as long as the compatibility condition that $widehat{y}_i$ is zero if $widehat{x}_i$ is.






                    share|cite|improve this answer









                    $endgroup$









                    • 1




                      $begingroup$
                      I didn't think to diagonalize $T$. Doesn't this only work, though, if $T$ is circulant, not symmetric Toeplitz?
                      $endgroup$
                      – Steven Roberts
                      Apr 2 '18 at 3:12














                    0












                    0








                    0





                    $begingroup$

                    You are looking for a $c$ such that $y = c ast x,$ where $ast$ denotes (cyclic) convolution. Take Fourier transforms (DFT, in this case) of both sides, to get
                    $widehat{y} = widehat{c} widehat{x},$ where the multiplication is pointwise.It follows that you can compute $c$ given $x, y$ as long as the compatibility condition that $widehat{y}_i$ is zero if $widehat{x}_i$ is.






                    share|cite|improve this answer









                    $endgroup$



                    You are looking for a $c$ such that $y = c ast x,$ where $ast$ denotes (cyclic) convolution. Take Fourier transforms (DFT, in this case) of both sides, to get
                    $widehat{y} = widehat{c} widehat{x},$ where the multiplication is pointwise.It follows that you can compute $c$ given $x, y$ as long as the compatibility condition that $widehat{y}_i$ is zero if $widehat{x}_i$ is.







                    share|cite|improve this answer












                    share|cite|improve this answer



                    share|cite|improve this answer










                    answered Apr 2 '18 at 2:17









                    Igor RivinIgor Rivin

                    16k11234




                    16k11234








                    • 1




                      $begingroup$
                      I didn't think to diagonalize $T$. Doesn't this only work, though, if $T$ is circulant, not symmetric Toeplitz?
                      $endgroup$
                      – Steven Roberts
                      Apr 2 '18 at 3:12














                    • 1




                      $begingroup$
                      I didn't think to diagonalize $T$. Doesn't this only work, though, if $T$ is circulant, not symmetric Toeplitz?
                      $endgroup$
                      – Steven Roberts
                      Apr 2 '18 at 3:12








                    1




                    1




                    $begingroup$
                    I didn't think to diagonalize $T$. Doesn't this only work, though, if $T$ is circulant, not symmetric Toeplitz?
                    $endgroup$
                    – Steven Roberts
                    Apr 2 '18 at 3:12




                    $begingroup$
                    I didn't think to diagonalize $T$. Doesn't this only work, though, if $T$ is circulant, not symmetric Toeplitz?
                    $endgroup$
                    – Steven Roberts
                    Apr 2 '18 at 3:12


















                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Mathematics Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    Use MathJax to format equations. MathJax reference.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f2718178%2fefficiently-computing-symmetric-toeplitz-matrix-such-that-tx-y%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    How to change which sound is reproduced for terminal bell?

                    Can I use Tabulator js library in my java Spring + Thymeleaf project?

                    Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents