انتگرال تربیع گاوسی

Gaussian Quadrature Integration
انتگرال تربیع گاوسی با متلب
معرفی

در روش انتگرال گیری گوس کوادراچر (Gauss Quadrature)  از نقاط یا گره هایی با فاصله ی نامساوی در طول بازه ی انتگرال گیری استفاده می گردد. گره های x1,x2,...,xn در بازه ی delim{[}{a,b}{]} و ضرایب c1,c2,...,cn به نحوی انتخاب می شوند که خطای مورد انتظار به حداقل مقدار خود برسد:

int{a}{b}{f(x)dx} ~ approx ~ sum{i=1}{n}{c_i f(x_i)}

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

ضرایب c1,c2,...,cn مقادیری دلخواه هستند و هر عددی می توانند باشند، و همچنین گره های x1,x2,...,xn تنها محدود به این هستند که باید در بازه ی انتگرال گیری delim{[}{a,b}{]} قرار داشته باشند. در واقع ما 2n پارامتر برای انتخاب داریم. اگر تابع انتگرال گیری شونده از نوع چندجمله ای باشد و بخواهیم جواب دقیق انتگرال آن را در بازه ی مورد نظر بیابیم، باید چندجمله ای مورد نظر ما حداکثر از درجه ی 2n-1 باشد تا شامل 2n پارامتر مجهول باشد. پس با دانستن این موضوع می توان مقدایر گره ها و ضرایبی را که برای چندجمله ای های دارای درجات مختلف، جواب دقیق می دهند محاسبه نمود.

به طور خلاصه می توان اثبات نمود که برای انتگرال کوادراچر گوسی رابطه ی زیر قابل بیان است:

int{a}{b}{f(x)dx} ~ approx ~ {b-a}/2 sum{j=1}{n}{c_{n,j} f({(b-a)r_{n,j}+b+a}/2)}

که برای توابع چندجمله ای از درجه ی حداکثر 2n+1 پاسخ دقیق بدست می دهد. در رابطه ی فوق c_{n,1},c_{n,2},...,c_{n,n} ضرایب و r_{n,1},r_{n,2},...,r_{n,n} ریشه های چندجمله ای لژاندر هستند که در محاسبه ی انتگرال تقریبی مورد استفاده قرار میگیرند. روش استفاده از چندجمله ای های لژاندر برای استخراج ضرایب انتگرال گاوس در این متن خلاصه بیان نگردیده است و علاقه مندان می توانند توضیحات مفصل را در کتب تکست آنالیز عددی بیابند.

مقادیر ضرایب و ریشه های مورد نیاز برای انتگرال گاوس مرتبه ی 2 تا 5 در جدول زیر نمایش داده شده است.

ضرایب و ریشه های تربیع گاوس

    برنامه نویسی با MATLAB

    در اینجا با استفاده از نرم افزار متلب (MATLAB) برنامه ای جهت محاسبه انتگرال تابع به روش گاوس کوادراتور ارائه گردیده است. دو کد برای این منظور در یک فایل فشرده ارائه گردیده است:

    1. کد صریح (explicit) که در خروجی روند حل کامل مسئله را نمایش می دهد

    2. کد غیرصریح (معمولی) که تنها پاسخ نهایی را نمایش می دهد

    لازم به ذکر است که برنامه های ارائه شده قادر به حل تمامی مثال های قابل حل با روش انتگرال گیری گاوس کوادراتور و دریافت هر تعداد تقسیمات انتگرال گیری مورد نظر کاربران گرامی بوده و به صورت کاملا عمومی (general) کدنویسی شده اند.

    ورودی ها و خروجی ها

    ورودی:

    1. تابع (f(x ورودی جهت انتگرال گیری
    2. دامنه ی پایینی انتگرال گیری a
    3. دامنه ی بالایی انتگرال گیری b
    4. مرتبه (درجه) انتگرال n که می تواند 2، 3، 4 و یا 5 باشد

    خروجی:

    1. حل کامل مسئله به صورت صریح
    2. نمایش جدول ضرایب و ریشه های انتگرال گوس
    3. مقدار نهایی پاسخ انتگرال

    تصاویر اجرای برنامه

    مشاهده ی ورودی و خروجی برنامه در یک مثال نمونه

    مشاهده ی ورودی و خروجی برنامه ی غیر صریح در یک مثال

    این برنامه با نسخه های متلب/MATLAB سال های 2010-2013 تست شده است. در صورت استفاده از نسخه ی سال های دیگر لایبریکا تضمین کننده ی اجرای صحیح برنامه نمی باشد.