룽게-쿠타 방법

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

수치 해석에서, 룽게-쿠타 방법(Runge-Kutta方法, 영어: Runge–Kutta method)은 미분 방정식 중 초기값 문제를 푸는 방법 중 하나이다.

역사[편집]

1900년 경 독일의 수학자 카를 다비트 톨메 룽게마르틴 빌헬름 쿠타가 개발하였다.

일반적인 4차 룽게-쿠타 방법[편집]

일반적으로 사용하는 룽게-쿠타 방법은 4차 룽케-쿠타 방법으로 보통 "RK4" 라고 쓴다. 별다른 수식어 없이 룽게-쿠타 방법을 쓴다고 말한다면 대체로 4차 룽게-쿠타 방법을 쓴다는 뜻이다.

다음과 같은 초기값문제

에 대한 RK4 방법은 다음과 같다.

여기서 의 RK4 근사값이다.

RK4 방법은 4차 해법이다. 이는 각 단계에서의 오류가 차, 전체 오류가 차라는 것을 의미한다.


코드[편집]

  • C/C++ 코드
//Program Of Rung-Kutta 4th Order

# include<stdio.h>
# include<conio.h>
# include<math.h>

float fx(float x,float y)
{
  return(x*y+1);
}
void main()
{
  float x0,y0,x1,y1,h,i,ax,ty,k1,k2,k3,k4;
  clrscr();
  printf("\n Enter Value Of x0 and y0");
  scanf("%f %f",&x0,&y0);
  printf("\n Enter Value of h");
  scanf("%f",&h);
  printf("\n Enter Final Value of x");
  scanf("%f",&ax);
  printf("\nx\ty");
  printf("\n_______________________________________\n");
  do
  {
    k1=h*fx(x0,y0);
    k2=h*fx(x0+h/2,y0+k1/2);
    k3=h*fx(x0+h/2,y0+k2/2);
    k4=h*fx(x0+h,y0+k3);
    y1=y0+0.1667*(k1+(2*k2)+(2*k3)+k4);
    x1=x0+h;
    printf("\n%.4f\t%.4f",x1,y1);
    x0=x1;
    y0=y1;
  }while(x0<ax);
  getch();
}

참고 문헌[편집]

각주[편집]