我正在编写此算法,这是我得到的结果。 和\for
...\while
没有出现。
\usepackage{algorithm}
\usepackage{algorithmic}
\begin{algorithm}
\caption{Calculate the exact surface of PV $A_p{v}$ }
\begin{algorithmic}
\REQUIRE $ Nmax_{wt}$\\
\FOR{$i=0:1:Nmax_{wt}$}: \\
\STATE $Npvmax = upperbound$\\
\STATE $Npvmin = 0$\\
\STATE $Pw(t) = P_w(t) \times i$ \\
\WHILE{$Npvmax - Npvmin \geq 1$}\\
\STATE $Npv = (NpvMax + NpvMin) / 2$\\
\STATE $Ppv(t) = Ppv(t) \times i$ \\
\STATE $Pre(t) = Ppv(t) + Pw(t)$\\
\STATE proceed Sizing Storage\\
\IF{$LOH(T) \leq LOH_0$ }\\
\STATE $Npvmin \leftarrow Npv / x$\\
\ELSE\\
\STATE $NpvMax \leftarrow Npv$\\
\ENDIF\\
\ENDWHILE\\
\STATE Return (Npv)
\end{algorithmic}
\end{algorithm}
答案1
这里有几个问题:
- 您忽略了几个编译错误。绝不去做!
- 语法
\FOR
是\FOR{<condition>} <text>\ENDFOR
- 不要放在
\\
行尾。algorithmic
将自动处理断行。 - 您在数学模式下使用了许多带有多个字母的变量名称,例如
Nmax
。所有这些名称都应包含在 中\mathit{...}
,否则这些单词中的单词间距/字母字距将很糟糕。
这是您的算法的可编译版本:
\documentclass{article}
\usepackage{algorithm}
\usepackage{algorithmic}
\begin{document}
\begin{algorithm}
\caption{Calculate the exact surface of PV $A_p{v}$ }
\begin{algorithmic}
\REQUIRE $ Nmax_{wt}$
\FOR{$i=0:1:Nmax_{wt}$}
\STATE{$Npvmax = upperbound$}
\STATE $Npvmin = 0$
\STATE $Pw(t) = P_w(t) \times i$
\WHILE{$Npvmax - Npvmin \geq 1$}
\STATE $Npv = (NpvMax + NpvMin) / 2$
\STATE $Ppv(t) = Ppv(t) \times i$
\STATE $Pre(t) = Ppv(t) + Pw(t)$
\STATE proceed Sizing Storage
\IF{$LOH(T) \leq LOH_0$ }
\STATE $Npvmin \leftarrow Npv / x$
\ELSE
\STATE $NpvMax \leftarrow Npv$
\ENDIF
\ENDWHILE
\ENDFOR
\STATE Return (Npv)
\end{algorithmic}
\end{algorithm}
\end{document}