bonjour,

Je dois évaluer une fonction f(x) pour plusieurs valeurs différentes. Malheureusement, il s'agit d'une fonction d'optimisation très instable pour laquelle MatLab me retourne fréquemment un message d'erreur ou Inf.

J'aimerais que MatLab évalue cette fonction pour toutes ces différentes valeurs et qu'il me retourne seulement les valeurs et la fonction évaluée en ces valeurs respectives, un peu comme en employant les commandes try and catch.

Exemple: je veux tester si f(x) me donne quelque chose pour x1 et x2 et retourner les évaluations réussies, je peux lancer le code suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
try
   f1=f(x1);
   f2=f(x2);
   [x1,f1; x2,f2]
catch
   try
      f1=f(x1);
      [x1,f1]
   catch    
      f2=f(x2);
      [x2,f2]
   end
end
Lourd, non? Et surtout à partir de 3 valeurs ça devient franchement laborieux. Une idée comment améliorer la chose?

Merci,

Thomas