Here is the solution based on Faysal's code: FindMinimum[Null, {OptimVariables, initialGuess}\[Transpose], Method -> {"LevenbergMarquardt", "Residual" :> residualVector[OptimVariables], "Jacobian" :> jacobianMatrix[OptimVariables], "StepControl" -> {"TrustRegion", "StartingScaledStepSize" -> .1}}]