سلام، به کد کمینه ضمیمه شده توجه نمایید:
\documentclass[12pt,a4paper]{report}
\usepackage{amsthm,amssymb,amsmath,enumerate,mathtools}
\usepackage{algorithm}
\usepackage{algcompatible}
\renewcommand{\algorithmicrequire}{\textbf{ورودی:}}
\renewcommand{\algorithmicensure}{\textbf{خروجی:}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{xepersian}
\settextfont{Yas}
\begin{document}
\section{نمونه یک الگوریتم}\label{algsec}
\textbf{نمونه اول:}
الگوریتم
\ref{malgcg}
یک الگوریتم با دستورات فارسی است.
\begin{algorithm}[htb!]
\caption{روش گرادیان مزدوج.}
\label{malgcg}
\begin{algorithmic}[1]
\REQUIRE
ماتریس متقارن معین مثبت $A\in\mathbb{R}^{n\times n}$ و بردارهای $b$ و $x_0$.
\ENSURE
جواب دستگاه $Ax=b$.
\STATE محاسبه کنید $r_0:=b-Ax_0$ و قرار دهید $p_0:=r_0$.
\STATE
برای $j=0,1,2,\ldots$، انجام دهید:
\STATE $\alpha_j=\frac{\langle r_j,r_j \rangle}{\langle Ap_j,p_j \rangle}$
\STATE $x_{j+1}=x_j+\alpha_jp_j$
\STATE $r_{j+1}=r_j-\alpha_jAp_j$
\STATE
بررسی معیار توقف: اگر $\Vert r_{j+1}\Vert_2< \epsilon$، آنگاه توقف کنید.
\STATE $\eta_j=\frac{\langle r_{j+1},r_{j+1} \rangle}{\langle r_j,r_j \rangle}$
\STATE $p_{j+1}=r_{j+1}+\eta_jp_j$
\end{algorithmic}
\end{algorithm}
********************************
********************************
*********************************
********************************
********************************
*********************************
********************************
********************************
*********************************
********************************
********************************
*********************************
********************************
********************************
*********************************
\textbf{نمونه دوم:}
شکستن الگوریتم
\ref{malgcg}
از یک صفحه به صفحه دیگر.
\begin{algorithm}[htb!]
\caption{روش گرادیان مزدوج.}
\label{malgcg1}
\begin{algorithmic}[1]
\REQUIRE
ماتریس متقارن معین مثبت $A\in\mathbb{R}^{n\times n}$ و بردارهای $b$ و $x_0$.
\ENSURE
جواب دستگاه $Ax=b$.
\STATE محاسبه کنید $r_0:=b-Ax_0$ و قرار دهید $p_0:=r_0$.
\STATE
برای $j=0,1,2,\ldots$، انجام دهید:
\algstore{myalg}%page break
\end{algorithmic}
\end{algorithm}
\begin{algorithm}
\begin{algorithmic}[1]
\algrestore{myalg}
\STATE $\alpha_j=\frac{\langle r_j,r_j \rangle}{\langle Ap_j,p_j \rangle}$
\STATE $x_{j+1}=x_j+\alpha_jp_j$
\STATE $r_{j+1}=r_j-\alpha_jAp_j$
\STATE
بررسی معیار توقف: اگر $\Vert r_{j+1}\Vert_2< \epsilon$، آنگاه توقف کنید.
\STATE $\eta_j=\frac{\langle r_{j+1},r_{j+1} \rangle}{\langle r_j,r_j \rangle}$
\STATE $p_{j+1}=r_{j+1}+\eta_jp_j$
\end{algorithmic}
\end{algorithm}
\end{document}