#include "TrueBASIC.h" void update(double *x, double *v, double w2, double gamma, double omega, double *t, double dt, double dt2); double f(double x, double v, double t, double w2, double gamma, double omega); void update(double *x, double *v, double w2, double gamma, double omega, double *t, double dt, double dt2) { double a, amid, tmid, vmid, xmid; a = f(*x, *v, *t, w2, gamma, omega); // O֐ vmid = (*v) + a*dt2; xmid = (*x) + (*v)*dt2; tmid = (*t) + dt2; amid = f(xmid, vmid, tmid, w2, gamma, omega); (*v) += amid*dt; (*x) += vmid*dt; (*t) = tmid + dt2; } double f(double x, double v, double t, double w2, double gamma, double omega) { double f_; f_ = -w2*x - gamma*v + cos(omega*t); return f_; }