روش ژاکوبی
در جبر خطی عددی ، روش Jacobi یک الگوریتم تکراری برای تعیین راه حل های یک سیستم کاملاً مورب غالب از معادلات خطی است . هر عنصر مورب حل شده است و یک مقدار تقریبی به آن وصل می شود. فرآیند تا زمانی که همگرا شود تکرار می شود. این الگوریتم یک نسخه سلب شده از روش تبدیل جاکوبی از مورب مورباسیون است . این روش به نام کارل گوستاو ژاکوب ژاکوبی نامگذاری شده است .
فهرست
توضیحات [ ویرایش ]
اجازه دهید
یک سیستم مربع از معادلات خطی n ، که در آن:
سپس را می توان به تجزیه مورب جزء D ، یک قسمت پایین مثلثی L و بخش مثلثی بالای U :
سپس محلول به صورت تکراری از طریق بدست می آید
جایی که است ک هفتم تقریب و یا تکرا
و
تکرار بعدی یا k + 1 است
. فرمول مبتنی بر عنصر بدین ترتیب است:
محاسبهنیاز به هر عنصر در x ( k ) به جز خود دارد. برخلاف روش گاوس-سییدل ، ما نمی توانیم بازنویسی کنیم
با
، زیرا این مقدار توسط بقیه محاسبات مورد نیاز خواهد بود. حداقل مقدار ذخیره سازی دو بردار اندازه n است .
الگوریتم [ ویرایش ]
ورودی: حدس اولیه
به محلول ، (مورب غالب مورب)
، وکتور سمت راست
، معیار همگرایی
خروجی: راه حل هنگامی که همگرایی حاصل شد
نظرات: شبه کد بر اساس فرمول مبتنی بر عنصر فوق
در حالی که همگرایی رسیده است انجام
برای من: = 1 مرحله تا N انجام
برای j: = 1 مرحله تا زمانی که n do انجام دهم
اگر j ≠ i باشد
پایان
پایان
پایان
پایان
همگرایی [ ویرایش ]
شرط همگرایی استاندارد (برای هر روش تکراری) زمانی است که شعاع طیفی ماتریس تکرار کمتر از 1 باشد:
شرط کافی (اما لازم نیست) برای همگرایی روش این است که ماتریس A کاملاً یا غیرقابل برگشت به صورت مورب مسلط است . تسلط مورب سخت گیرانه به این معنی است که برای هر سطر ، مقدار مطلق اصطلاح مورب از مجموع مقادیر مطلق سایر اصطلاحات بیشتر است:
روش ژاکوبی حتی اگر این شرایط راضی نباشد گاهی همگرا می شود.
توجه داشته باشید که روش Jacobi برای هر ماتریس مثبت مثبت متقارن همگرا نیست . مثلا
مثال [ ویرایش ]
یک سیستم خطی از فرم با برآورد اولیه
از رابطه زیر بدست می آید
ما از معادله استفاده می کنیم ، در بالا شرح داده شده ، برای برآورد
. ابتدا معادله را به روشی راحت تر بازنویسی می کنیم
، جایی که
و
. از مقادیر شناخته شده
ما تعیین می کنیم مانند
به علاوه، به عنوان یافت می شود
با و
محاسبه شده ، ما تخمین می زنیم
مانند
:
تکرار بعدی بازده است
این روند تا همگرایی تکرار می شود (یعنی تا زمانی کهکوچک است) راه حل پس از 25 تکرار است
مثال دیگر [ ویرایش ]
فرض کنید سیستم خطی زیر به ما داده می شود:
اگر (0 ، 0 ، 0 ، 0) را به عنوان تقریب اولیه انتخاب کنیم ، سپس اولین راه حل تقریبی توسط
با استفاده از تقریبهای به دست آمده ، روش تکراری تا رسیدن به دقت مطلوب تکرار می شود. در زیر راه حل های تقریبی بعد از پنج تکرار است.
0.6 | 2.27272 | -1.1 | 1.875 |
1.04727 | 1.7159 | -0.80522 | 0.88522 |
0.93263 | 2.05330 | -1.0493 | 1.13088 |
1.01519 | 1.95369 | -0.9681 | 0.97384 |
0.98899 | 2.0114 | -1.0102 | 1.02135 |
راه حل دقیق سیستم (1 ، 2 ، −1 ، 1) است .
مثالی با استفاده از پایتون و نامپی [ ویرایش ]
روش عددی زیر به سادگی برای تولید بردار راه حل تکرار می کند.
def jacobi(A, b, x_init, epsilon=1e-10, max_iterations=500): D = np.diag(np.diag(A)) LU = A - D x = x_init for i in range(max_iterations): D_inv = np.diag(1 / np.diag(D)) x_new = np.dot(D_inv, b - np.dot(LU, x)) if np.linalg.norm(x_new - x) < epsilon: return x_new x = x_new return x # problem data A = np.array([ [5, 2, 1, 1], [2, 6, 2, 1], [1, 2, 7, 1], [1, 1, 2, 8] ]) b = np.array([29, 31, 26, 19]) # you can choose any starting vector x_init = np.zeros(len(b)) x = jacobi(A, b, x_init) print('x:', x) print('computed b:', np.dot(A, x)) print('real b:', b)
Produces the output:
x: [3.99275362 2.95410628 2.16183575 0.96618357] computed b: [29. 31. 26. 19.] real b: [29 31 26 19]
روش ژاکوبی وزنی [ ویرایش ]
تکرار وزنی ژاکوبی از یک پارامتر استفاده می کند برای محاسبه تکرار به عنوان
باانتخاب معمول بودن [1]
همگرایی در مورد قطعی مثبت متقارن [ ویرایش ]
در صورتی که ماتریس سیستم از نوع متقارن مثبت است که می تواند همگرایی را نشان دهد.
اجازه دهیدماتریس تکرار باشد. سپس ، همگرایی برای آن تضمین شده است
جایی که حداکثر ارزش ویژه است.
شعاع طیفی را می توان برای انتخاب خاص از به حداقل رساند به شرح زیر است
جایی که (kappa) است تعداد شرط ماتریس .
منبع