高斯消元法

高斯消元法

我想演示如下所示的高斯消元法/高斯-乔丹法示例。目前我有一些喜欢的东西。

  • 各个数组之间每列的宽度相同。
  • 行运算的符号与我使用的教科书一致。
  • 步骤之间有明显的断续。
  • 我不需要进行大量的手动调整。

然而,我也想改变一些事情。

  • 必须使用 \\[3pt] 而不是 \\ 来确保间距一致,并且相邻行上的分数不会相互冲突。
  • 在一个较长的示例中(如下所示),步骤序列不能跨页,这会导致数组超出页面底部,除非我手动插入一个分隔符(这可能会弄乱一致的列宽)。
  • 获得矩阵之间的水平线的一种奇怪的方法。
  • 我通常更喜欢在矩阵周围使用括号。
  • 右边框是以一种非常黑客的方式实现的。

任何关于如何在保留我喜欢的方面的同时实施这些更改的建议都将不胜感激。我知道这个gauss包,但我不确定我是否可以使用它来将东西放入“喜欢”列表中。

\documentclass{article}

\begin{document}

\[
    \begin{array}{rr@{}|rrrrrrr|l}
        & & 2 & 1 & 1 & 3 & 0 & 4 & 1
        & \frac{1}{2} R_{1}
        \\[3pt]
        & & 4 & 2 & 4 & 4 & 1 & 5 & 5
        \\[3pt]
        & & 2 & 1 & 3 & 1 & 0 & 4 & 3
        \\[3pt]
        & & 6 & 3 & 4 & 8 & 1 & 9 & 5
        \\[3pt]
        & & 0 & 0 & 3 & -3 & 0 & 0 & 3
        \\[3pt]
        & & 8 & 4 & 2 & 14 & 1 & 13 & 3
        \\ \\[-1em] \hline \\[-1em]
        %%%%%%%%%%%%%%%%%%%%%%%%%
        & & 1 & \frac{1}{2} & \frac{1}{2} & \frac{3}{2} & 0 & 2 & \frac{1}{2}
        \\[3pt]
        & & 4 & 2 & 4 & 4 & 1 & 5 & 5
        & R_{2} - 4 R_{1}
        \\[3pt]
        & & 2 & 1 & 3 & 1 & 0 & 4 & 3
        & R_{3} - 2 R_{1}
        \\[3pt]
        & & 6 & 3 & 4 & 8 & 1 & 9 & 5
        & R_{4} - 6 R_{1}
        \\[3pt]
        & & 0 & 0 & 3 & -3 & 0 & 0 & 3
        \\[3pt]
        & & 8 & 4 & 2 & 14 & 1 & 13 & 3
        & R_{6} - 8 R_{1}
        \\ \\[-1em] \hline \\[-1em]
        %%%%%%%%%%%%%%%%%%%%%%%%%
        & & 1 & \frac{1}{2} & \frac{1}{2} & \frac{3}{2} & 0 & 2 & \frac{1}{2}
        \\[3pt]
        & & 0 & 0 & 2 & -2 & 1 & -3 & 3
        & \frac{1}{2} R_{2}
        \\[3pt]
        & & 0 & 0 & 2 & -2 & 0 & 0 & 2
        \\[3pt]
        & & 0 & 0 & 1 & -1 & 1 & -3 & 2
        \\[3pt]
        & & 0 & 0 & 3 & -3 & 0 & 0 & 3
        \\[3pt]
        & & 0 & 0 & -2 & 2 & 1 & -3 & -1
        \\ \\[-1em] \hline \\[-1em]
        %%%%%%%%%%%%%%%%%%%%%%%%%
        & & 1 & \frac{1}{2} & \frac{1}{2} & \frac{3}{2} & 0 & 2 & \frac{1}{2}
        & R_{1} - \frac{1}{2} R_{2}
        \\[3pt]
        & & 0 & 0 & 1 & -1 & \frac{1}{2} & -\frac{3}{2} & \frac{3}{2}
        \\[3pt]
        & & 0 & 0 & 2 & -2 & 0 & 0 & 2
        & R_{3} - 2 R_{2}
        \\[3pt]
        & & 0 & 0 & 1 & -1 & 1 & -3 & 2
        & R_{4} - R_{2}
        \\[3pt]
        & & 0 & 0 & 3 & -3 & 0 & 0 & 3
        & R_{5} - 3 R_{2}
        \\[3pt]
        & & 0 & 0 & -2 & 2 & 1 & -3 & -1
        & R_{6} + 2 R_{2}
        \\ \\[-1em] \hline \\[-1em]
        %%%%%%%%%%%%%%%%%%%%%%%%%
        & & 1 & \frac{1}{2} & 0 & 2 & -\frac{1}{4} & \frac{11}{4} & -\frac{1}{4}
        \\[3pt]
        & & 0 & 0 & 1 & -1 & \frac{1}{2} & -\frac{3}{2} & \frac{3}{2}
        \\[3pt]
        & & 0 & 0 & 0 & 0 & -1 & 3 & -1
        & -R_{3}
        \\[3pt]
        & & 0 & 0 & 0 & 0 & \frac{1}{2} & -\frac{3}{2} & \frac{1}{2}
        \\[3pt]
        & & 0 & 0 & 0 & 0 & -\frac{3}{2} & \frac{9}{2} & -\frac{3}{2}
        \\[3pt]
        & & 0 & 0 & 0 & 0 & 2 & -6 & 2
        \\ \\[-1em] \hline \\[-1em]
        %%%%%%%%%%%%%%%%%%%%%%%%%
        & & 1 & \frac{1}{2} & 0 & 2 & -\frac{1}{4} & \frac{11}{4} & -\frac{1}{4}
        & R_{1} + \frac{1}{4} R_{3}
        \\[3pt]
        & & 0 & 0 & 1 & -1 & \frac{1}{2} & -\frac{3}{2} & \frac{3}{2}
        & R_{2} - \frac{1}{2} R_{3}
        \\[3pt]
        & & 0 & 0 & 0 & 0 & 1 & -3 & 1
        \\[3pt]
        & & 0 & 0 & 0 & 0 & \frac{1}{2} & -\frac{3}{2} & \frac{1}{2}
        & R_{4} - \frac{1}{2} R_{3}
        \\[3pt]
        & & 0 & 0 & 0 & 0 & -\frac{3}{2} & \frac{9}{2} & -\frac{3}{2}
        & R_{5} + \frac{3}{2} R_{3}
        \\[3pt]
        & & 0 & 0 & 0 & 0 & 2 & -6 & 2
        & R_{6} - 2 R_{3}
        \\ \\[-1em] \hline \\[-1em]
        %%%%%%%%%%%%%%%%%%%%%%%%%
        & & 1 & \frac{1}{2} & 0 & 2 & 0 & 2 & 0
        \\[3pt]
        & & 0 & 0 & 1 & -1 & 0 & 0 & 1
        \\[3pt]
        & & 0 & 0 & 0 & 0 & 1 & -3 & 1
        \\[3pt]
        & & 0 & 0 & 0 & 0 & 0 & 0 & 0
        \\[3pt]
        & & 0 & 0 & 0 & 0 & 0 & 0 & 0
        \\[3pt]
        & & 0 & 0 & 0 & 0 & 0 & 0 & 0
    \end{array}
\]

\end{document}

答案1

这就是你要去的地方吗?

前两个矩阵

\documentclass{article}
\usepackage{mathtools}
\usepackage{array}

\newcolumntype{R}[1]{>{\hbox to #1\bgroup\hfill$}c<{$\egroup}}

\begin{document}
\renewcommand\arraystretch{1.2}

\begin{align*}
  \left[ \begin{array
    {R{1.5em}R{1.5em}R{1.5em}R{1.5em}R{1.5em}R{1.5em}R{1.5em}}
    2 & 1 & 1 & 3 & 0 & 4 & 1 \\
    4 & 2 & 4 & 4 & 1 & 5 & 5 \\
    2 & 1 & 3 & 1 & 0 & 4 & 3 \\
    6 & 3 & 4 & 8 & 1 & 9 & 5 \\
    0 & 0 & 3 & -3 & 0 & 0 & 3 \\
    8 & 4 & 2 & 14 & 1 & 13 & 3
  \end{array} \right] &\quad 
  \begin{array}{l}
    \frac{1}{2} R_1 \\
    \\ \\ \\ \\ \\
  \end{array}
\\
  \left[ \begin{array}
    {R{1.5em}R{1.5em}R{1.5em}R{1.5em}R{1.5em}R{1.5em}R{1.5em}}
    1 & \frac{1}{2} & \frac{1}{2} & \frac{3}{2} & 0 & 2 & \frac{1}{2} \\
    4 & 2 & 4 & 4 & 1 & 5 & 5 \\
    2 & 1 & 3 & 1 & 0 & 4 & 3 \\
    6 & 3 & 4 & 8 & 1 & 9 & 5 \\
    0 & 0 & 3 & -3 & 0 & 0 & 3 \\
    8 & 4 & 2 & 14 & 1 & 13 & 3
  \end{array} \right] &\quad 
  \begin{array}{l}
    \\
    R_{2} - 4 R_{1} \\
    R_{3} - 2 R_{1} \\
    R_{4} - 6 R_{1} \\
    \\
    R_{6} - 8 R_{1}
  \end{array}
\end{align*}
\end{document} 

答案2

我使用 John Kormylo 的回复来构建以下宏——格式与他的答案相同,但宏更易于使用。

\documentclass{article}
    \usepackage{amsmath}
    \usepackage{array}
    \allowdisplaybreaks

    \makeatletter
    \newcounter{elimination@steps}
    \newcolumntype{R}[1]{>{\raggedleft\arraybackslash$}p{#1}<{$}}
    \def\elimination@num@rights{}
    \def\elimination@num@variables{}
    \def\elimination@col@width{}
    \newenvironment{elimination}[4][0]
    {
        \setcounter{elimination@steps}{0}
        \def\elimination@num@rights{#1}
        \def\elimination@num@variables{#2}
        \def\elimination@col@width{#3}
        \renewcommand{\arraystretch}{#4}
        \start@align\@ne\st@rredtrue\m@ne
    }
    {
        \endalign
        \ignorespacesafterend
    }
    \newcommand{\eliminationstep}[2]
    {
        \ifnum\value{elimination@steps}>0\\\Rightarrow\quad\fi
        \left[
            \ifnum\elimination@num@rights>0
                \begin{array}
                {@{}*{\elimination@num@variables}{R{\elimination@col@width}}
                |@{}*{\elimination@num@rights}{R{\elimination@col@width}}}
            \else
                \begin{array}
                {@{}*{\elimination@num@variables}{R{\elimination@col@width}}}
            \fi
                #1
            \end{array}
        \right]
        & \quad
        \begin{array}{l}
            #2
        \end{array}
        \addtocounter{elimination@steps}{1}
    }
    \makeatother

\begin{document}

\begin{elimination}[3]{3}{1.75em}{1.1}
    \eliminationstep
    {
        4 & -8 & 5 & 1 & 0 & 0 \\
        4 & -7 & 4 & 0 & 1 & 0 \\
        3 & -4 & 2 & 0 & 0 & 1
    }
    {
        \\
        R_{2} - R_{1} \\
        R_{3} - \frac{3}{4} R_{1}
    }
    \eliminationstep
    {
        4 & -8 & 5 & 1 & 0 & 0 \\
        0 &  1 & -1 & -1 & 1 & 0 \\
        0 &  2 & -\frac{7}{4} & -\frac{3}{4} & 0 & 1
    }
    {
        \\
        \\
        R_{3} - 2 R_{2} \\
    }
    \eliminationstep
    {
        4 & -8 & 5 & 1 & 0 & 0 \\
        0 &  1 & -1 & -1 & 1 & 0 \\
        0 &  0 & \frac{1}{4} & \frac{5}{4} & -2 & 1
    }
    {
        \\
        \\
        R_{3} - 2 R_{2} \\
    }
\end{elimination}

\begin{elimination}{6}{1.75em}{1.1}
    \eliminationstep
    {
        4 & -8 & 5 & 1 & 0 & 0 \\
        4 & -7 & 4 & 0 & 1 & 0 \\
        3 & -4 & 2 & 0 & 0 & 1
    }
    {
        \\
        R_{2} - R_{1} \\
        R_{3} - \frac{3}{4} R_{1}
    }
    \eliminationstep
    {
        4 & -8 & 5 & 1 & 0 & 0 \\
        0 &  1 & -1 & -1 & 1 & 0 \\
        0 &  2 & -\frac{7}{4} & -\frac{3}{4} & 0 & 1
    }
    {
        \\
        \\
        R_{3} - 2 R_{2} \\
    }
    \eliminationstep
    {
        4 & -8 & 5 & 1 & 0 & 0 \\
        0 &  1 & -1 & -1 & 1 & 0 \\
        0 &  0 & \frac{1}{4} & \frac{5}{4} & -2 & 1
    }
    {
        \\
        \\
        R_{3} - 2 R_{2} \\
    }
\end{elimination}

\end{document}

相关内容