5 import org.apache.commons.math.linear.ArrayRealVector;
6 import org.apache.commons.math.linear.DecompositionSolver;
7 import org.apache.commons.math.linear.LUDecompositionImpl;
8 import org.apache.commons.math.linear.RealMatrix;
9 import org.apache.commons.math.linear.RealVector;
10 import org.apache.commons.math.ode.AbstractIntegrator;
11 import org.apache.commons.math.ode.DerivativeException;
12 import org.apache.commons.math.ode.FirstOrderDifferentialEquations;
13 import org.apache.commons.math.ode.IntegratorException;
30 throw new RuntimeException(
"Not yet implemented.");
39 public double integrate(FirstOrderDifferentialEquations equations,
double t0,
double[] y0,
double T,
double[] yarr)
40 throws DerivativeException, IntegratorException {
48 System.arraycopy(y0, 0, yarr, 0, y0.length);
50 RealVector y =
new ArrayRealVector(yarr);
56 M = sys.M.evaluate(0, sys.currentMu());
64 DecompositionSolver solver =
new LUDecompositionImpl(M.add(A.scalarMultiply(dt))).getSolver();
71 double[] u = sys.u.evaluate(t, sys.currentInput());
72 RealMatrix B = sys.B.evaluate(t, sys.currentMu()).scalarMultiply(dt);
73 double[] tmp = B.operate(u);
77 y = solver.solve(rhs);
79 model.handleStep(t, y.toArray(), null, t == T);
double integrate(FirstOrderDifferentialEquations equations, double t0, double[] y0, double T, double[] yarr)
Main reduced model class.
Custom implicit euler integrator class.
This class implements a time/parameter-affine linear core function .
Main reduced dynamical system class.
ImplicitLinearEulerIntegrator(ReducedModel model, double dt)
boolean isTimeDependent()