GaussNewtonModel.evaluate#

t3toolbox.fitting.GaussNewtonModel.evaluate(p)#
def evaluate(self, p: t3m.T3Tangent) -> NDArray:  # m(p), shape C

The quadratic-model value m(p) = c + gᵀp + ½ pᵀ H p with H = JᵀJ, reusing the cached c and g and one forward apply: the quadratic term needs only ½ pᵀ H p = ½‖𝒥 Π p‖², not a Hessian apply. p is projected here, shared by the linear term ⟨g, Πp⟩ and the quadratic. Equals ½‖r + 𝒥 Π p‖² exactly (the objective is quadratic in the ambient tensor). With a regularizer, c and g already carry ρ / g_R, so only the quadratic ½⟨p, H_R p⟩ is added here.

Parameters:

p (T3Tangent)

Return type:

NDArray