Bonjour,

J'ai une courbe discrète de points C(t) sous matlab et je souhaite minimiser sa longueur. Ceci en incluant d'autres contraintes mais pour le moment je laisse les autres contraintes à 0 de sorte que la minimisation doit conduire ma courbe à devenir une droite.

J'ai commencé par la méthode naïve:

Pour chaque point de la courbe (sauf le premier et le dernier):

on le déplace un peu vers le haut, on calcule la somme sur t de C'(t)^2 (la dérivée de la courbe au carré).
on le déplace un peu vers le bas , on calcule la somme sur t de C'(t)^2.
On déplace réellement le point vers la direction où la somme a donné le résultat le plus bas, d'une intensité proportionnelle à la différence de ces deux sommes.

Même chose pour droite-gauche puis on recommence

Je pensais que cette méthode allait être très lente mais allait marcher. En fait non, ma courbe converge pas vers une droite (bien que la droite soit quand-même un minimum) mais vers des segments de droites avec des angles.


Vous avez une explication de pourquoi ce comportement ?

Merci beaucoup d'avance et bonne journée à tous,

Flavien Gyger