\thispagestyle{empty}
\clearpage \phantom{X} \clearpage
\thispagestyle{empty}
\clearpage \phantom{X} \clearpage
\chapter{}
\pagestyle{empty}
هدف اصلي اين فصل، آن است که اساسي‌ترين قضاياي پايان‌نامه‌ي حاضر را، بصورت الگوريتم‌هاي اوليه و حتي فراتر از آن، به شکل کد اينتلب، پوشش دهد. بنابراين، فصل را با ارائه‌ي توضيحاتي کامل در مورد نحوه‌ي اجرا و فراخواني اين برنامه‌هاي کامپيوتري در بخش \ref{s5}، آغاز کرده و سپس در بخش \ref{s6}، ساختار الگوريتم‌ها و کدها‌ي اينتلب وارد شده، با دقتي هر چه تمام‌تر، درستي اثبات قضاياي اساسي اين پايان‌نامه را تاييد مي‌کند. استفاده از کد ذکر شده، به درک مفاهيم معکوس ماتريس‌هاي بازه‌اي، وضوح بيشتري مي‌بخشد. لذا، خواننده‌ي علاقمند را دعوت مي‌کنيم تا اين برنامه‌ها را براي مثال‌هايي با بعد بالاتر از ۳، که در بخش \ref{s7} مورد بررسي قرار گرفته‌اند، اجرا کرده و زيبايي، دقت، سرعت و کاربردي بودن محاسبات را به شخصه مشاهده کند. 
\section{توصيف الگوريتم‌ها و کدهاي اينتلب} \label{s5}
پيش از توصيف الگوريتم‌هاي نوشته شده توسط اينتلب، توجه به يکي از مشکلات الگوريتم‌هاي بازه‌اي، اکيدا الزامي است. بدين منظور، قسمتي از يک الگوريتم مانند 
\begin{center}
\begin{tabular}{l}
$\text{\lr{if}}\,\,\, a \geq 0$\\
$\quad \text{\lr{do A}}$\\
\lr{else}\\
$\quad \text{\lr{do B}}$\\
\lr{end}\\
\end{tabular}
\end{center}
را در نظر بگيريد. در اينصورت اگر $\,a \in \bR$، هيچ مشکلي در فرآيند اجراي دستورات الگوريتم وجود ندارد، چرا که $a$ همواره يا نامنفي است يا منفي. حال تصور کنيد که $a$ يک عدد بازه‌اي باشد؛ آنگاه ممکن است که در فرآيند اجراي الگوريتم با مشکلاتي مواجه شويم. براي پي بردن به دليل اين مساله، فرض کنيد که $a = [-0.1 , 0.3]$ و بنابراين نمي‌توان در مورد نامنفي يا منفي بودن $a$ با قاطعيت اظهار نظر کرد و اين امر در بعضي اوقات، الگوريتم‌هاي بازه‌اي را با شکست مواجه مي‌کند. لازم به ذکر است که الگوريتم‌هاي آورده شده در اين پايان‌نامه، به گونه‌اي نوشته شده‌اند که مواردي از اين قبيل را نيز پوشش دهند. بنابراين، هنگامي که الگوريتم با موفقيت اجرا شده و به اتمام مي‌رسد خروجي‌هاي شناخته شده، و در حالاتي که الگوريتم ممکن است با شکست مواجه شود، خروجي‌هاي شناخته نشده را بدست مي‌دهد. 
\thispagestyle{empty}
به ازاي هر $A, B\in \Rnn$ و هر $\, b\in \Rn$، الگوريتم \lr{\textbf{absvaleqn}} \ref{fig 4} در تعداد متناهي مرحله، يا يک جواب $x$ از معادله‌ي $\, Ax+B|x|=b$، يا يک ماتريس منفرد $S$ که در شرط $|S-A|\leq |B|$ صدق کند را پيدا مي‌کند. توجه کنيد که هر دو آن‌ها را با هم نتيجه نمي‌دهد؛ اگر $A$ نامنفرد باشد، در خروجي داريم $S=[\,]$ و $S\neq [\,]$ بدين معناست که $A$ منفرد است. لازم بذکر است که $[\,]$ يک ماتريس يا بردار تهي مي‌باشد. اين الگوريتم بصورت زير فراخواني مي‌شود:
$$[x, S]=\, \textbf{\lr{absvaleqn}}\, (A, B, b)$$
بنابراين، معادله‌ي ماتريسي (\ref{f7}) مي‌تواند بصورت زير حل شود
$$[x, S]=\, \textbf{\lr{absvaleqn}}\, (A_c, -\tz \Delta , b_y)$$
در حالت خاص، يعني با فرض $\, b_y=e_j$، براي حل معادله‌ي (\ref{f6}) داريم
$$[x, S]=\, \textbf{\lr{absvaleqn}}\, (\ac , -\tz \Delta , e_j)$$ 
و خروجي آن يک بردار $x$ که $\, x=(B_y)_{\bullet j}$، يا يک ماتريس منفرد $S$ که در شرط 
$$|S-\ac |\leq |-\tz \Delta |=\Delta ,$$
صدق کند مي‌باشد. بدينصورت ما ماتريس $B_y$ را ستون به ستون محاسبه مي‌کنيم. اين فرآيند توسط الگوريتم \lr{\textbf{bymatrix}}، آمده در شکل \ref{fig 3}، بعنوان زيرتابعي از تابع اصلي \lr{\textbf{intervalhull}}، که در ادامه توضيح داده خواهد شد، انجام مي‌شود. تابع \lr{\textbf{bymatrix}} بصورت زير فراخواني مي‌شود:
$$[B_y, S]=\, \textbf{\lr{bymatrix}}\, (\ai , y)$$
اين الگوريتم در تعداد متناهي مرحله، جواب $B_y$ از معادله‌ي ماتريسي (\ref{f7}) يا يک ماتريس منفرد $S\in \ai $ را نتيجه مي‌دهد.

الگوريتم \lr{\textbf{intervalhull}}، که در شکل‌هاي \ref{fig 2} تا \ref{fig 4} توصيف شده است، شامل يک تابع اصلي به نام \lr{\textbf{intervalhull}} و دو زيرتابع \lr{\textbf{bymatrix}} و \lr{\textbf{absvaleqn}} مي‌باشد. تابع اصلي \lr{\textbf{intervalhull}}، بر اساس \cite{mpr} و نتيجه‌ي \ref{20} نوشته شده است، و زيرتابع \lr{\textbf{bymatrix}} بر اساس قضيه‌هاي \ref{11} و \ref{15} مي‌باشد، و زيرتابع \lr{\textbf{absvaleqn}} از \cite{ave2009, ave2010}. از آنجا که زيرتابع‌هاي \lr{\textbf{absvaleqn}} و \lr{\textbf{bymatrix}} در تعداد متناهي مرحله همگرا مي‌شوند، پس تابع \lr{\textbf{intervalhull}} نيز که بر اساس آن‌ها مي‌باشد نيز در تعداد متناهي مرحله به روابط (\ref{f1}) و (\ref{f2}) از نتيجه‌ي \ref{20} همگرا مي‌شود.

همچنين الگوريتم \lr{\textbf{inverse}} که در شکل‌هاي \ref{fig 1} تا \ref{fig 4} توصيف شده است، شامل تابع اصلي به نام \lr{\textbf{inverse}} و سه زيرتابع \lr{\textbf{absvaleqn}}، \lr{\textbf{bymatrix}} و \lr{\textbf{intervalhull}} مي‌باشد \cite{hand}\,. تابع اصلي \lr{\textbf{inverse}} کاملا منطبق بر قضيه‌هاي \ref{12}، \ref{17} و \ref{21} مي‌باشد. الگوريتم‌هاي ذکر شده را مي‌توان بصورت زير خلاصه کرد.
\begin{center}
\lr{\textbf{absvaleqn}$\longrightarrow$\textbf{bymatrix}$\longrightarrow$\textbf{intervalhull}$\longrightarrow$\textbf{inverse}}
\end{center}

 بعلاوه در ادامه به توصيف کد اينتلب اين الگوريتم‌ها مي‌پردازيم.
کد اينتلب \lr{\textbf{verinverse.m}} که در شکل \ref{fig 1} آمده است، براي محاسبه‌ي معکوس شناخته شده‌ي يک ماتريس بازه‌اي مربعي مي‌باشد و بصورت زير فراخواني مي‌شود:
$$[\bii , A_s]=\, \textbf{\lr{verinverse}}\, (\ai )$$
که در آن $\ai$ يک ماتريس بازه‌اي مربعي و $\bii$ معکوس شناخته شده‌ي بازه‌اي آن (در صورت وجود) است. $A_s$ نيز يک ماتريس بازه‌اي با کمترين پهناست که شامل يک ماتريس منفرد حقيقي عضو $\ai$ مي‌باشد. $\bii$ و $A_s$ هيچ وقت بطور همزمان هم علامت نيستند و حداقل يکي از آن‌ها ماتريسي از $NaN$ها مي‌باشد. توجه کنيد که $NaN$ يک عدد نيست بلکه مقداري مبهم مانند $\frac{0}{0}$ يا $\infty -\infty$ است. ماتريس بازه‌اي $\bii$ در صورت وجود، با محاسبات با دقت نامتناهي، معکوس دقيق ماتريس بازه‌اي $\ai$ را محاسبه مي‌کند و بر پايه‌ي الگوريتم با تکرارهاي مشخص \lr{\textbf{inverse}} مي‌باشد.
\newpage
\section{ليست الگوريتم‌ها و کدهاي اينتلب} \label{s6}

\begin{figure}[!h]
\begin{center}
\begin{tabular}{ll}
\lr{\textbf{function}\,$[\bii, S]=$\, \textbf{inverse} $(\ai )$}&\lr{(01)}\\
\lr{\textbf{for}\, $j=1:n$}&\lr{(02)}\\
\lr{\quad$[\x , S]$= \, \textbf{intervalhull}\,$(\ai , [e_j, e_j]);$}&\lr{(03)}\\
\lr{\quad\textbf{if}\, $S\neq [\, ],\, \bii=[\, ];$\, \textbf{return}}&\lr{(04)}\\
\lr{\quad\textbf{end}}&\lr{(05)}\\
$\quad \bii _{\bullet j}=\x ;$&\lr{(06)}\\
\lr{\textbf{end}}&\lr{(07)}\\
$S=[\, ];$&\lr{(08)}\\
\end{tabular}
\end{center}
\caption {يک الگوريتم براي محاسبه‌ي معکوس ماتريس بازه‌اي}\label{fig 1}
\end{figure}

\begin{figure}
\begin{center}
\begin{tabular}{ll}
\lr{\textbf{function}\, $[\x , S]=$\, \textbf{intervalhull}\, $(\ai , \bi )$}&\lr{(01)}\\
\lr{\% Computes either the interval hull $\x$}&\lr{(02)}\\
\lr{\% of the solution set of $\ai x=\bi ,$}&\lr{(03)}\\
\lr{\% or a singular matrix $S\in \ai .$}&\lr{(04)}\\
$\x =[\, ];\, S=[\, ];$&\lr{(05)}\\
\lr{\textbf{if}\, $A_c$ is singular, $S=\ac ;$\, \textbf{return}$,$\, \textbf{end}}&\lr{(06)}\\
$x_c=A_c^{-1}b_c;\, y=\text{\lr{sgn}}(x_c);\, \underline{x}=x_c;\, \overline{x}=x_c;$&\lr{(07)}\\
$Z=\{ y\};\, D=\emptyset ;$&\lr{(08)}\\
\lr{\textbf{while}\, $ Z\neq \emptyset$ }&\lr{(09)}\\
\lr{\quad select $y\in Z;\, Z=Z-\{ y\};\, D=D\cup \{ y\};$}&\lr{(10)}\\
$\quad [B_y, S]=\textbf{\lr{bymatrix}}\, (\ai , y);$&\lr{(11)}\\
\lr{\quad\textbf{if}\, $S\neq [\, ], \, \x =[\, ];$\, \textbf{return}$,$\, \textbf{end}}&\lr{(12)}\\
$\quad [B_{-y}, S]=\textbf{\lr{bymatrix}}\, (\ai , -y);$&\lr{(13)}\\
\lr{\quad\textbf{if}\, $S\neq [\, ],\, \x =[\, ];$\, \textbf{return}$,$\, \textbf{end}}&\lr{(14)}\\
$\quad\overline{x}_y=B_y b_c+|B_y|\delta ;$&\lr{(15)}\\
$\quad\underline{x}_y=B_{-y} b_c-|B_{-y}|\delta ;$&\lr{(16)}\\
\lr{\quad\textbf{if} \, $ \underline{x}_y\leq \overline{x}_y$ }&\lr{(17)}\\
$\qquad\underline{x}=\min (\underline{x}, \underline{x}_y);\, \overline{x}=\max (\overline{x}, \overline{x}_y);$&\lr{(18)}\\
$\qquad\textbf{\lr{for}}\, j=1:n$&\lr{(19)}\\
$\qquad\quad y^\prime =y;\, y^\prime _j=-y^\prime _j;$&\lr{(20)}\\
\lr{\qquad\quad\textbf{if}\, $((\underline{x}_y)_j(\overline{x}_y)_j\leq 0$\, \textbf{and}\, $y^\prime \not\in Z\cup D)$}&\lr{(21)}\\
$\qquad\qquad Z=Z\cup \{y^\prime \};$&\lr{(22)}\\
\lr{\qquad\quad\textbf{end}}&\lr{(23)}\\
\lr{\qquad\textbf{end}}&\lr{(24)}\\
\lr{\quad\textbf{end}}&\lr{(25)}\\
\lr{\textbf{end}}&\lr{(26)}\\
$\x =[\underline{x}, \overline{x}];$&\lr{(27)}\\
\end{tabular}
\end{center}
\caption{يک الگوريتم براي محاسبه‌ي روابط (\ref{f1}) و (\ref{f2})}\label{fig 2}
\end{figure}

\begin{figure}
\begin{center}
\begin{tabular}{ll}
$\textbf{\lr{function}}\, [B_y, S]=\textbf{\lr{bymatrix}}\, (\ai , y)$&\lr{(01)}\\
\lr{\% Computes either a solution $B_y$} &\lr{(02)}\\
\lr{\% of the equation $A_c B-\ty \Delta |B|=I,$}&\lr{(03)}\\
\lr{\% or a singular matrix $S\in \ai .$}&\lr{(04)}\\
\lr{\textbf{for}\,  $j=1:n$}&\lr{(05)}\\
$\quad [x, S]=\textbf{\lr{absvaleqn}}\, (\ac , -\ty \Delta , e_j);$&\lr{(06)}\\
\lr{\quad\textbf{if}\, $ S\neq [\, ]; \, B_y=[\, ];$ \, \textbf{return}}&\lr{(07)}\\
\textbf{\lr{\quad end}}&\lr{(08)}\\
$\quad (B_y)_{\bullet j}=x$&\lr{(09)}\\
\textbf{\lr{end}}&\lr{(10)}\\
$S=[\, ];$&\lr{(11)}\\
\end{tabular}
\end{center}
\caption{يک الگوريتم براي محاسبه‌ي ماتريس $B_y$}\label{fig 3}
\end{figure}

\begin{figure}
\begin{center}
\begin{tabular}{ll}
$\textbf{\lr{function}}\, [x,S]=\textbf{\lr{absvaleqn}}\, (A, B, b)$ &\lr{(01)}\\
\lr{\% Finds either a solution $x$ to $Ax+B|x|=b,$ or}&\lr{(02)}\\
\lr{\% a singular matrix $S$ satisfying $|S-A|\leq |B|.$}&\lr{(03)}\\
$x=[\, ];\, S=[\, ];\, i=0;\, r=0\in \Rn; X=0\in \Rnn ;$&\lr{(04)}\\
\lr{\textbf {if}\, $A$ is singular, $S=A;$\, \textbf{return}$,$\, \textbf{end}}&\lr{(05)}\\
$z=\text{\lr{sgn}} (A^{-1}b);$&\lr{(06)}\\
\lr{\textbf{if}\, $A+BT_z$ is singular, $S=A+BT_z;$\, \textbf{return}$,$\, \textbf{end}}&\lr{(07)}\\
$x=(A+BT_z)^{-1}b;\,$&\lr{(08)}\\
$C=-(A+BT_z)^{-1}B;\,$&\lr{(09)}\\
\lr{\textbf{while}\, $z_jx_j<0$ for some $j$}&\lr{(10)}\\
$\quad i=i+1;$&\lr{(11)}\\
$\quad k=\min \{j\mid z_j x_j<0\};$&\lr{(12)}\\
\lr{\quad\textbf{if}\, $1+2z_kC_{kk}\leq 0$}&\lr{(13)}\\
$\qquad S=A+B(T_z+(1\slash C_{kk})e_ke_k^T);$&\lr{(14)}\\
$\qquad x=[\,];\, \textbf{\lr{return}}$&\lr{(15)}\\
\lr{\quad\textbf{end}}&\lr{(16)}\\
\lr{\quad\textbf{if}\, $((k<n$\, \textbf{and}\, $r_k>\max _{k<j}{r_j})$\,\textbf{or}\, $(k=n$\, \textbf{and}\, $r_n>0))$}&\lr{(17)}\\
$\qquad x=x-X_{\bullet k};$&\lr{(18)}\\
\lr{\qquad\textbf{for}\, $j=1:n$}&\lr{(19)}\\
\lr{\qquad\quad\textbf{if}\,$(|B||x|)_j>0,$\, $y_j=(Ax)_j\slash (|B||x|)_j;$\, \textbf{else}\, $y_j=1;$\, \textbf{end}}&\lr{(20)}\\
\lr{\qquad\textbf{end}}&\lr{(21)}\\
$\qquad z=\text{\lr{sgn}}(x);$&\lr{(22)}\\
$\qquad S=A-T_y|B|T_z;$&\lr{(23)}\\
$\qquad x=[\, ];\, \textbf{\lr{return}}$&\lr{(24)}\\
\lr{\quad\textbf{end}}&\lr{(25)}\\
$\quad r_k=i;$&\lr{(26)}\\
$\quad X_{\bullet k}=x;$&\lr{(27)}\\
$\quad z_k=-z_k;$&\lr{(28)}\\
$\quad\alpha =2z_k\slash (1-2z_kC_{kk});$&\lr{(29)}\\
$\quad x=x+\alpha x_kC_{\bullet k};$&\lr{(30)}\\
$\quad C=C+\alpha C_{\bullet k}C_{k\bullet};$&\lr{(31)}\\
\lr{\textbf{end}}&\lr{(32)}\\
\end{tabular}
\end{center}
\caption{يک الگوريتم براي حل يک معادله‌ي ماتريسي غيرخطي}\label{fig 4}
\end{figure}

\newcommand{\ppictureh}[2]{\includegraphics[height=#2]{#1}} % height must be given in pt, cm etc.
\begin{figure}\label{fig 5}
\centerline{\ppictureh{inverse.bmp}{15.5cm}\vspace*{-5ex}} \ \\
\caption{\lr{m}-فايلي براي محاسبه‌ي معکوس ماتريس بازه‌اي } \label{k1}
\end{figure}
%\begin{figure}
%\centerline{\ppictureh{bastintlinprobs.bmp}{16cm}\vspace*{-6ex}} \ \\
%\caption{کد2 } \label{k2}
%\end{figure}
