1行に複数のステップがあるガウス消去法

1行に複数のステップがあるガウス消去法

ガウス消去法のマクロが欲しいのですが、gaussパッケージの表記法が気に入りません。素晴らしいマクロを見つけましたここですが、1 行に複数のステップを入れたいです。\\ を削除するだけでは見栄えが悪く、行列と行演算の間のスペースが均等でなく、行が折り返されません。 マトリックス また、行列と行演算の間のスペースを減らしたいです。どうすればいいでしょうか?

ソース:

\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\sim\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]
    & 
    \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_{1} \\
        -\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
    }
    {
        \\
        \\
        -2R_{2} \\
    }
    \eliminationstep
    {
        4 & -8 & 5 & 1 & 0 & 0 \\
        0 &  1 & -1 & -1 & 1 & 0 \\
        0 &  0 & \frac{1}{4} & \frac{5}{4} & -2 & 1
    }
    {
        \\
        \\
        +2R_{2} \\
    }
\end{elimination}

\end{document}

答え1

複数の & を align に配置すると、複数の方程式をまとめているとみなされ、他のすべての & は \hfil のように展開されます。ステップごとに 2 つの & が必要です。

ガウス

\documentclass{article}
\usepackage[margin=1in]{geometry}
\usepackage{mathtools}
\usepackage{array}

\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\sim\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]
    & 
    \begin{array}{l}
        #2
    \end{array}
    &%                                    moved second & here
    \addtocounter{elimination@steps}{1}
}
\makeatother

\begin{document}

\begin{elimination}[3]{3}{1.1em}{1.1}% Decreased from 1.75em
    \eliminationstep
    {
        4 & -8 & 5 & 1 & 0 & 0 \\
        4 & -7 & 4 & 0 & 1 & 0 \\
        3 & -4 & 2 & 0 & 0 & 1
    }
    {
        \\
        -R_{1} \\
        -\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
    }
    {
        \\
        \\
        -2R_{2}
    }
\\[10pt]%                    increased spacing between rows
    \eliminationstep
    {
        4 & -8 & 5 & 1 & 0 & 0 \\
        0 &  1 & -1 & -1 & 1 & 0 \\
        0 &  0 & \frac{1}{4} & \frac{5}{4} & -2 & 1
    }
    {
        \\
        \\
        +2R_{2}
    }
\end{elimination}

\end{document}

関連情報