home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / C-SSP.ARJ / DEFOMA.C < prev    next >
Encoding:
Text File  |  1984-08-07  |  875 b   |  36 lines

  1.   defoma(iter,h,x,y,dy,iflag,d)
  2.  
  3.       /* subroutine to solve first-order ordinary differential */
  4.       /* equations y' = f(x,y) by modified Adam's method.      */
  5.  
  6.       int iflag,iter;
  7.       float d[],dy[],h,x[],y[];
  8.  
  9.    {
  10.       int i,j;
  11.       float xn,yn,yi;
  12.       double yprime();
  13.  
  14.       d[0] = 0.;
  15.       d[1] = 0.;
  16.       d[2] = 0.;
  17.       xn = x[0];
  18.       yn = y[0];
  19.       dy[0] = yprime(xn,yn,iflag);
  20.       j = 4;
  21.       defork(j,h,x,y,dy,iflag);
  22.  
  23.       for(i = 3; i <= iter-2; i++)
  24.       {
  25.       xn = x[i+1];
  26.       yn = y[i] + h*(55.*dy[i] - 59.*dy[i-1]+37.*dy[i-2]-9.*dy[i-3])/24.;
  27.       yi = yn;
  28.       dy[i+1] = yprime(xn,yn,iflag);
  29.       y[i+1] = y[i]+h*(9.*dy[i+1]+19.*dy[i]-5.*dy[i-1]+dy[i-2])/24.;
  30.       xn = x[i+1];
  31.       yn = y[i+1];
  32.       dy[i+1] = yprime(xn,yn,iflag);
  33.       d[i+1] = -19.*(y[i+1] - yi)/270.;
  34.       }
  35.     }
  36.