parameters: (func, y0, t, method='rk4', name=None)
docstring: ODE integration on a fixed grid (with no step size control).
  
    Useful in certain scenarios to avoid the overhead of adaptive step size
    control, e.g. when differentiation of the integration result is desired and/or
    the time grid is known a priori to be sufficient.
  
    Args:
      func: Function that maps a Tensor holding the state `y` and a scalar Tensor
        `t` into a Tensor of state derivatives with respect to time.
      y0: N-D Tensor giving starting value of `y` at time point `t[0]`.
      t: 1-D Tensor holding a sequence of time points for which to solve for
        `y`. The initial time point should be the first element of this sequence,
        and each time must be larger than the previous time. May have any floating
        point dtype.
      method: One of 'midpoint' or 'rk4'.
      name: Optional name for the resulting operation.
  
    Returns:
      y: (N+1)-D tensor, where the first dimension corresponds to different
        time points. Contains the solved value of y for each desired time point in
        `t`, with the initial value `y0` being the first element along the first
        dimension.
  
    Raises:
      ValueError: Upon caller errors.
docstring_summary: ODE integration on a fixed grid (with no step size control).
docstring_tokens: ODE integration on a fixed grid ( with no step size control ) .
function: def odeint_fixed(func, y0, t, method='rk4', name=None):
    """ODE integration on a fixed grid (with no step size control).
  
    Useful in certain scenarios to avoid the overhead of adaptive step size
    control, e.g. when differentiation of the integration result is desired and/or
    the time grid is known a priori to be sufficient.
  
    Args:
      func: Function that maps a Tensor holding the state `y` and a scalar Tensor
        `t` into a Tensor of state derivatives with respect to time.
      y0: N-D Tensor giving starting value of `y` at time point `t[0]`.
      t: 1-D Tensor holding a sequence of time points for which to solve for
        `y`. The initial time point should be the first element of this sequence,
        and each time must be larger than the previous time. May have any floating
        point dtype.
      method: One of 'midpoint' or 'rk4'.
      name: Optional name for the resulting operation.
  
    Returns:
      y: (N+1)-D tensor, where the first dimension corresponds to different
        time points. Contains the solved value of y for each desired time point in
        `t`, with the initial value `y0` being the first element along the first
        dimension.
  
    Raises:
      ValueError: Upon caller errors.
    """
    with ops.name_scope(name, 'odeint_fixed', [y0, t]):
      t = ops.convert_to_tensor(t, preferred_dtype=dtypes.float64, name='t')
      y0 = ops.convert_to_tensor(y0, name='y0')
      _check_input_types(t, y0)
  
      with _assert_increasing(t):
        with ops.name_scope(method):
          if method == 'midpoint':
            return _MidpointFixedGridIntegrator().integrate(func, y0, t)
          elif method == 'rk4':
            return _RK4FixedGridIntegrator().integrate(func, y0, t)
          else:
            raise ValueError('method not supported: {!s}'.format(method))
function_tokens: def odeint_fixed ( func , y0 , t , method = 'rk4' , name = None ) : with ops . name_scope ( name , 'odeint_fixed' , [ y0 , t ] ) : t = ops . convert_to_tensor ( t , preferred_dtype = dtypes . float64 , name = 't' ) y0 = ops . convert_to_tensor ( y0 , name = 'y0' ) _check_input_types ( t , y0 ) with _assert_increasing ( t ) : with ops . name_scope ( method ) : if method == 'midpoint' : return _MidpointFixedGridIntegrator ( ) . integrate ( func , y0 , t ) elif method == 'rk4' : return _RK4FixedGridIntegrator ( ) . integrate ( func , y0 , t ) else : raise ValueError ( 'method not supported: {!s}' . format ( method ) )