def test_error_makes_ndarray(self): data = Data() data.error = (0.1, None) assert_allclose(data.error[0], numpy.array(0.1)) eq_(data.error[1], None) data.error = ([0.1, 0.2], None) assert_allclose(data.error[0], numpy.array([0.1, 0.2])) eq_(data.error[1], None) data.error = (0.1, 0.2) assert_allclose(data.error[0], numpy.array(0.1)) assert_allclose(data.error[1], numpy.array(0.2)) data.error = (0.1, [0.1, 0.2]) assert_allclose(data.error[0], numpy.array(0.1)) assert_allclose(data.error[1], numpy.array([0.1, 0.2]))
import sympy from example_helper import save_example_fit from scipy_data_fitting import Data, Model, Fit # # Example of a fit to a sine wave with error bars. # name = 'wave' # Load data from a csv file. data = Data(name) data.path = os.path.join('examples','data', 'wave.csv') data.genfromtxt_args['skip_header'] = 1 data.error = (0.1, 0.05) # Create a wave model. model = Model(name) model.add_symbols('t', 'A', 'ω', 'δ') A, t, ω, δ = model.get_symbols('A', 't', 'ω', 'δ') model.expressions['wave'] = A * sympy.functions.sin(ω * t + δ) model.expressions['frequency'] = ω / (2 * sympy.pi) # Create the fit using the data and model. fit = Fit(name, data=data, model=model) fit.expression = 'wave' fit.independent = {'symbol': 't', 'name': 'Time', 'units': 's'} fit.dependent = {'name': 'Voltage', 'prefix': 'kilo', 'units': 'kV'} fit.parameters = [ {'symbol': 'A', 'value': 0.3, 'prefix': 'kilo', 'units': 'kV'},