[ create a new paste ] login | about

Link: http://codepad.org/VWyQ0hg2    [ raw code | output | fork ]

C, pasted on Jul 9:
#include <stdio.h>
#include <math.h>
double dxdt(double t, double x, double y) { return y; }
double dydt(double t, double x, double y) { return -sin(x); }

#define N 10000
#define T 10.0
int main() {
  double x, y, t;
  double k1x, k2x, k1y, k2y;
  int k;
  x = 0.0;
  y = 1.0;
  for (k = 0; k < T * N; k++) {
    k1x = T / N * dxdt(t, x, y);
    k1y = T / N * dydt(t, x, y);
    k2x = T / N * dxdt(t + T / N, x + k1x, y + k1y);
    k2y = T / N * dydt(t + T / N, x + k1x, y + k1y);
    x = x + (k1x + k2x) / 2.0;
    y = y + (k1y + k2y) / 2.0;
    t = T / N * k;
    printf("(t, x, y) = (%.3f, %.3f, %.3f)\n", t, x, y);
  }
  return 0;
}
/* end */


Output:
1
2
In function `dydt':
undefined reference to `sin'


Create a new paste based on this one


Comments: