def angu_err(self): a = self.x_velocity()[0] b = self.y_velocity()[0] w = self.velocities()[1] I = self.I m = self.m x = self.get_center(1) y = self.get_center(2) a_err = self.x_velocity()[1] #np.zeros(self.len) b_err = self.y_velocity()[1] # np.zeros(self.len) w_err = np.array([self.angle_fitter()[1]] * self.len) x_err = self.gc_err(1) y_err = self.gc_err(2) def f(x, y, a, b, w): return np.cross(np.array([x, y, 0]), np.array( [a, b, 0]))[2] * self.m + I * w return np.array( fejl.propagation_function_2( f, fejl.collector([x, y, a, b, w]), fejl.collector([x_err, y_err, a_err, b_err, w_err])))
def angle_err(self): edge_x = self.get_center(1) - self.get_edge(1) edge_y = self.get_center(2) - self.get_edge(2) def f(x, y): return np.arctan2(y, x) return fejl.propagation_function_2( f, fejl.collector([edge_x, edge_y]), fejl.collector([self.ge_err(1), self.ge_err(2)]))
def energy_err(self): kin = self.kinetic_energy() rot = self.rotational_energy() kin_err = self.kin_err() rot_err = self.rot_err() def f(x, y): return x + y return fejl.propagation_function_2(f, fejl.collector([kin, rot]), fejl.collector([kin_err, rot_err]))
def vel_err(self): x_vel = self.x_velocity() y_vel = self.y_velocity() x = x_vel[0] y = y_vel[0] x_err = x_vel[1] y_err = y_vel[1] def f(x, y): return np.sqrt(x**2 + y**2) return np.array( fejl.propagation_function_2(f, fejl.collector([x, y]), fejl.collector([x_err, y_err])))