def logarithmic(data, precision): independent_variable = dimension(data, 1) dependent_variable = dimension(data, 2) independent_matrix = [] dependent_matrix = column(dependent_variable) for i in range(len(data)): independent_matrix.append([log(independent_variable[i]), 1]) solution = solve(independent_matrix, dependent_matrix, precision) equation = logarithmic_equation(*solution) derivative = logarithmic_derivative(*solution) integral = logarithmic_integral(*solution)['evaluation'] first_derivative = derivative['first']['evaluation'] second_derivative = derivative['second']['evaluation'] points = key_points('logarithmic', solution, equation, first_derivative, second_derivative, precision) five_numbers = five_number_summary(independent_variable, precision) min_value = five_numbers['minimum'] max_value = five_numbers['maximum'] q1 = five_numbers['q1'] q3 = five_numbers['q3'] accumulated_range = accumulation(integral, min_value, max_value, precision) accumulated_iqr = accumulation(integral, q1, q3, precision) averages_range = average_values('logarithmic', equation, integral, min_value, max_value, solution, precision) averages_iqr = average_values('logarithmic', equation, integral, q1, q3, solution, precision) predicted = [] for i in range(len(data)): predicted.append(equation(independent_variable[i])) accuracy = correlation(dependent_variable, predicted, precision) evaluations = { 'equation': equation, 'derivative': first_derivative, 'integral': integral } points = { 'roots': points['roots'], 'maxima': points['maxima'], 'minima': points['minima'], 'inflections': points['inflections'] } accumulations = { 'range': accumulated_range, 'iqr': accumulated_iqr } averages = { 'range': averages_range, 'iqr': averages_iqr } result = { 'constants': solution, 'evaluations': evaluations, 'points': points, 'accumulations': accumulations, 'averages': averages, 'correlation': accuracy } return result
def test_column_second(self): column_second = column(second_vector) self.assertEqual(column_second, [[1], [-7], [23], [-2]])
def test_column_first(self): column_first = column(first_vector) self.assertEqual(column_first, [[2], [5], [9], [13]])