25 inline constexpr T integ_riemann_sum(T start, T end, T step, Lambda &&fct) {
51 inline constexpr std::pair<std::vector<T>, std::vector<T>>
euler_ode(
52 T start, T end, T step, Lambda &&ode, T x0, T u0) {
53 std::vector<T> U = {u0};
54 std::vector<T> X = {x0};
58 for (T x = x0 + step; x < end; x += step) {
59 u = u_prev + ode(u_prev, x) * step;
65 std::vector<T> X_backward, U_backward;
66 for (T x = x0 - step; x > start; x -= step) {
67 u = u_prev - ode(u_prev, x) * step;
68 X_backward.push_back(x);
69 U_backward.push_back(u);
72 X.insert(X.begin(), X_backward.rbegin(), X_backward.rend());
73 U.insert(U.begin(), U_backward.rbegin(), U_backward.rend());
constexpr std::pair< std::vector< T >, std::vector< T > > euler_ode(T start, T end, T step, Lambda &&ode, T x0, T u0)
Euler solving of ODE The ode has the form.