منو سایت

  • خانه
  • وبلاگ
  • روش گاس سیدل در متلب از صفر تا صد و نکات کاربردی

روش گاس سیدل در متلب از صفر تا صد و نکات کاربردی

 تاریخ انتشار :
/
  وبلاگ
روش گاس سیدل در متلب از صفر تا صد و نکات کاربردی

روش گاوس – سیدل یکی از رایج ترین روش های تکراری برای حل یک سیستم معادلات خطی جبری است. این روش را می توان برای هر ماتریس همگرا با عناصر غیر صفر به صورت مورب اعمال کرد. روش Gos-Seidel از نام دو ریاضیدان آلمانی، کارل فردریش گاوس و فیلیپ لودویگ فون سیدل نامگذاری شده است.

در واقع، گاوس سیدل یک روش پیچیده تر و نسخه بهبود یافته روش گاوس ژاکوبی است. در این روش نیز مانند هر روش تکراری دیگر معادلات داده شده به طور تقریبی حل شده و تکرار تا حصول دقت مورد نظر انجام می شود.

خواندن را فراموش نکنید: دانلود 13 فیلم رایگان آموزش شبکه عصبی در متلب

در این مقاله به نوشتن کد برنامه با استفاده از روش گاس سیدل در متلب (متلب) می پردازیم و در کنار آن مبانی نظری این روش را در نظر می گیریم و در نهایت نتیجه برنامه متلب را با یک مثال عددی تحلیل می کنیم.

 

نظریه روش های گوس سیدل

قبل از هر چیز بهتر است نگاهی گذرا به مبانی نظری/ریاضی روش گاس سیدل داشته باشیم. ماتریس ها، تکرارها و روش هایی که در زیر به آنها اشاره می کنیم، دستورالعمل های اساسی برای نوشتن کد برنامه برای متد گاس سیدل در متلب هستند.

سیستم معادلات خطی زیر را در نظر بگیرید:

آ11ایکس1 + الف12ایکس2 + الف13ایکس3 + الف14ایکس4 + الف15ایکس5 + الف16ایکس6 ……. + الف1nایکسn = ب1
آ21ایکس1 + الف22ایکس2 + الف23ایکس3 + الف24ایکس4 + الف25ایکس5 + الف26ایکس6 ……. + الف2nایکسn = ب2
آ31ایکس1 + الف32ایکس2 + الف33ایکس3 + الف34ایکس4 + الف35ایکس5 + الف36ایکس6 ……. + الف3nایکسn = ب3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ……. . . . . . …. . . . . . . . . . . …. …. .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ……. . . . . . …. . . . . . . . . . . …. …. .
آn1ایکس1 + الفn2ایکس2 + الفn3ایکس3 + الفn4ایکس4 + الفn5ایکس5 + الفn6ایکس6 ……. + الفnnایکسn = بn

در این دستگاه الفij ضریب عبارات مجهول x را نشان می دهدو است.

معادلات فوق را می توان به صورت ماتریس به صورت زیر نمایش داد:

روش گاوس سیدل در متلب - فرم ماتریس

یا آن را یادداشت کنید [A][X] = [B] بیاور.

حال، با شکستن ماتریس A به اجزای مثلثی پایینی و مثلثی بالایی، به نتیجه زیر می رسیم:

A = L x U

که در آن:

روش گاوس سیدل در متلب - ماتریس مثلثی پایین و بالایی

این سیستم معادلات خطی را می توان به صورت زیر نیز بیان کرد:

L x X = B – UX —– (a)

در روش گاوس-سیدل، معادله (a) با حل مکرر مقدار سمت چپ x و سپس استفاده از مقدار حاصل از x برای حل سمت راست معادله حل می شود.

دانلود: 7 درس کاربردی آموزش برنامه نویسی در متلب

فرآیند تکرار در روش گاوس-سایدل را می توان به صورت ریاضی به صورت زیر نوشت:

ایکس(k + 1) = L -1(B-UX(ک) )

با استفاده از روش جایگزینی رو به جلو، عناصر X(k + 1) می توان آن را به صورت زیر محاسبه کرد:

روش گاوس سیدل در متلب - جایگزینی به جلو

در برنامه متلب نیز برای این روش از همین رویه استفاده می شود. روند تکرار تا زمانی ادامه می یابد که تغییرات در مقادیر مجهول (x) ناچیز شود یا به مقدار مشخصی خطا برسیم.

روش گاس سیدل در متلب

روش % Gauss-Seidel در متلب

تابع x = gauss_siedel (A, B)

disp (‘سیستم معادلات خطی را به شکل AX = B وارد کنید’)

درصد ماتریس ورودی A

A = ورودی (“ماتریس A را وارد کنید: n”)

% بررسی کنید که ماتریس وارد شده یک ماتریس مربع باشد

[na , ma ] = اندازه (A)؛

اگر na ~ = ما

disp («خطا: ماتریس A باید یک ماتریس مربع باشد»)

برگشت

پایان

درصد ماتریس ورودی B

B = ورودی (“ماتریس B را وارد کنید:”)

% بررسی کنید که B یک ماتریس ستونی است

[nb , mb ] = اندازه (B)؛

اگر nb ~ = na || mb ~ = 1

disp («خطا: ماتریس B باید یک ماتریس ستونی باشد»)

برگشت

پایان

تقسیم ماتریس A به ماتریس های مثلثی پایین و مثلث بالایی

% A = D + L + U

D = نمودار (نمودار (A));

L = تریل (A) – D;

U = سه نفر (A) – D

بررسی شرایط همگرایی درصد برای روش گاوس-سایدل

e = max (eig (-inv (D + L) * (U)));

اگر abs (e)> = 1

disp (“از آنجایی که مدول بزرگترین مقدار ویژه ماتریس تکراری کمتر از 1 نیست”)

disp (“این فرآیند همگرا نیست.”)

برگشت

پایان

% فرض اولیه برای X ..؟

% پیش فرض است [ 1 1 …. 1]

r = ورودی (‘هر فرض اولیه برای X؟ (y / n):’، ‘s’);

سوئیچ r

مورد ‘y’

% درخواست حدس اولیه

X0 = ورودی («فرض اولیه را برای X وارد کنید: n»)

% بررسی فرض اولیه

[nx, mx] = اندازه (X0)؛

اگر nx ~ = na || mx ~ = 1

disp («خطا: بررسی ورودی»)

برگشت

پایان

در غیر این صورت

X0 = واحد (na، 1)؛

پایان

درصد خطای مجاز در پاسخ نهایی

t = ورودی (‘خطای مجاز را در پاسخ نهایی وارد کنید:’);

tol = t * واحد (na, 1);

k = 1;

X (:، 1) = X0;

err = 1000000000 * رند (na، 1)٪ فرض اولیه برای خطای چرخه

در حالی که مجموع (abs (err)> = tol) ~ = صفر (na, 1)

X (:، k + 1) = -inv (D + L) * (U) * X (:، k) + inv (D + L) * B;% فرمول گاوس-سایدل

err = X (:، k + 1) – X (:، k)؛ درصد خطا در یافتن

k = k + 1;

پایان

fprintf (“پاسخ نهایی پس از % g تکرار n”، k است)

X (:، k)

در برنامه فوق اولین تابع MATLAB x = gauss_siedel (A, B) تعریف شده است. در اینجا A و B ماتریس هایی هستند که با ضرایب استفاده شده در سیستم معادلات خطی ساخته می شوند. عناصر A و B طبق دستور اصلی برنامه نویسی متلب وارد برنامه می شوند.

حتما بخوانید: نکات اصلی و مهم سیمولینک را در نرم افزار متلب بیاموزید

A و B باید در نظر گرفته شوند: A باید یک ماتریس مربع و B باید یک ماتریس ستونی باشد تا معیارهای روش گاس سیدل را برآورده کند. سپس، همانطور که قبلا توضیح دادیم، ماتریس A یک جزء است مثلث پایینی و مثلث بالایی برای بدست آوردن مقدار تکرار اول تجزیه می شوند.

برای شروع تکرار دوم از مقدار متغیرهای به دست آمده از تکرار اول استفاده می شود و برنامه به تکرار ادامه می دهد تا به راه حل مورد نظر کاربر برسد.

در زیر نمونه ای از صفحه اصلی برنامه MATLAB آمده است:

روش Gauss-Seidel در متلب - خروج

نمونه ای از روش گاوس-سایدل

در اینجا برنامه فوق MATLAB را که روش گاس سیدل بود به صورت ریاضی حل کردیم. معادلات داده شده عبارتند از:

4 برابر1 – х2 -ایکس3 = 3
-2x1 + 6 برابر2 + x3 = 9
-ایکس1 + x2 – 7 برابر3 = -6

برای بدست آوردن مقدار تکرار اول، معادلات داده شده را به صورت زیر می آوریم:

4 برابر1 – 0 – 0 = 3
-2x1 + 6 برابر2 + 0 = 9
-ایکس1 + x2 – 7 برابر3 = -6

از معادله اول داریم: ایکس1 = 3/4 = 0.750

مقدار x1 جایگزین در معادله دوم: x2 = [9 + 2(0.750)] / 6 = 1750

مقادیر x1 و x2 جایگزین در معادله سوم: x3 = [-6 + 0.750 − 1.750] / 7 = – 1000

بنابراین نتیجه اولین تکرار خواهد بود: (0750, 1,750, -1,000)

کل فرآیند تکراری که از روش گاس سیدل (و برنامه MATLAB بالا) پیروی می کند در اینجا آورده شده است:

روش گاوس سیدل در متلب - تکرار

جایی که k تعداد تکرارهاست.

محلول نهایی به دست آمده نیز (1000، 2000، -1000) می باشد.

ارائه نرم افزار متلب (4 کاربرد اصلی و 3 نقطه قوت)

اگر هنوز در مورد روش گاس سیدل یا برنامه متلب سوالی دارید در قسمت نظرات همین پست با ما در میان بگذارید.