11 static std::vector<double> eulerMethod(std::function<
double(
double,
double)> f,
12 double x0,
double y0,
double h,
int steps);
13 static std::vector<double> rungeKutta4(std::function<
double(
double,
double)> f,
14 double x0,
double y0,
double h,
int steps);
15 static std::vector<double> adamsBashforth(std::function<
double(
double,
double)> f,
16 double x0,
double y0,
double h,
int steps);
19 static std::vector<std::vector<double>> systemRungeKutta4(
20 std::vector<std::function<
double(
double,
const std::vector<double>&)>> f,
21 double x0,
const std::vector<double>& y0,
double h,
int steps);
24 static std::vector<double> shootingMethod(
25 std::function<
double(
double,
double,
double)> f,
26 double a,
double b,
double alpha,
double beta,
int n = 100);
31 static std::vector<std::vector<double>> heatEquation1D(
32 double alpha,
double L,
double T,
int nx,
int nt,
33 std::function<
double(
double)> initialCondition,
34 std::function<
double(
double)> boundaryLeft,
35 std::function<
double(
double)> boundaryRight);
38 static std::vector<std::vector<double>> waveEquation1D(
39 double c,
double L,
double T,
int nx,
int nt,
40 std::function<
double(
double)> initialPosition,
41 std::function<
double(
double)> initialVelocity);
44 static std::vector<std::vector<double>> laplaceEquation2D(
45 int nx,
int ny,
double tolerance = 1e-6,
46 std::function<
double(
double,
double)> boundaryCondition =
nullptr);
49 static std::shared_ptr<Expression> solveLinearODE(
const std::vector<double>& coeffs,
50 std::shared_ptr<Expression> rhs);
51 static std::shared_ptr<Expression> solveSeparableODE(std::shared_ptr<Expression> expr);