首页 > 解决方案 > LATEX算法包

问题描述

\begin{algorithm}
\caption{Sinkhorn's algorithm}
\begin{algorithmic}
\WHILE{ $\| B(u_{k}, v_{k})1 - \mu \| + \| B(u_{k}, v_{k})^{T} 1 - \nu \| \ge \epsilon'$ }
    \IF {$k \text{ mod } 2 = 0$}
        \STATE $u_{k+1} = u_{k} + ln \left( \frac{\mu}{B(u_{k},v_{k})\mathrm{1}} \right)$
        \STATE $v_{k+1} = v_{k}$
    \ELSE
        \STATE $v_{k+1} = v_{k} + ln \left( \frac{\nu}{B(u_{k},v_{k})^{T} \mathrm{1}} \right) $
        \STATE $u_{k+1} = u_{k}$
    \ENDIF
        \STATE $k = k+1$
\end{algorithmic}
\end{algorithm}

这段代码不起作用你知道为什么吗?

谢谢并恭祝安康。

标签: latex

解决方案


\ENDWHILE应该用来表示循环的结束。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage{amsmath}

\begin{document}
\begin{algorithm}
   \caption{Sinkhorn's algorithm}
   \begin{algorithmic}
   \WHILE{ $\| B(u_{k}, v_{k})1 - \mu \| + \| B(u_{k}, v_{k})^{T} 1 - \nu \| \ge \epsilon'$ }
       \IF {$k \text{ mod } 2 = 0$}
           \STATE $u_{k+1} = u_{k} + ln \left( \frac{\mu}{B(u_{k},v_{k})\mathrm{1}} \right)$
           \STATE $v_{k+1} = v_{k}$
       \ELSE
           \STATE $v_{k+1} = v_{k} + ln \left( \frac{\nu}{B(u_{k},v_{k})^{T} \mathrm{1}} \right) $
           \STATE $u_{k+1} = u_{k}$
       \ENDIF
           \STATE $k = k+1$
   \ENDWHILE
   \end{algorithmic}
   \end{algorithm}
\end{document}

推荐阅读