コード例 #1
0
def update_parameter_data(cx_str, cy_str, t):
    # string parsing
    cx_fun, cx_sym = my_bokeh_utils.string_to_function_parser(cx_str, ['t'])
    cy_fun, cy_sym = my_bokeh_utils.string_to_function_parser(cy_str, ['t'])

    from sympy import diff

    dcx_sym = diff(cx_sym, 't')
    dcy_sym = diff(cy_sym, 't')

    dcx_fun = my_bokeh_utils.sym_to_function_parser(dcx_sym, 't')
    dcy_fun = my_bokeh_utils.sym_to_function_parser(dcy_sym, 't')

    # crating sample
    x_val = cx_fun(t)
    y_val = cy_fun(t)

    dx_val = dcx_fun(t)
    dy_val = dcy_fun(t)
    xx, hx = np.linspace(source_view.data['x_start'][0], source_view.data['x_end'][0], curveintegral_settings.n_sample,
                         retstep=True)
    ssdict, spdict, _ = my_bokeh_utils.quiver_to_data(x=np.array(x_val), y=np.array(y_val), u=np.array(dx_val), v=np.array(dy_val), h=2*hx,
                                                           do_normalization=True, fix_at_middle=False)

    # save data
    source_param.data = dict(x=[x_val], y=[y_val], t=[t], x0=ssdict['x0'], y0=ssdict['y0'],
                             x1=ssdict['x1'], y1=ssdict['y1'], xs=spdict['xs'], ys=spdict['ys'])

    print "curve point was updated with t=%f" % (t)
コード例 #2
0
def update_integral_data(u_str, v_str, cx_str, cy_str):
    #string parsing
    u_fun, _ = my_bokeh_utils.string_to_function_parser(u_str, ['x', 'y'])
    v_fun, _ = my_bokeh_utils.string_to_function_parser(v_str, ['x', 'y'])
    cx_fun, cx_sym = my_bokeh_utils.string_to_function_parser(cx_str, ['t'])
    cy_fun, cy_sym = my_bokeh_utils.string_to_function_parser(cy_str, ['t'])

    from sympy import diff

    dcx_sym = diff(cx_sym,'t')
    dcy_sym = diff(cy_sym,'t')

    dcx_fun = my_bokeh_utils.sym_to_function_parser(dcx_sym, 't')
    dcy_fun = my_bokeh_utils.sym_to_function_parser(dcy_sym, 't')

    t = np.linspace(curveintegral_settings.parameter_min,curveintegral_settings.parameter_max)

    f_I = lambda xx, tt: (u_fun(cx_fun(tt),cy_fun(tt)) * dcx_fun(tt) + v_fun(cx_fun(tt),cy_fun(tt)) * dcy_fun(tt))

    integrand = f_I(None,t)

    from scipy.integrate import odeint

    integral = odeint(f_I,0,t)

    source_integral.data = dict(t=t.tolist(),
                                integral=integral.tolist(),
                                integrand=integrand.tolist())
コード例 #3
0
def update_integral_data(u_str, v_str, cx_str, cy_str):
    #string parsing
    u_fun, _ = my_bokeh_utils.string_to_function_parser(u_str, ['x', 'y'])
    v_fun, _ = my_bokeh_utils.string_to_function_parser(v_str, ['x', 'y'])
    cx_fun, cx_sym = my_bokeh_utils.string_to_function_parser(cx_str, ['t'])
    cy_fun, cy_sym = my_bokeh_utils.string_to_function_parser(cy_str, ['t'])

    from sympy import diff

    dcx_sym = diff(cx_sym, 't')
    dcy_sym = diff(cy_sym, 't')

    dcx_fun = my_bokeh_utils.sym_to_function_parser(dcx_sym, 't')
    dcy_fun = my_bokeh_utils.sym_to_function_parser(dcy_sym, 't')

    t = np.linspace(curveintegral_settings.parameter_min,
                    curveintegral_settings.parameter_max)

    f_I = lambda xx, tt: (u_fun(cx_fun(tt), cy_fun(tt)) * dcx_fun(tt) + v_fun(
        cx_fun(tt), cy_fun(tt)) * dcy_fun(tt))

    integrand = f_I(None, t)

    from scipy.integrate import odeint

    integral = odeint(f_I, 0, t)

    source_integral.data = dict(t=t.tolist(),
                                integral=integral.tolist(),
                                integrand=integrand.tolist())
コード例 #4
0
def update_parameter_data(cx_str, cy_str, t):
    # string parsing
    cx_fun, cx_sym = my_bokeh_utils.string_to_function_parser(cx_str, ['t'])
    cy_fun, cy_sym = my_bokeh_utils.string_to_function_parser(cy_str, ['t'])

    from sympy import diff

    dcx_sym = diff(cx_sym, 't')
    dcy_sym = diff(cy_sym, 't')

    dcx_fun = my_bokeh_utils.sym_to_function_parser(dcx_sym, 't')
    dcy_fun = my_bokeh_utils.sym_to_function_parser(dcy_sym, 't')

    # crating sample
    x_val = cx_fun(t)
    y_val = cy_fun(t)

    dx_val = dcx_fun(t)
    dy_val = dcy_fun(t)
    xx, hx = np.linspace(source_view.data['x_start'][0],
                         source_view.data['x_end'][0],
                         curveintegral_settings.n_sample,
                         retstep=True)
    ssdict, spdict, _ = my_bokeh_utils.quiver_to_data(x=np.array(x_val),
                                                      y=np.array(y_val),
                                                      u=np.array(dx_val),
                                                      v=np.array(dy_val),
                                                      h=2 * hx,
                                                      do_normalization=True,
                                                      fix_at_middle=False)

    # save data
    source_param.data = dict(x=[x_val],
                             y=[y_val],
                             t=[t],
                             x0=ssdict['x0'],
                             y0=ssdict['y0'],
                             x1=ssdict['x1'],
                             y1=ssdict['y1'],
                             xs=spdict['xs'],
                             ys=spdict['ys'])

    print "curve point was updated with t=%f" % (t)