انتگرال دوگانه گاوس

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

از روش های انتگرال گیری عددی مانند گاوس لژاندر (یا تربیع گاوسی) می توان به منظور محاسبه ی انتگرال های چندگانه استفاده نمود. انتگرال دوگانه ی زیر را درنظر بگیرید:

doubleint{R}{~}{f(x,y)dA}

که R یک ناحیه ی مستطیلی در سطح است:

R= delim{lbrace}{(x,y) delim{|}{~}{~} a<=x<=b, c<=y<=d}{rbrace}

فرض کنیم n و m اعداد صحیح زوجی باشند که به منظور تعیین تعداد ریشه های چندجمله ای لژاندر (یا تعیین چند نقطه ای بودن انتگرال) انتخاب شده اند. ما ابتدا انتگرال دوگانه را به صورت دو انتگرال داخل هم بازنویسی می کنیم:

doubleint{R}{~}{f(x,y)dA} = int{a}{b}{(int{c}{d}{f(x,y)dy})dx}

سپس سطح انتگرال گیری را با استفاده از تبدیل متغیر به دامنه ی انتگرال گیری فرمول گاوس لژاندر تبدیل می کنیم:

hat{R}= delim{lbrace}{(u,v) delim{|}{~}{~} -1<=u<=1, -1<=v<=1}{rbrace}

و با توجه به دامنه های R و hat{R}، رابطه ی متغیرهای انتگرال گیری x,y,dx,dy را با متغیرهای u,v,du,dv با استفاده از روابط زیر می یابیم:

x = {(b-a)/2}u + (b+a)/2
y = {(d-c)/2}v + (d+c)/2

سپس انتگرال مورد نظر را با استفاده از متغیرهای u,v,du,dv در دامنه ی hat{R} بازنویسی می کنیم:

int{-1}{1}{int{-1}{1}{f(u,v)}}dudv

در نهایت با استفاده از رابطه ی زیر به محاسبه ی انتگرال دوگانه به روش گاوس لژاند می پردازیم:

I = sum{i=1}{n}{~}sum{j=1}{m}{c_{n,i}*c_{m,j}*f(u,v)}

که در رابطه ی فوق c_{n,i} و c_{m,j} به ترتیب ضرایب وزنی بدست آمده از چندجمله ای لژاندر درجه ی n و m می باشند.

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

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

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

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

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

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

    ورودی:

    1. تابع (f(x,y ورودی جهت انتگرال گیری
    2. a: دامنه ی پایینی انتگرال گیری در راستای محور x
    3. b: دامنه ی بالایی انتگرال گیری در راستای محور x
    4. n: تعداد ریشه های چندجمله ای لژاندر (نقاط انتگرال گیری) در راستای محور x که می تواند 2، 3، 4 و یا 5 باشد
    5. c: دامنه ی پایینی انتگرال گیری در راستای محور y
    6. d: دامنه ی بالایی انتگرال گیری در راستای محور y
    7. m: تعداد ریشه های چندجمله ای لژاندر (نقاط انتگرال گیری) در راستای محور y که می تواند 2، 3، 4 و یا 5 باشد

    خروجی:

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

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

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

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

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

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