\chapter{نتایج عددی }
\thispagestyle{empty}
\newpage
\section{مقدمه}
در این فصل، به ارزیابی عملکرد روش‌های ارائه‌شده در فصول قبلی پایان نامه می‌پردازیم. هدف اصلی این فصل، بررسی کارایی و دقت روش‌های کمترین باقی‌مانده پیش‌شرط‌سازی شده
$(PMR)$
و مقایسه آن‌ها با روش‌های سنتی بدون پیش‌شرط‌سازی است. به این منظور، مجموعه‌ای از آزمایش‌های عددی طراحی شده‌اند که در آن‌ها معادلات سیلوستر با ماتریس‌های مختلف و در ابعاد گوناگون حل شده‌اند. در این آزمایش‌ها، معیارهای مختلفی از جمله تعداد تکرارها، زمان محاسباتی، و دقت جواب‌ها مورد بررسی قرار گرفته‌اند. علاوه بر این، تأثیر پیش‌شرط‌سازها بر بهبود همگرایی و کاهش زمان حل نیز تحلیل شده است. نتایج این آزمایش‌ها نه تنها کارایی روش‌های پیش‌شرط‌سازی شده را تأیید می‌کنند، بلکه بینش‌هایی در مورد انتخاب پیش‌شرط‌سازهای مناسب برای مسائل مختلف ارائه می‌دهند. این فصل به خواننده کمک می‌کند تا درک بهتری از عملکرد عملی روش‌های ارائه‌شده به دست آورد و کاربرد آن‌ها را در حل مسائل واقعی مشاهده کند. در ادامه، جزئیات آزمایش‌ها و نتایج به‌دست‌آمده به طور کامل ارائه شده‌اند.
\section{ارزیابی عملکرد و مقایسه روش‌های پیش‌شرط‌سازی شده در حل معادلات سیلوستر: نتایج عددی و تحلیل‌ها}
در ابتدای بخش ابتدا الگوریتم دوقطبی‌سازی
\LTRfootnote{Biconjugation Algorithm}
را به طور کامل معرفی می کنیم. این الگوریتم برای بهبود همگرایی روش‌های تکراری در حل سیستم‌های خطی بزرگ و پراکنده استفاده می‌شود. هدف این الگوریتم، ساخت ماتریس معکوس پراکنده
$M$
برای ماتریس 
$A$
است، به طوری که
$MA \approx I$
. 
\begin{al}[الگوریتم دوقطبی‌سازی]
مراحل الگوریتم به صورت زیر است:
\begin{enumerate}
\item[1.]
\textbf{ورودی ها.}
\\ماتریس 
$A \in \mathbb{R}^{n \times n}$
(معمولاً پراکنده).
\\پارامتر کنترل پراکندگی (مثلاً یک آستانه 
$\tau$
برای حذف عناصر کوچک).
\item[2.]
\textbf{مقداردهی اولیه.}
دو مجموعه از بردارهای دو قطبی 
$\{u_i\}$
و
$\{v_i\}$
را انتخاب می کنیم. این بردارها معمولاً به صورت تصادفی یا با استفاده از یک روش سیستماتیک انتخاب می‌شوند. در مرحله بعد ماتریس 
$M$
را به عنوان یک ماتریس پراکنده اولیه (مثلاً ماتریس صفر یا ماتریس قطری) مقداردهی می کنیم.
\item[3.]
\textbf{فرآیند دو قطبی‌سازی.}
برای هر
$i = 1, 2, \cdots, n$
بردارهای
$u_i$
و
$v_i$
را به صورت زیر به‌روزرسانی می کنیم،
$$u_i = u_i - M A v_i, \quad v_i = v_i - A^T M^T u_i.$$
عناصر
$M$
را به‌روزرسانی می کنیم تا شرط
$MA \approx I$
برقرار شود، به عبارت دیگر داریم،
$$M = M + u_i v_i^T.$$
در نهایت عناصر کوچک 
$M$
را حذف می کنیم (بر اساس آستانه
$\tau$
) تا پراکندگی ماتریس حفظ شود.
\item[4.]
\textbf{خروجی.}
ماتریس
$M$
را به عنوان یک پیش‌شرط‌ساز معکوس پراکنده برای
$A$
در نظر می گیریم.
\end{enumerate}
\end{al}
در الگوریتم فوق بردارهای دو قطبی
$\{u_i\}$
و
$\{v_i\}$
معمولاً به گونه‌ای انتخاب می‌شوند که بتوانند اطلاعات طیفی ماتریس 
$A$
را به خوبی پوشش دهند. این بردارها می‌توانند به صورت تصادفی یا با استفاده از روش‌هایی مانند روش‌های مبتنی بر کریلوف انتخاب شوند. در هر تکرار، ماتریس 
$M$
به‌روزرسانی می‌شود تا شرط
$MA \approx I $
بهتر برقرار شود. این به‌روزرسانی با استفاده از بردارهای دو قطبی انجام می‌شود و در نهایت برای حفظ پراکندگی ماتریس 
$M$
، عناصری که مقدار مطلق آن‌ها کمتر از یک آستانه 
$\tau$
است، حذف می‌شوند (یعنی با صفر جایگزین می‌شوند). این کار باعث می‌شود که
$M$
همچنان پراکنده باقی بماند و نیاز به حافظه و محاسبات کاهش یابد.
\\در این بخش، عملکرد الگوریتم‌های گالرکین
$(Gal)$
، گالرکین پیش‌شرط‌سازی شده 
$(PGal)$
، کمترین باقی‌مانده 
$(MR)$
، و کمترین باقی‌مانده پیش‌شرط‌سازی شده
$(PMR)$
را مقایسه می‌کنیم. برای تمامی مثال‌ها، از معیار توقف زیر استفاده شده است،
$$\frac{\| r_k \|_2}{\| r_0 \|_2} \leq 10^{-6},$$
و حداکثر تعداد تکرارهای مجاز برابر با ۱۰۰۰ در نظر گرفته شده است. تعداد تکرارها در جداول 
\ref{tab1}
تا
\ref{tab4}
ارائه شده‌اند. در تمامی آزمایش‌ها، حدس اولیه
$X_0 = 0$
می باشد. ماتریس سمت راست 
$C$
به گونه‌ای انتخاب شده است که 
$X_{i,j} = 1$
برای 
$1 \leq i \leq n$
و
$1 \leq j \leq n$
جواب معادله 
\eqref{z00001}
باشد. برای تولید پیش‌شرط‌سازهای معکوس پراکنده، از الگوریتم دوقطبی‌سازی استفاده شده است. همچنین برای حفظ پراکندگی، از استراتژی حذف
\LTRfootnote{Dropping Strategy}
زیر استفاده شده است:
\\"حذف عناصر
$m_j$
(ستون‌های 
$M$
) و 
$n_j$
(ستون‌های
$N$
) که کمتر از تلرانس نسبی
$\tau_j(y_j)$
هستند (یعنی با صفر جایگزین می‌شوند). این تلرانس با ضرب
$\tau$
در نُرم اقلیدسی ستون 
$j$
-اُم ماتریس
$A$
(یا
$B$
)که متناظر با
$ m_j$
) (یا 
$n_j$
) است، به دست می‌آید."
\begin{table}[h]
\centering
\caption{نتایج عددی برای 
$v = 0$
.
}
\label{tab:table1}
\begin{tabular}{|c|c|c|c|c|c|}
\hline
$n \times n$ & $10 \times 10$ & $15 \times 15$ & $20 \times 20$ & $25 \times 25$ & $30 \times 30$ \\
\hline
$\tau$ & $10^{-7}$ & $10^{-6}$ & $10^{-7}$ & $10^{-7}$ & $10^{-10}$ \\
\hline
$MR$ & $75$ & $190$ & $340$ & $460$ & $800$ \\
\hline
$PMR$ & $5$ & $8$ & $10$ & $7$ & $10$ \\
\hline
$Gal$ & $70$ & $170$ & $290$ & $450$ & $880$ \\
\hline
$PGal$ & $5$ & $8$ & $10$ & $12$ & $15$ \\
\hline
\end{tabular}
\label{tab1}
\end{table}
\begin{table}[h]
\centering
\caption{نتایج عددی برای 
$v = 10$
.}
\label{tab:table2}
\begin{tabular}{|c|c|c|c|c|c|}
\hline
$n \times n$ & $10 \times 10$ & $15 \times 15$ & $20 \times 20$ & $25 \times 25$ & $30 \times 30$ \\
\hline
$\tau$ & $10^{-3}$ & $10^{-3}$ & $10^{-3}$ & $10^{-3}$ & $10^{-3}$ \\
\hline
$MR$ & $90$ & $150$ & $220$ & $350$ & $500$ \\
\hline
$PMR$ & $40$ & $57$ & $65$ & $105$ & $140 $\\
\hline
$Gal$ & $85$ & $170$ & $230$ & $310$ & $430$ \\
\hline
$PGal$ & $35$ & $63$ & $70$ & $92$ & $162$ \\
\hline
\end{tabular}
\label{tab2}
\end{table}
\begin{table}[h]
\centering
\caption{نتایج عددی برای 
$m = 4$
.}
\label{tab:table3}
\begin{tabular}{|c|c|c|c|c|c|}
\hline
$n \times n$ & $10 \times 10$ & $15 \times 15$ & $20 \times 20$ & $25 \times 25$ & $30 \times 30$ \\
\hline
$\tau$ & $10^{-3}$ & $10^{-3}$ & $10^{-3}$ & $10^{-4}$ & $10^{-3}$ \\
\hline
$MRM$ & $10$ & $40$ & $60$ & $95$ & $130$ \\
\hline
$PMRM$ & $5$ & $15$ & $20$ & $35$ & $30$ \\
\hline
$GM$ & $12$ & $35$ & $60$ & $80$ & $105$ \\
\hline
$PGM$ & $3$ & $4$ & $21$ & $28$ & $30$ \\
\hline
\end{tabular}
\label{tab3}
\end{table}
\begin{table}[h]
\centering
\caption{نتایج عددی برای
 $m = 2$
.}
\label{tab:table4}
\begin{tabular}{|c|c|c|c|c|c|}
\hline
$A$ & $fidap005$ & $pores1$ & $fidapm05$ & $bcsstk01$ & $bcsstk01$ \\
\hline
$B$ & $hilbert$ & $hilbert$ & $hilbert$ & $bcsstm05$ & $hilbert$ \\
\hline
$n \times n$ & $10 \times 10$ & $15 \times 15$ & $20 \times 20$ & $25 \times 25$ & $30 \times 30$ \\
\hline
$\tau$ & $10^{-11}$ & $10^{-13}$ & $10^{-15}$ & $10^{-20}$ & $10^{-13}$ \\
\hline
$MRM$ & $-^{-a}$ & $270$ & $-^{-a}$ & $600$ & $280$ \\
\hline
$PMRM$& $6$ & $3$ & $3$ & $2$ & $9$ \\
\hline
$GM$ & $-^{-a}$ & $220$ & $-^{-a}$ & $700$ & $250$ \\
\hline
$PGM$ & $2$ & $3$ & $2$ & $3$ & $9$ \\
\hline
\end{tabular}
\label{tab4}
\end{table}
به عنوان اولین مساله آزمایشی، عملگر بیضوی زیر،
$$L(u) = -\Delta u + 2vu_x + 2vu_y,$$
با شرایط مرزی دیریکله را در نظر می‌گیریم. این عملگر با استفاده از تفاضل‌های مرکزی روی 
$[0,1] \times [0,1]$
گسسته‌سازی شده است. اندازه‌های شبکه در هر دو جهت 
$x$
و 
$y$
برابر با
$h =\frac{1}{(n + 1)}$
است. این گسسته‌سازی دو ماتریس سه‌قطری 
$A$
و
$B$
را به صورت زیر تولید می‌کند،
$$A =tridiag(-1 - vh, 2, -1 + vh) \quad \text{و} \quad B =-tridiag(-1 - vk, 2, -1 + vk).$$
سپس باید معادله ماتریسی سیلوستر
$AX - XB = C$
را حل کنیم. عبارت بالا مساله آزمایشی اول را توصیف می‌کند که شامل گسسته‌سازی یک عملگر بیضوی با شرایط مرزی دیریکله و تشکیل معادله ماتریسی سیلوستر است. همانطور که مشاهده می شود عملگر بیضوی با استفاده از تفاضل‌های مرکزی گسسته‌سازی شده و دو ماتریس سه‌قطری 
$A$
و
$B$
تولید شده‌اند و هدف نهایی، حل معادله سیلوستر
\eqref{z00001}
است. چهار الگوریتم در حالت بازآغاز
\LTRfootnote{Restarted mode}
با 
$m = 2$
اجرا شدند. نتایج به‌دست‌آمده در جداول
\ref{tab1}
و 
\ref{tab2}
با مقادیر مختلف
$n$
، 
$v$
و 
$\tau$
گزارش شده‌اند. این جداول نشان می‌دهند که تعداد تکرارهای الگوریتم‌های
$PMR$
و 
$PGal$
بسیار کمتر از الگوریتم‌های
$MR$
و 
$Gal$
است. در نتیجه استفاده از پیش‌شرط‌سازها در الگوریتم‌های تکراری، به طور قابل توجهی تعداد تکرارها را کاهش می‌دهد و کارایی محاسباتی را بهبود می‌بخشد. این نتایج اهمیت پیش‌شرط‌سازی را در حل معادلات سیلوستر بزرگ‌مقیاس برجسته می‌کند.

\begin{center}
{\includegraphics[scale=0.8]{matlab1}}
\end{center}
\begin{center}
{\includegraphics[scale=0.8]{matlab2}}
\end{center}
کدنویسی مساله آزمایشی اول و جداول
\ref{tab1}
و
\ref{tab2}
در برنامه متلب در بالا به طور کامل آمده است.\\
به عنوان دومین مساله آزمایشی، ماتریس ضریب 
$G = A \otimes I + I \otimes B^T $
و سیستم خطی 
$Gx = b$
را در نظر می‌گیریم که از حل معادله پواسون در یک حوزه مستطیلی با استفاده از فرمول تفاضل‌های مرکزی ۹ نقطه‌ای به‌دست آمده است. در این حالت، ماتریس‌های
$n \times n$
در معادله سیلوستر
\eqref{z00001}
به ترتیب به صورت زیر هستند،
$$A = pentadiag(1, -16, 30, -16, 1) \quad \text{و} \quad B = -pentadiag(1, -16, 30, -16, 1).$$
نتایج به‌دست‌آمده در جدول
\ref{tab3}
ارائه شده‌اند. این نتایج نشان می‌دهند که الگوریتم‌های
$PMR$
و 
$PGal$
بهتر از الگوریتم‌های
$MR$
و 
$Gal$
عمل کرده‌اند. در نتیجه الگوریتم‌های پیش‌شرط‌سازی شده نه تنها در حل معادلات سیلوستر، بلکه در حل مسائل دیگر مانند معادله پواسون نیز عملکرد بهتری دارند. این نتایج اهمیت استفاده از پیش‌شرط‌سازها را در حل مسائل بزرگ‌مقیاس برجسته می‌کند.
\begin{center}
{\includegraphics[scale=0.8]{matlab3}}
\end{center}
\begin{center}
{\includegraphics[scale=0.8]{matlab4}}
\end{center}
کدنویسی مساله آزمایشی دوم و جدول
\ref{tab3}
در برنامه متلب در بالا به طور کامل آمده است.
\\در مجموعه سوم آزمایش‌ها، از ماتریس‌های 
$A$
و 
$B$
معادله سیلوستر 
\eqref{z00001}
از مجموعه‌داده‌های 
$Harwell-Boeing$
استفاده شده است. مجموعه‌داده‌های 
$Harwell-Boeing$
یکی از مجموعه‌داده‌های معروف و پرکاربرد در زمینه ماتریس‌های پراکنده است. این مجموعه‌داده شامل تعداد زیادی ماتریس پراکنده است که از مسائل واقعی در حوزه‌های مختلف مهندسی، فیزیک، ریاضیات، و علوم کامپیوتر استخراج شده‌اند. این مجموعه‌داده به عنوان یک مرجع استاندارد برای آزمایش و ارزیابی الگوریتم‌های عددی، به ویژه الگوریتم‌هایی که با ماتریس‌های پراکنده سروکار دارند، استفاده می‌شود.
نمونه‌هایی از ماتریس‌های
$Harwell-Boeing$
به صورت زیر هستند:
\begin{enumerate}
\item[1.]
$bcsstk01$
: یک ماتریس پراکنده از تحلیل سازه‌ای؛
\item[2.]
$fs_183_1$
: یک ماتریس پراکنده از مسائل شبکه‌های الکتریکی؛
\item[3.]
$nos4$
: یک ماتریس پراکنده از مسائل المان محدود.
\end{enumerate}
 نتایج به‌دست‌آمده در جدول
\ref{tab4}
ارائه شده‌اند. لازم به ذکر است که نتایج ستون پنجم جدول 
\ref{tab4}
با 
$N = I$
به‌دست آمده‌اند، زیرا ماتریس 
$bcsstm05$
تکین است و نمی‌توان یک پیش‌شرط‌ساز معکوس تقریبی برای آن به‌دست آورد. همان‌طور که مشاهده می‌شود، تمام معادلات سیلوستر در تعداد تکرارهای نسبتاً کمی توسط الگوریتم‌های 
$PMR$
و 
$PGal$
حل شده‌اند.
\begin{center}
{\includegraphics[scale=0.8]{matlab5}}
\end{center}
\begin{center}
{\includegraphics[scale=0.8]{matlab6}}
\end{center}
\begin{center}
{\includegraphics[scale=0.8]{matlab7}}
\end{center}
کدنویسی مساله آزمایشی سوم و جدول
\ref{tab4}
در برنامه متلب در بالا به طور کامل آمده است.
\section{نتیجه گیری}
در این پایان نامه، روش‌های پیش‌شرط‌سازی شده برای حل معادلات سیلوستر 
$AX - XB = C$
مورد بررسی قرار گرفتند. این معادلات در بسیاری از زمینه‌های مهندسی و علوم محاسباتی، از جمله کنترل بهینه، شناسایی سیستم‌ها، و تحلیل پایداری سیستم‌های دینامیکی، کاربرد گسترده‌ای دارند. هدف اصلی این مقاله، ارائه و تحلیل روش‌های عددی کارآمد برای حل این معادلات، به ویژه در مواردی که ماتریس‌های
$A$
و 
$B$
بزرگ و پراکنده هستند، بود.\\روش‌های پیش‌شرط‌سازی شده ارائه‌شده در این پایان نامه، ابزارهای قدرتمندی برای حل معادلات سیلوستر بزرگ‌مقیاس هستند. این روش‌ها نه تنها همگرایی سریع‌تر و دقت بالاتری را فراهم می‌کنند، بلکه از نظر محاسباتی نیز کارآمد هستند. نتایج عددی و تحلیل‌های ارائه‌شده، کارایی این روش‌ها را در حل مسائل واقعی تأیید می‌کنند. با توسعه بیشتر این روش‌ها و بهینه‌سازی پیش‌شرط‌سازها، می‌توان به راه‌حل‌های کارآمدتر و دقیق‌تری برای مسائل پیچیده‌تر دست یافت.

روش‌های ارائه‌شده به شرح زیر هستند:

\begin{enumerate}
\item[1.]
روش‌های کمترین باقی‌مانده پیش‌شرط‌سازی شده 
$PMR$
: این روش‌ها با استفاده از پیش‌شرط‌سازهای مناسب، همگرایی روش‌های تکراری را بهبود می‌بخشند. پیش‌شرط‌سازها: با تبدیل سیستم اصلی به یک سیستم معادل با خواص طیفی بهتر، باعث کاهش تعداد تکرارها و زمان حل می‌شوند.
\item[2.]
روش‌های گالرکین پیش‌شرط‌سازی شده:  این روش‌ها نیز با استفاده از پیش‌شرط‌سازها، دقت و کارایی روش‌های گالرکین را افزایش می‌دهند.
\end{enumerate}
در بخش‌های آزمایشی، عملکرد روش‌های پیش‌شرط‌سازی شده 
$(PMR 
\text{و}
PGal)$
با روش‌های سنتی 
$(MR
\text{و}
Gal)$
مقایسه شد. نتایج نشان دادند که روش‌های پیش‌شرط‌سازی شده به تعداد تکرارهای کمتری نیاز دارند و دقت جواب‌های به‌دست‌آمده نیز بالاتر است.
در مواردی که ماتریس‌ها تکین بودند، روش‌های پیش‌شرط‌سازی شده همچنان عملکرد خوبی از خود نشان دادند. پیش‌شرط‌سازها باعث بهبود طیف ماتریس‌ها و تسریع همگرایی روش‌های تکراری می‌شوند. با کاهش تعداد تکرارها، زمان حل و نیاز به حافظه کاهش می‌یابد. این روش‌ها برای حل مسائل بزرگ‌مقیاس که روش‌های مستقیم قادر به حل آن‌ها نیستند، مناسب هستند. 
\subsection{توسعه و کارهای آینده}
موارد پیشنهادی به شرح زیر هستند:
\begin{enumerate}
\item[1.]
بهینه‌سازی پیش‌شرط‌سازها: توسعه پیش‌شرط‌سازهای کارآمدتر و تطبیقی برای بهبود بیشتر همگرایی.
\item[2.]
کاربرد در مسائل پیچیده‌تر: استفاده از این روش‌ها برای حل معادلات ماتریسی پیچیده‌تر، مانند معادلات ریچاتی و لیاپانوف.
\item[3.]
پیاده‌سازی موازی:  توسعه نسخه‌های موازی از این روش‌ها برای استفاده در سیستم‌های محاسباتی توزیع‌شده و ابری.
\end{enumerate}
