module GridMethod.TaskModel

// General form
// Equation: -p(x) * y(x)'' + q(x) * y(x)' + r(x) * y(x) = f(x)
// Initial conditions:
// α_1 * y(a) - α_2 * y'(a) = α
// β_1 * y(b) + β_2 * y'(b) = β

type Equation =
    { p: float -> float
      q: float -> float
      r: float -> float
      f: float -> float }

type InitialConditions =
    { a: float
      b: float
      α: float
      α_1: float
      α_2: float
      β: float
      β_1: float
      β_2: float }

type Task =
    { Equation: Equation
      InitialConditions: InitialConditions }
