symmetrize_pwc
Graph.symmetrize_pwc(pwc, *, name=None)
Create the symmetrization of a piecewise-constant function.
Parameters
- pwc (Pwc) – The piecewise-constant function v(t) to symmetrize.
- name (str or None , optional) – The name of the node.
Returns
The piecewise-constant function w(t) defined by w(t)=v(t) for 0≤t≤τ and w(t)=v(2τ−t) for τ≤t≤2τ, where τ is the duration of v(t).
Return type
SEE ALSO
Graph.pwc_signal
: Create Pwc signals from (possibly complex) values.
Graph.time_reverse_pwc
: Reverse Pwcs in time.
Notes
For more information on Pwc nodes see the Working with time-dependent functions in Boulder Opal topic.
Examples
Create a symmetric piecewise-constant function.
>>> x = graph.pwc(durations=np.array([0.1, 0.3]), values=np.array([1, 2]))
>>> graph.symmetrize_pwc(x, name="symmetrize")
<Pwc: name="symmetrize", operation_name="symmetrize_pwc", value_shape=(), batch_shape=()>
>>> result = bo.execute_graph(graph=graph, output_node_names="symmetrize")
>>> result["output"]["symmetrize"]
{
'durations': array([0.1, 0.3, 0.3, 0.1]),
'values': array([1., 2., 2., 1.]),
'time_dimension': 0
}
See more examples in the How to optimize controls with time symmetrization user guide.