module ProjectionMethods.RitzTaskModel

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

type RitzEquation =
    { p: float -> float
      r: float -> float
      f: float -> float }

type RitzInitialConditions =
    { α_1: float
      α_2: float
      β_1: float
      β_2: float }

type RitzTask =
    { Equation: RitzEquation
      InitialConditions: RitzInitialConditions }
