روش رانگ کوتا (RK)

12375 بازدید

در این پست قصد داریم یک برنامه به زبان MATLAB بنویسیم که یک معادله دیفرانسیلی را با روش رانگ کوتا ( Runge Kutta) مرتبه 4 حل کند.

الگوریتم حل در روش رانگ کوتا بصورت زیر می باشد:

 

runge kutta

 

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

y’=1+y2

در این مثال، مقدار گام (h) را برابر 0.1 در نظر گرفته و مقادیر اولیه بصورت  x0=0 و y0=0 تعریف شده اند. تعداد مراحل نیز n=20 می باشد.

 h=0.1    ;   x= 0.1  to  1.6

کد نوشته شده به زبان متلب بصورت زیر می باشد:

      
x0=0;

y0=0;

      n=20;
      
      h=0.1;
      
      f=inline('y^2+1','x','y');
      
      X=zeros(1,n)
      
      Y=zeros(1,n)
      
      X(1)=x0
      
      Y(1)=y0
      
      for ii=1:n
      
          k1=h*(f(X(ii),Y(ii)));
      
          k2=h*(f(X(ii)+h/2,Y(ii)+k1/2));
      
          k3=h*(f(X(ii)+h/2,Y(ii)+k2/2));
      
          k4=h*(f(X(ii)+h,Y(ii)+k3));
      
          Y(ii+1)=Y(ii)+1/6*(k1+2*k2+2*k3+k4);
      
      end
      
fprintf('y= %.10f\n', y(i+1));

 

نتیجه این برنامه بصورت زیر می باشد:

y = 3.6279391965

 

مطالب مرتبط

دیدگاهتان را بنویسید

بخش های مورد نیاز علامت گذاری شده اند

نشانی ایمیل منتشر نخواهد شد

نویسنده : آدرس سایت : ایمیل :
کد روبرو را وارد نمایید
captcha

تعداد 5 دیدگاه برای نوشته " روش رانگ کوتا (RK)" ارسال شده است .

    behnam 8 دی 1394 در 1:54 ب.ظ
  1. salam
    merc az codeton
    2ta irade typi dasht k man dorostesh kardam
    ama bazam javab nemide, chera??
    javabesh binahayt mishe

    mamnoon

  2. پاسخ
    کد نویس 20 دی 1394 در 4:25 ق.ظ
  3. قبل نشر کد حتما کد رو در متلب اجرا کنید
    چون این کد جواب صحیح نمیده

  4. پاسخ
      مدیریت 21 دی 1394 در 9:21 ق.ظ
    • با دستورات متلب و نحوه اجرا کردن آن آشنا بشین.
      کد تست شده و مشکلی ندارد

    • پاسخ
    پیمان 27 آذر 1395 در 7:31 ق.ظ
  5. salam man code ro vared kardam va in error ro dad:(Undefined function ‘X’ for input arguments of type ‘double’.)

  6. پاسخ
    ششششششششششششش 27 دی 1397 در 6:48 ب.ظ
  7. x0=0;

    y0=0;%y’=1+y^2

    n=20;

    h=0.1;

    f=inline(‘y^2+1′,’x’,’y’);

    X=zeros(1,n)

    Y=zeros(1,n)

    X(1)=x0

    Y(1)=y0

    for ii=1:n

    k1=h*(f(X(ii),Y(ii)));

    k2=h*(f(X(ii)+h/2,Y(ii)+k1/2));

    k3=h*(f(X(ii)+h/2,Y(ii)+k2/2));

    k4=h*(f(X(ii)+h,Y(ii)+k3));

    Y(ii+2)=Y(ii)+1/6*(k1+2*k2+2*k3+k4);

    end

    fprintf(‘y= %.10f\n’, Y(ii+1));

  8. پاسخ

0

شبکه های اجتماعی

دانشنامه تخصصی مهندسی ایران را در شبکه های اجتماعی دنبال کنید

0 0

همکاران ما

گروه مپنا
گروه مپنا
دانشگاه تهران
دانشگاه تهران
سایپا
سایپا
ایران خودرو
ایران خودرو
شرکت ملی نفت ایران
شرکت ملی نفت ایران
ذوب‌آهن اصفهان
ذوب‌آهن اصفهان
فولاد خوزستان
فولاد خوزستان
درخواست نرم افزار
در صورتی که نیاز به نرم افزار خاصی دارید، با ما تماس بگیرید.
    همکاران ما در سریع ترین زمان ممکن پاسخگو شما خواهند بود.