Il ne faut pas minimiser la fonction, mais trouver ses zéros. Donc tu appliques un Newton pour les systèmes d'équations, c'est-à-dire que tu ne dérives qu'une fois plutôt que 2. Les méthodes d'optimisation classiques essaient en fait de résoudre ∇f=0, ici tu veux f=0 tout court (et f est déjà un vecteur). Bien sûr, f=0 équivaut à min(||f||), mais en travaillant juste un peu plus sur la méthode, tu économises un niveau de dérivées (tu travailles avec ∇f plutôt que ∇²||f||) et normalement tu ne te bloqueras pas en un point avec f≠0 (enfin, tu auras quand-même un problème quand ∇f=0 parce que tu ne pourras pas résoudre l'équation de Newton en ce point, mais si tu t'éloignes de ce point de n'importe quelle manière, tu devrais pouvoir continuer). (D'ailleurs, la méthode originale de Newton était pour les équations, et puis sa généralisation pour les systèmes d'équations, ce n'est que plus tard que l'optimisation est devenue le domaine principal de recherche et que les gens ont commencé à résoudre les systèmes d'équations comme des problèmes d'optimisation, ce qui n'est pas vraiment la méthode optimale.)
Sinon, pour les hautes dimensions, si même le calcul de la matrice jacobienne (la dérivée ∇f de votre fonction vectorielle f) devient un problème, regardez du côté de la méthode rang 1 de Broyden, une méthode quasi-Newton pour les systèmes d'équations. (Là aussi, il vaut mieux éviter les divers BFGS, DFP, rang 1 symétrique, Oren-Luenberger etc., prévus pour les problèmes d'optimisation, et cherchant à approximer une matrice hessienne, toujours symétrique et semidéfinie positive. La matrice jacobienne n'a en général pas ces propriétés.)
(Je m'y connais plutôt bien dans ce domaine.

)