具有随机项的带状矩阵

具有随机项的带状矩阵

获得的最佳方式是什么带状矩阵用 LaTeX 中的随机条目?我说的随机是指:每次编译后它都应该给我不同的条目。

答案1

你可以使用任何随机数生成器函数。下面是使用内置函数的示例pgf

在此处输入图片描述

代码:

\documentclass{article}
\usepackage{amsmath}
\usepackage{pgf}


\newcommand{\Rand}{\pgfmathparse{random(100)}\pgfmathresult}%

\newcommand{\NewMatrix}{%
\begin{bmatrix}
  \Rand & 0     & 0       \\
  0     & \Rand &  0      \\
  0     & 0     & \Rand 0 \\
\end{bmatrix}
}%

\begin{document}
$\NewMatrix$, $\NewMatrix$, $\NewMatrix$
\end{document}

答案2

根据彼得的建议,以下是我编写的用于生成随机矩阵和随机带状矩阵的代码。

$$\NewMatrix{m}{n}$$m生成一个大小为的矩阵n

$$\BandMatrix{m}{n}{b}$$m产生一个大小为 、n带宽为 b的矩阵。

代码:

\documentclass{article}
\usepackage{amsmath}
\usepackage{forloop}
\usepackage{pgf}
\usepackage{ifthen}

\newcommand{\Rand}{\pgfmathparse{random(10)}\pgfmathresult}%

\newcounter{row_number}
\newcounter{col_number}
\newcounter{band}

\newcommand{\NewMatrix}[2]{%
\begin{bmatrix}
  \forloop{row_number}{1}{\value{row_number} < #1}{%%
    \forloop{col_number}{1}{\value{col_number} < #2}{%%%
        \Rand & 
    }%%%
    \Rand
    \\
  }%%
  \forloop{col_number}{1}{\value{col_number} < #2}{%%%%
        \Rand & 
    }%%%%
    \Rand
\end{bmatrix}
}%

\newcommand{\BandMatrix}[3]{%
\begin{bmatrix}
  \forloop{row_number}{1}{\value{row_number} < #1}{%%
    \forloop{col_number}{1}{\value{col_number} < #2}{%%%
        \ifthenelse{\value{col_number} < \numexpr\value{row_number} + #3 + 1 \and \value{col_number} > \numexpr\value{row_number} - #3 - 1}{\Rand &}{0 &}
    }%%%
    \ifthenelse{\value{col_number} < \numexpr\value{row_number} + #3 + 1 \and \value{col_number} > \numexpr\value{row_number} - #3 - 1}{\Rand \\}{0 \\}
  }%%
  \forloop{col_number}{1}{\value{col_number} < #2}{%%%%
        \ifthenelse{\value{col_number} < \numexpr\value{row_number} + #3 + 1 \and \value{col_number} > \numexpr\value{row_number} - #3 - 1}{\Rand &}{0 &}
    }%%%%
    \ifthenelse{\value{col_number} < \numexpr\value{row_number} + #3 + 1 \and \value{col_number} > \numexpr\value{row_number} - #3 - 1}{\Rand}{0}
\end{bmatrix}
}%

\begin{document}
$$\NewMatrix{11}{4}$$
$$\BandMatrix{10}{8}{3}$$
\end{document}

相关内容