Lorenz equation
#include <cstdlib>
const double DEFAULT_T1 = 30.0;
struct Lorenz {
Integrator x1, x2, x3;
Lorenz(double sigma, double lambda, double b) :
x1(sigma*(x2 - x1), 1),
x2((1 + lambda - x3)*x1 - x2, 1),
x3(x1*x2 - b*x3, 1) {}
};
Lorenz L(10, 24, 2);
Print(
"%6.2f %.5g %.5g %.5g\n",
T.
Value(), L.x1.Value(), L.x2.Value(), L.x3.Value());
}
int main(
int argc,
char *argv[]) {
double maxtime = DEFAULT_T1;
if (argc > 1)
maxtime = std::atof(argv[1]);
if (maxtime < 1.0) {
_Print(
"\nUsage: %s [maxtime>=1,default=%g] \n\n", argv[0], DEFAULT_T1);
return 1;
}
Print(
"# Lorenz equation output (maxtime=%g) \n", maxtime);
Print(
"# Time x1 x2 \n");
}