| Copyright | (c) Justus Sagemüller 2016 |
|---|---|
| License | GPL v3 |
| Maintainer | (@) sagemueller $ geo.uni-koeln.de |
| Stability | experimental |
| Portability | portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Data.Manifold.DifferentialEquation
Description
- type DifferentialEqn x ð y = Shade (x, y) -> LocalDifferentialEqn x ð y
- type ODE x y = DifferentialEqn x ℝ⁰ y
- constLinearDEqn :: forall x y ð. (SimpleSpace x, SimpleSpace y, AffineManifold y, SimpleSpace ð, AffineManifold ð, Scalar x ~ ℝ, Scalar y ~ ℝ, Scalar ð ~ ℝ) => ((y, ð) +> (x +> y)) -> ((x +> y) +> (y, ð)) -> DifferentialEqn x ð y
- constLinearODE :: forall x y. (SimpleSpace x, Scalar x ~ ℝ, SimpleSpace y, Scalar y ~ ℝ) => ((x +> y) +> y) -> ODE x y
- constLinearPDE :: forall x y ð. (WithField ℝ SimpleSpace x, WithField ℝ SimpleSpace y, WithField ℝ SimpleSpace ð, AffineManifold ð) => ((x +> y) +> ð) -> (ð +> (x +> y)) -> DifferentialEqn x ð y
- iterateFilterDEqn_static :: (WithField ℝ Manifold x, FlatSpace (Needle x), Refinable y, Geodesic y, FlatSpace (Needle y), WithField ℝ AffineManifold ð, Geodesic ð, SimpleSpace (Needle ð), MonadPlus m) => InformationMergeStrategy [] m (x, Shade' y) iy -> Embedding (->) (Shade' y) iy -> DifferentialEqn x ð y -> PointsWeb x (Shade' y) -> Cofree m (PointsWeb x (Shade' y))
- maxDeviationsGoal :: (WithField ℝ EuclidSpace y, SimpleSpace (Needle y)) => [Needle y] -> x -> Shade' y -> ℝ
- uncertaintyGoal :: (WithField ℝ EuclidSpace y, SimpleSpace (Needle y)) => Metric' y -> x -> Shade' y -> ℝ
- uncertaintyGoal' :: (WithField ℝ EuclidSpace y, SimpleSpace (Needle y)) => (x -> Metric' y) -> x -> Shade' y -> ℝ
- euclideanVolGoal :: (WithField ℝ EuclidSpace y, SimpleSpace (Needle y)) => ℝ -> x -> Shade' y -> ℝ
- data InconsistencyStrategy m x y where
Formulating simple differential eqns.
type DifferentialEqn x ð y = Shade (x, y) -> LocalDifferentialEqn x ð y Source
type ODE x y = DifferentialEqn x ℝ⁰ y Source
An ordinary differential equation is one that does not need any a-priori
partial derivatives to compute the derivative for integration in some
propagation direction. Classically, ODEs are usually understood as
DifferentialEquation ℝ ℝ⁰ y, but actually x can at least
be an arbitrary one-dimensional space (i.e. basically real intervals or 'S¹').
In these cases, there is always only one partial derivative: that which we
integrate over, in the only possible direction for propagation.
constLinearDEqn :: forall x y ð. (SimpleSpace x, SimpleSpace y, AffineManifold y, SimpleSpace ð, AffineManifold ð, Scalar x ~ ℝ, Scalar y ~ ℝ, Scalar ð ~ ℝ) => ((y, ð) +> (x +> y)) -> ((x +> y) +> (y, ð)) -> DifferentialEqn x ð y Source
constLinearODE :: forall x y. (SimpleSpace x, Scalar x ~ ℝ, SimpleSpace y, Scalar y ~ ℝ) => ((x +> y) +> y) -> ODE x y Source
constLinearPDE :: forall x y ð. (WithField ℝ SimpleSpace x, WithField ℝ SimpleSpace y, WithField ℝ SimpleSpace ð, AffineManifold ð) => ((x +> y) +> ð) -> (ð +> (x +> y)) -> DifferentialEqn x ð y Source
iterateFilterDEqn_static :: (WithField ℝ Manifold x, FlatSpace (Needle x), Refinable y, Geodesic y, FlatSpace (Needle y), WithField ℝ AffineManifold ð, Geodesic ð, SimpleSpace (Needle ð), MonadPlus m) => InformationMergeStrategy [] m (x, Shade' y) iy -> Embedding (->) (Shade' y) iy -> DifferentialEqn x ð y -> PointsWeb x (Shade' y) -> Cofree m (PointsWeb x (Shade' y)) Source
Cost functions for error bounds
maxDeviationsGoal :: (WithField ℝ EuclidSpace y, SimpleSpace (Needle y)) => [Needle y] -> x -> Shade' y -> ℝ Source
uncertaintyGoal :: (WithField ℝ EuclidSpace y, SimpleSpace (Needle y)) => Metric' y -> x -> Shade' y -> ℝ Source
uncertaintyGoal' :: (WithField ℝ EuclidSpace y, SimpleSpace (Needle y)) => (x -> Metric' y) -> x -> Shade' y -> ℝ Source
euclideanVolGoal :: (WithField ℝ EuclidSpace y, SimpleSpace (Needle y)) => ℝ -> x -> Shade' y -> ℝ Source
Solver configuration
data InconsistencyStrategy m x y where Source
Constructors
| AbortOnInconsistency :: InconsistencyStrategy Maybe x y | |
| IgnoreInconsistencies :: InconsistencyStrategy Identity x y | |
| HighlightInconsistencies :: y -> InconsistencyStrategy Identity x y |
Instances