#include #include #include "ivp.h" #include "vec.h" // Function declarations int main(); vec<2> f1( double t, vec<2> y ); // Function definitions vec<2> f1( double t, vec<2> y ) { return vec<2>{ y[1], -y[0] }; } int main() { std::cout.precision( 16 ); std::clog.precision( 16 ); double const PI{ std::acos(-1) }; ivp> y1{ f1, 0.0, vec<2>{ 1.0, 1.0 }, 0.1, 1e-10, 1e-5, vec<2>::norm }; for ( double t{0.0}; t <= 2.0*PI; t += 0.01 ) { std::cout << "y1(" << t << ") = " << y1(t) << std::endl; } return 0; }