def __get_results(self, x0, y0, x, h): """ Return pd.DataFrame object of the results of numerical methods and the analytical solution :param x0: initial position on x-axis :param y0: f(x0) :param x: final position on x-axis :param h: a grid step :return: pd.DateFrame object """ dic = dict() x_list, y_list = self.methods.euler_method(Variant.func, x0, y0, h, x) dic[self.x_column] = x_list dic[self.columns[0]] = Variant.solution(x_list, x0, y0) dic[self.columns[1]] = y_list _, y_list = self.methods.improved_euler_method(Variant.func, x0, y0, h, x) dic[self.columns[2]] = y_list _, y_list = self.methods.runge_kuffa_method(Variant.func, x0, y0, h, x) dic[self.columns[3]] = y_list df = pd.DataFrame(dic) df.fillna(0.0, inplace=True) return df