تکرار توان یا الگوریتم به تکرار Von Mises
در ریاضیات ، تکرار توان (که به آن روش قدرت نیز گفته می شود ) یک الگوریتم ارزش ویژه است : با توجه به ماتریس مورب ، الگوریتم یک عدد تولید می کند
، که بزرگترین (در مقدار مطلق) ارزش ویژه از است
، و یک بردار غیر صفر
، که یک بردار ویژه مربوط به
، به این معنا که،
. این الگوریتم به تکرار Von Mises نیز معروف است . [1]
تکرار نیرو یک الگوریتم بسیار ساده است ، اما ممکن است به آرامی همگرا شود. وقت گیرترین کار الگوریتم ضرب ماتریس استتوسط یک بردار ، بنابراین برای یک ماتریس پراکنده بسیار بزرگ با اجرای مناسب موثر است.
فهرست
روش [ ویرایش ]
انیمیشنی که الگوریتم تکرار توان را در ماتریس 2x2 تجسم می کند. ماتریس توسط دو بردار ویژه آن به تصویر کشیده شده است. خطا به عنوان محاسبه می شود
الگوریتم تکرار توان با بردار شروع می شود ، که ممکن است یک تقریب با بردار ویژه غالب یا یک بردار تصادفی باشد. روش با رابطه عود توصیف می شود
بنابراین ، در هر تکرار ، بردار در ماتریس ضرب می شود
و عادی شده
اگر فرض کنیم دارای یک ارزش ویژه است که از نظر شدت کاملاً بزرگتر از سایر مقادیر ویژه آن و بردار شروع است
دارای یک جز non غیر صفر در جهت یک بردار ویژه مرتبط با مقدار ویژه غالب است ، سپس یک دنباله
همگرا می شود به یک بردار ویژه مرتبط با ارزش ویژه غالب.
بدون دو فرض بالا ، توالی لزوماً همگرا نمی شود. در این سکانس ،
،
جایی که یک بردار ویژه است که با ارزش ویژه غالب مرتبط است ، و
. حضور اصطلاح
دلالت دارد
همگرایی نمی کند مگر اینکه
. تحت دو فرض ذکر شده در بالا ، دنباله
تعریف شده توسط
با ارزش ویژه غالب همگرا می شود (با ضریب ریلی ). [ توضیحات لازم است ]
یکی می تواند این را با الگوریتم زیر محاسبه کند (در پایتون با NumPy نشان داده شده است):
#! / usr / bin / env python3
وارد کردن numpy به عنوان np
دف power_iteration ( ، num_simulations : INT ): # در حالت ایده آل را انتخاب نمایید یک بردار تصادفی # برای کاهش شانس است که بردار # متعامد به بردارهای ویژه است b_k = NP . تصادفی . رند ( . شکل [ 1 ])
for _ in range ( num_simulations ):
# محاسبه محصول ماتریس توسط بردار Ab
b_k1 = np . نقطه ( A ، b_k )
# محاسبه هنجار
b_k1_norm = np . linalg . هنجار ( b_k1 )
# بردار
b_k = b_k1 / b_k1_norm را عادی کنید
بازگشت b_k
power_iteration ( NP . آرایه ([[ 0.5 ، 0.5 ]، [ 0.2 ، 0.8 ]])، 10 )
بردار به یک بردار ویژه مرتبط در حالت ایده آل ، باید از ضریب Rayleigh برای بدست آوردن مقدار ویژه مربوطه استفاده کرد.
این الگوریتم برای محاسبه Google PageRank استفاده می شود .
از این روش می توان برای محاسبه شعاع طیفی (مقدار ویژه با بیشترین اندازه برای ماتریس مربع) با محاسبه ضریب Rayleigh استفاده کرد.
تحلیل [ ویرایش ]
اجازه دهید به شکل متعارف اردن تجزیه می شود :
، جایی که اولین ستون از
یک بردار ویژه از است
مربوط به ارزش ویژه مسلط
. از آنجا که ارزش ویژه مسلط به
منحصر به فرد است ، اولین بلوک اردن از
هست
ماتریس
جایی که
بزرگترین مقدار ویژه A از نظر اندازه است. بردار شروع
می توان به عنوان یک ترکیب خطی از ستون های V نوشت :
با فرض ، دارای یک جز non غیر صفر در جهت ارزش ویژه غالب است ، بنابراین
.
رابطه عود محاسباتی مفید برای می تواند به صورت زیر بازنویسی شود:
که در آن عبارت: بیشتر قابل تجزیه و تحلیل است.
عبارت فوق ساده به صورت
این حد از این واقعیت حاصل می شود که مقدار ویژه از کمتر از 1 است ، بنابراین
نتیجه می شود که:
با استفاده از این واقعیت ، را می توان به شکلی نوشت که بر رابطه آن با تأکید دارد
وقتی k بزرگ است:
جایی که و
مانند
تسلسل و توالی محدود است ، بنابراین شامل یک دنباله همگرا است. توجه داشته باشید که بردار ویژه مربوط به مقدار ویژه غالب فقط تا یک مقیاس منحصر به فرد است ، بنابراین اگرچه توالی
ممکن است همگرا نشود ،
تقریباً یک بردار ویژه A برای k بزرگ است .
متناوباً ، اگر A قابل مورب باشد ، اثبات زیر همان نتیجه را دارد
اجازه دهید λ 1 ، λ 2 ، ...، λ متر باشد متر مقادیر ویژه (شمارش، با تعدد) از و اجازه دهید V 1 ، V 2 ، ...، V متر باشد بردارهای ویژه مربوطه. فرض کنید که ارزش ویژه غالب است ، به طوری که
برای
.
بردار اولیه می توان نوشت:
اگر به صورت تصادفی (با احتمال یکنواخت) و سپس c 1 ≠ 0 با احتمال 1 انتخاب می شود . اکنون،
از سوی دیگر:
از این رو، به (چند برابر) بردار ویژه همگرا می شود
. همگرایی هندسی و با نسبت است
جایی که دومین ارزش ویژه مسلط است. بنابراین ، اگر یک مقدار ویژه نزدیک به مقدار ویژه غالب وجود داشته باشد ، روش به آرامی همگرا می شود.
برنامه ها [ ویرایش ]
اگرچه روش تکرار نیرو فقط یک مقدار ویژه از یک ماتریس را تقریب می زند ، اما برای برخی از مشکلات محاسباتی همچنان مفید است . به عنوان مثال ، Google از آن برای محاسبه اسناد PageRank در موتور جستجوی خود استفاده می کند [2] و توییتر از آن برای نشان دادن توصیه های کاربران به دنبال استفاده از آنها استفاده می کند. [3] روش تکرار توان به ویژه برای ماتریس های پراکنده ، مانند ماتریس وب ، یا به عنوان روش بدون ماتریس که نیازی به ذخیره ماتریس ضریب نیست ، مناسب است. صریحاً ، اما درعوض می تواند به یک عملکرد ارزیابی محصولات بردار ماتریس دسترسی پیدا کند
. برای ماتریس های غیر متقارن که به خوبی شرطی شده اند ، روش تکرار نیرو می تواند از تکرار پیچیده تر Arnoldi بهتر باشد. برای ماتریس های متقارن ، از روش تکرار توان به ندرت استفاده می شود ، زیرا سرعت همگرایی آن می تواند به راحتی افزایش یابد بدون اینکه هزینه کمی برای هر تکرار کاهش یابد. به عنوان مثال ، تکرار Lanczos و LOBPCG را ببینید .
برخی از الگوریتم های پیشرفته ارزش ویژه پیشرفته تر را می توان به عنوان تغییرات تکرار توان درک کرد. به عنوان مثال ، روش تکرار معکوس تکرار توان را به ماتریس اعمال می کند. الگوریتم های دیگر کل زیر فضای تولید شده توسط بردارها را بررسی می کنند
. این زیرفضا به زیر فضایی کریلوف معروف است . با تکرار Arnoldi یا تکرار Lanczos قابل محاسبه است .
منبع
https://en.wikipedia.org/wiki/Power_iteration