Exemplo n.º 1
0
 def test_hermite(self):
     t = [0., 1., 2.]
     x = np.array([[0, 1, 1]])
     pp = PiecewisePolynomial.CubicShapePreserving(
         breaks=t, samples=x, zero_end_point_derivatives=False)
     pp.AppendCubicHermiteSegment(time=3., sample=[2], sample_dot=[2])
     pp.RemoveFinalSegment()
Exemplo n.º 2
0
 def test_matrix_trajectories(self):
     A0 = np.array([[1, 2, 3], [4, 5, 6]])
     A1 = np.array([[7, 8, 9], [10, 11, 12]])
     A2 = np.array([[13, 14, 15], [16, 17, 18]])
     t = [0., 1., 2.]
     pp = dict()
     pp["zoh"] = PiecewisePolynomial.ZeroOrderHold(breaks=t,
                                                   samples=[A0, A1, A2])
     pp["foh"] = PiecewisePolynomial.FirstOrderHold(breaks=t,
                                                    samples=[A0, A1, A2])
     pp["hermite"] = PiecewisePolynomial.CubicShapePreserving(
         breaks=t, samples=[A0, A1, A2], zero_end_point_derivatives=False)
     pp["c1"] = PiecewisePolynomial.CubicWithContinuousSecondDerivatives(
         breaks=t, samples=[A0, A1, A2], periodic_end=False)
     pp["c2"] = PiecewisePolynomial.CubicHermite(
         breaks=t,
         samples=[A0, A1, A2],
         samples_dot=[0 * A0, 0 * A1, 0 * A2])
     pp["c3"] = PiecewisePolynomial.CubicWithContinuousSecondDerivatives(
         breaks=t,
         samples=[A0, A1, A2],
         sample_dot_at_start=0 * A0,
         sample_dot_at_end=0 * A0)
     pp["lagrange"] = PiecewisePolynomial.LagrangeInterpolatingPolynomial(
         times=t, samples=[A0, A1, A2])
     for name, traj in pp.items():
         if name == "lagrange":
             self.assertEqual(traj.get_number_of_segments(), 1)
         else:
             self.assertEqual(traj.get_number_of_segments(), 2)
         self.assertEqual(traj.start_time(), 0.)
         self.assertEqual(traj.end_time(), 2.)
         self.assertEqual(traj.rows(), 2)
         self.assertEqual(traj.cols(), 3)
     # Check the values for the easy cases:
     np.testing.assert_equal(A0, pp["zoh"].value(.5))
     np.testing.assert_allclose(0.5 * A0 + 0.5 * A1, pp["foh"].value(.5),
                                1e-15)
 def test_pchip(self):
     t = [0., 1., 2.]
     x = np.array([[0, 1, 1]])
     pp = PiecewisePolynomial.CubicShapePreserving(
         breaks=t, samples=x, zero_end_point_derivatives=False)