Как выровнять частное при использовании полинома

Как выровнять частное при использовании полинома

Я использую polynomпакет для иллюстрации деления в столбик с многочленами. Обычно, когда я решаю эти задачи вручную, я выравниваю первый член частного с первым членом делимого. Однако, как покажет мой код ниже, выравнивание — это, по сути, то, что мне нужно.

введите описание изображения здесь

\documentclass{article}
\usepackage{polynom}

\begin{document}
\polylongdiv{2x^4+7x^3+8x^2+5x+4}{x^3+x^2+x+1}
\end{document}

Есть ли способ выровнять 2 частного с 2 делимого?

решение1

Короткий ответ

\documentclass{article}
    \usepackage{polynom}
\begin{document}
    \makeatletter
    \let\oldpld@SplitQuotient\pld@SplitQuotient
    \def\pld@SplitQuotient{\oldpld@SplitQuotient\def\pld@pattern{}}
    \polylongdiv{X^9-X^8-X^5+X^4+X+1}{X-1}
\end{document}

Длинный ответ

После некоторых экспериментов можно заметить, что polynomпри печати непоследовательных одночленов остаются некоторые пробелы.

Механизм заключается в том, что polynomон использует \pld@patternв качествезаполнитель. Поскольку делимое имеет степень 9, \pld@patternто X^9+X^8+...+1(вроде как).

Затем он начинает сопоставлять \pld@quotientи \pld@pattern. В этом случае X^8переходит к X^8и -X^4переходит к X^4. То же самое происходит при polynomпопытке распечатать делимое. Вот почему X^8частное в выравнивается с -X^8делимым в .

Чтобы решить эту проблему, нам нужно заменить заполнитель на более короткий.

Но тогда это было быне такой уж умныйесли нам нужно назначить заполнитель вручную. Хорошая новость в том, что замена заполнителя на ничто заставляет polynom(пере)генерировать более короткий. Теперь это должно быть то, что вам нужно.

Осталась проблема, где его заменить? Здесь я добавляю \def\pld@pattern{}после \pld@SplitQuotientтолько потому, что polynomсейчас напечатаю частное.

\documentclass{article}
    \usepackage{polynom}
    \usepackage[active,floats,tightpage]{preview}
\begin{document}
    \makeatletter
    \let\oldpld@SplitQuotient\pld@SplitQuotient
    \begin{figure}
        \polylongdiv{X^9-X^8-X^5+X^4+X+1}{X-1}
    \end{figure}
    \begin{figure}
        \def\pld@SplitQuotient{\oldpld@SplitQuotient\def\pld@pattern{}}
        \polylongdiv{X^9-X^8-X^5+X^4+X+1}{X-1}
    \end{figure}
    \begin{figure}
        \def\pld@SplitQuotient{\oldpld@SplitQuotient
            \def\pld@quotient{\pld@V{X}{9}+\pld@V{X}{8}+\pld@V{X}{7}+\pld@V{X}{6}+\pld@V{X}{5}+\pld@V{X}{4}+\pld@V{X}{3}+\pld@V{X}{2}+\pld@V{X}{1}+\pld@R 11}}
        \polylongdiv{X^9-X^8-X^5+X^4+X+1}{X-1}
    \end{figure}
    \begin{figure}
        \def\pld@SplitQuotient{\oldpld@SplitQuotient\def\pld@pattern{}
            \def\pld@quotient{\pld@V{X}{8}+\pld@V{X}{7}+\pld@V{X}{6}+\pld@V{X}{5}+\pld@V{X}{4}+\pld@V{X}{3}+\pld@V{X}{2}+\pld@V{X}{1}+\pld@R 11}}
        \polylongdiv{X^9-X^8-X^5+X^4+X+1}{X-1}
    \end{figure}
\end{document}

Связанный контент