Bonjour, je cherche à résoudre une équation et à optimiser cette résolution. Or, Matlab offrant plusieurs possibilités pour cela, je suis un peu perdu quant au choix de la plus adaptée à mon problème.
J'ai une formule assez compliquée avec une seule variable que nous allons appeler f(z) et je cherche tous les z tels que abs(f(z))=2.
Autant que je sache, je peux faire ces trois choses pour trouver les solutions :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 f = myfunction; f = abs(f)-2; sol = fzero(f,z);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 f = myfunction; f = abs(abs(f)-2); sol = fminsearch(f,z);Je suppose qu'utiliser syms n'est pas le plus rapide donc ce sera probablement une des deux autres. Mais laquelle devrais-je utiliser ? De plus, peut-être aussi que d'autres fonctions similaires existent que je ne connais pas. De plus, je galère un peu avec les options et sur comment optimiser la recherche de solutions. Par exemple, je connais les valeurs minimale et maximale que z peut potentiellement prendre et je suppose que rentrer ça pourrait optimiser le temps.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 syms z; f = myfunction; sol = double(solve(f==2))
Dernière chose, pour une fonction, j'ai calculer cette dernière en fonction de z pour voir à quoi elle ressemblait et il y avait quatre solutions. Pourtant, en utilisant les méthodes syms et fminsearch, je n'en trouve que deux et ce ne sont pas les mêmes. Et c'est aussi pour cela que je poste car cela signifie que je les utilise mal.
Partager