7

How do I create a Toeplitz matrix like the following in LaTeX?

matrix

0

4 Answers 4

11
\documentclass{article}
\usepackage{mathtools}
\begin{document}

\[ %\arraycolsep=4pt
 G = 
 \begin{bmatrix*}[r]
    1 \\
    2&1\\
   -1&2&1\\
     &-1&2&1\\
     &&-1&2&1\\
     &&&-1&2&1\\
     &&&&&&\ddots\\
     &&&&&&&\ddots\\
     &&&&&&&&\ddots\\
     &&&&&&&&&1
  \end{bmatrix*}
\]
\end{document}

enter image description here

1
  • 1
    I think the last row must contain all non-zero elements: -1 2 1 Commented Apr 28, 2014 at 9:00
8

Here you go:

\documentclass{article}
\pagestyle{empty}% for cropping
\usepackage{amsmath}
\begin{document}
\begin{equation*}
  G =
  \begin{bmatrix}
    1 \cr
    2&1\cr
    -1&2&1\cr
    &-1&2&1\cr
    &&-1&2&1\cr
    &&&-1&2&1\cr
    &&&&&&\ddots\cr
    &&&&&&&\ddots\cr
    &&&&&&&&\ddots\cr
    &&&&&&&&&1\cr
  \end{bmatrix}
\end{equation*}
\end{document}

enter image description here

To get nicer alignment of the minus-signs you could use an array with right-aligned columns

\documentclass{article}
\pagestyle{empty}% for cropping
\usepackage{amsmath}
\begin{document}
\begin{equation*}
  G =
  \left[
    \begin{array}{*{10}r}
      1 \cr
      2&1\cr
      -1&2&1\cr
      &-1&2&1\cr
      &&-1&2&1\cr
      &&&-1&2&1\cr
      &&&&&&\ddots\cr
      &&&&&&&\ddots\cr
      &&&&&&&&\ddots\cr
      &&&&&&&&&1\cr
    \end{array}
  \right]
\end{equation*}
\end{document}

enter image description here

3
  • 3
    to get the right alignment, it's simpler to load the mathtools package and write: begin{bmatrix*}[r] … \end{bmatrix*}. Commented Apr 28, 2014 at 8:36
  • Is there a reason to use \cr instead of `\`? Commented Apr 28, 2014 at 14:53
  • 1
    @Manuel Because I often use plain TeX and there is no \\. In this case both are equivalent. Also \cr is primitive, hence it doesn't need to get expanded, you may save half a nano-second by that. Commented Apr 28, 2014 at 15:06
4

Although late to the race my entry is presented below:

\documentclass[12pt]{article}
\usepackage{mathtools}
\usepackage{amssymb}

\begin {document}
\begin{equation}
\begin{pmatrix}
2 & -1 & 0 & \cdots & \cdots & \cdots & \cdots & 0\\
-1 & 2 & -1 & 0 & & & & \vdots\\
0 & -1 & 2 & -1 & \ddots & & & \vdots\\
\vdots & 0 & \ddots & \ddots & \ddots & \ddots & & \vdots\\
\vdots & & \ddots & \ddots & \ddots & \ddots & 0 & \vdots\\
\vdots & & & \ddots & -1 & 2 & -1 & 0\\
\vdots & & & & 0 & -1 & 2 & -1\\
0 & \cdots & \cdots  & \cdots & \cdots & 0 & -1 & 2\\
\end{pmatrix}
\end{equation}
\end{document}

enter image description here

10
  • @Mico Sure, here is a reference ece.umn.edu/~mihailo/software/lqrsp/mass_spring.html Commented Feb 21, 2015 at 23:47
  • The matrix G is also referred to as a band matrix. Commented Feb 21, 2015 at 23:48
  • Your proposed solution produces a symmetric matrix, whereas the OP appears to want to produce an asymmetric matrix with all elements above the diagonal equal to zero. Commented Feb 22, 2015 at 1:22
  • @Mico My entry is final. Commented Feb 22, 2015 at 1:56
  • 1
    You can do whatever you want. An answer is usually considered to be more helpful, though, if it addresses the actual question that's been posed, rather than some other problem. Commented Feb 22, 2015 at 3:05
1

With {bNiceMatrix} of nicematrix. You need several compilations.

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

\[\renewcommand{\arraystretch}{1.3}
\setlength{\arraycolsep}{4pt}
\begin{bNiceMatrix}[columns-width=auto,xdots/shorten=6pt]
1 \\
2  & 1 \\
-1 & 2  & 1 \\
   & -1 & 2  & 1 \\
   &    & -1 & 2 & 1 \\
   &    &    & \Ddots[shorten-end=0pt] & \Ddots & \Ddots[draw-first] \\
\\
\\
   &    &    &   &   & & -1 & 2 & 1 \\
\end{bNiceMatrix}
\]

\end{document}

Output of the above code

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.