GradientLinearProjection#
- class mrinufft.trajectories.projection.GradientLinearProjection(initial_trajectory: ndarray[tuple[int, ...], dtype[_ScalarType_co]], kinetic_op: LinearOperator, linear_projector: Callable | None = None)[source]#
Bases:
objectImplements the gradient of F(q1, q2) given by Eq 11 in_[Proj].
The gradient is given by: .. math:
\nabla F(q) = - A s^*
where s^* is the projection of the primal variable \(z = c - M^H q\) onto the linear constraint set defined by A and v.
- Parameters:
M (LinearOperator) – The kinetic operator M.
c (NDArray) – The initial trajectory c.
linear_projector (LinearProjection, optional) – An instance of the LinearProjection class to perform the projection onto the constraint set. If not provided, the projection will be performed without any constraints (i.e., s^* = z).
References
[Proj]N. Chauffert, P. Weiss, J. Kahn and P. Ciuciu, “A Projection Algorithm for Gradient Waveforms Design in Magnetic Resonance Imaging,” in IEEE Transactions on Medical Imaging, vol. 35, no. 9, pp. 2026-2039, Sept. 2016, doi: 10.1109/TMI.2016.2544251.
Methods
__init__Compute the primal variables z = c - M^H q.
Compute the gradient of the objective function w.r.t q.