### Navigation

- index
- modules |
- next |
- previous |
- Functions »

# Spike Functions

AUTHORS:

- William Stein (2007-07): initial version
- Karl-Dieter Crisman (2009-09): adding documentation and doctests

class `sage.functions.spike_function.``SpikeFunction`(v, eps=1e-07)

  Base class for spike functions.

  INPUT:

  > - `v` - list of pairs (x, height)
  > - `eps` - parameter that determines approximation to a true spike

  OUTPUT:

  > a function with spikes at each point `x` in `v` with the given height.

  EXAMPLES:

      sage: spike_function([(-3,4),(-1,1),(2,3)],0.001)
      A spike function with spikes at [-3.0, -1.0, 2.0]

  Putting the spikes too close together may delete some:

      sage: spike_function([(1,1),(1.01,4)],0.1)
      Some overlapping spikes have been deleted.
      You might want to use a smaller value for eps.
      A spike function with spikes at [1.0]

  Note this should normally be used indirectly via `spike_function`, but one can use it directly:

      sage: from sage.functions.spike_function import SpikeFunction
      sage: S = SpikeFunction([(0,1),(1,2),(pi,-5)])
      sage: S
      A spike function with spikes at [0.0, 1.0, 3.141592653589793]
      sage: S.support
      [0.0, 1.0, 3.141592653589793]

  `plot`(xmin=None, xmax=None, **kwds)

    Special fast plot method for spike functions.

    EXAMPLES:

        sage: S = spike_function([(-1,1),(1,40)])
        sage: P = plot(S)
        sage: P[0]
        Line defined by 8 points

  `plot_fft_abs`(samples=4096, xmin=None, xmax=None, **kwds)

    Plot of (absolute values of) Fast Fourier Transform of the spike function with given number of samples.

    EXAMPLES:

        sage: S = spike_function([(-3,4),(-1,1),(2,3)]); S
        A spike function with spikes at [-3.0, -1.0, 2.0]
        sage: P = S.plot_fft_abs(8)
        sage: p = P[0]; p.ydata
        [5.0, 5.0, 3.367958691924177, 3.367958691924177, 4.123105625617661, 4.123105625617661, 4.759921664218055, 4.759921664218055]

  `plot_fft_arg`(samples=4096, xmin=None, xmax=None, **kwds)

    Plot of (absolute values of) Fast Fourier Transform of the spike function with given number of samples.

    EXAMPLES:

        sage: S = spike_function([(-3,4),(-1,1),(2,3)]); S
        A spike function with spikes at [-3.0, -1.0, 2.0]
        sage: P = S.plot_fft_arg(8)
        sage: p = P[0]; p.ydata
        [0.0, 0.0, -0.211524990023434..., -0.211524990023434..., 0.244978663126864..., 0.244978663126864..., -0.149106180027477..., -0.149106180027477...]

  `vector`(samples=65536, xmin=None, xmax=None)

    Creates a sampling vector of the spike function in question.

    EXAMPLES:

        sage: S = spike_function([(-3,4),(-1,1),(2,3)],0.001); S
        A spike function with spikes at [-3.0, -1.0, 2.0]
        sage: S.vector(16)
        (4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)

`sage.functions.spike_function.``spike_function`

  alias of `SpikeFunction`

### Navigation

- index
- modules |
- next |
- previous |
- Functions »