تکرار ضریب ریلی یک الگوریتم ارزش ویژه است که ایده تکرار معکوس را با استفاده از ضریب ریلی برای بدست آوردن برآورد دقیق تر از ارزش ویژه گسترش می دهد .
تکرار ضریب ریلی یک روش تکراری است ، یعنی توالی از راه حل های تقریبی را ارائه می دهد که در یک حد واقعی به یک محلول واقعی همگرا می شوند . همگرایی بسیار سریع تضمین شده است و برای به دست آوردن تقریب منطقی در عمل بیش از چند تکرار لازم نیست. ریلی خارج قسمت تکرار الگوریتم همگرا cubically برای هرمیتی یا متقارن ماتریس، با توجه به بردار اولیه این است که به اندازه کافی نزدیک به یک بردار ویژه از ماتریس است که در حال تجزیه و تحلیل.
فهرست
الگوریتم [ ویرایش ]
الگوریتم شباهت زیادی به تکرار معکوس دارد ، اما مقدار ویژه برآورد شده در پایان هر تکرار را با ضریب ریلی جایگزین می کند. با انتخاب مقداری شروع کنید به عنوان حدس ارزش اولیه برای ماتریس هرمیتین
. بردار اولیه
همچنین باید به عنوان حدس اولیه بردار ویژه عرضه شود.
تقریب بعدی بردار ویژه را محاسبه کنید توسط
جایی که ماتریس هویت است و تقریب بعدی مقدار ویژه را به ضریب ریلی تکرار فعلی برابر می کنیم
برای محاسبه بیش از یک مقدار ویژه ، الگوریتم را می توان با یک روش تورم ترکیب کرد.
توجه داشته باشید که برای مشکلات بسیار کوچک ، جایگزینی ماتریس معکوس با مواد افزودنی مفید است ، که همان تکرار را ارائه می دهد زیرا برابر با معکوس تا مقیاس بی ربط است (معکوس تعیین کننده ، به طور خاص). صحیح محاسبه صریح از معکوس آسان تر است (اگرچه معکوس برای بردارهایی برای مسائلی که کوچک نیستند نیز به راحتی قابل استفاده است) ، و از نظر عددی کاملاً صحیح است زیرا به عنوان همگرایی مقدار ویژه به خوبی تعریف می شود.
مثال [ ویرایش ]
ماتریس را در نظر بگیرید
که مقادیر ویژه دقیق آن است ،
و
، با بردارهای ویژه مربوطه
و
.
(جایی که نسبت طلایی است).
بزرگترین ارزش ویژه است و مربوط به هر بردار ویژه متناسب با
ما با حدس اولیه ارزش ویژه از شروع می کنیم
.
سپس ، تکرار اول بازده دارد
تکرار دوم ،
و سوم ،
که از آن همگرایی مکعبی مشهود است.
اجرای اکتاو
function x = rayleigh(A, epsilon, mu, x)
x = x / norm(x);
% the backslash operator in Octave solves a linear system
y = (A - mu * eye(rows(A))) \ x;
lambda = y' * x;
mu = mu + 1 / lambda
err = norm(y - lambda * x) / norm(y)
while err > epsilon
x = y / norm(y);
y = (A - mu * eye(rows(A))) \ x;
lambda = y' * x;
mu = mu + 1 / lambda
err = norm(y - lambda * x) / norm(y)
end
endمنبع
https://en.wikipedia.org/wiki/Rayleigh_quotient_iteration
در این وبلاگ به ریاضیات و کاربردهای آن و تحقیقات در آنها پرداخته می شود. مطالب در این وبلاگ ترجمه سطحی و اولیه است و کامل نیست.در صورتی سوال یا نظری در زمینه ریاضیات دارید مطرح نمایید .در صورت امکان به آن می پردازم. من دوست دارم برای یافتن پاسخ به سوالات و حل پروژه های علمی با دیگران همکاری نمایم.در صورتی که شما هم بامن هم عقیده هستید با من تماس بگیرید.