Автор Тема: Помогите решить задание на С++. Решить этот ДУ методом Рунге-Кутта  (Прочитано 2697 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн artecovez

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
помогите пжл....очень срочн онадо решить задачу
есть функция y"=f(x,y),известно y'(x0)и y(x0) надо решить этот диффур методом Рунге-Кутта...
_________________________________________________________________________________________
также есть наметки к программе,но она не работает полностью...
#include "stdafx.h"

#include "stdio.h"
#include "math.h"
double f( double x, double y,double y1)
{return 2;}
void main ()
{
 int i,n;
 double y,y1,h,p,x0,y0,a,b,p2,y2,k1,k2,k3,k4,m1,m2,m3,m4,x,e;
  printf ("\n y0=") ;
 scanf ("%f",& y0);
 printf ("\n y=") ;
 scanf("%f",&y);
 printf ("\n h=") ;
 scanf ("%f",&h);
 printf ("\n a=") ;
 scanf ("%f", &a);
 printf("\n b=") ;
 scanf ("%f",&b);
 p=y0;
 x=a;
   do            
{
 k1=p*h;
 m1=h*f(x,y,p);
 k2=h*(p+k1/2);
 m2=h*f(x+h/2,y+m1/2,p+k1/2);
 k3=h*(p+k2/2);
 m3=h*f(x+h/2,y+m2/2,p+k2/2);
 k4=h*(p+k3);
 m4=h*f(x+h,y+m3,p+k3);
 p2=p+(h/6)*(k1+2*k2+2*k3+k4);
 y2=y+(h/6)*(m1+2*m2+2*m3+m4);
 x=x+h;
 p=p2;
 y=y2;
}
while (x<b);
printf ("x=%f,y=%f,p=%f",x,y,p);
scanf("%lf", &e);
}

слезно прошу помогите!=))
« Последнее редактирование: 24 Апреля 2010, 23:07:20 от Asix »