bonjour,
je manipule en ce moment en programmation des "secteurs" complexes, définis par un intervalle pour le module $[\rho^-,\rho^+]$, et un pour l'argument $[\theta^-,\theta^+]$. etant donné 2 secteurs $Z_1$ et $Z_2$, je cherche a determiner le plus petit secteur qui contient :
$$Z_1+Z_2=\{z_1+z_2,\ z_1 \in Z_1,\ z_2 \in Z_2\}$$
suivant les conseils d'un document que j'ai trouvé, cela revient a minimiser :
$$f(\rho_1,\rho_2,\theta)=\rho_1^2+\rho_2^2+\rho_1 \rho_2 cos(\theta)$$
sur le pave $[\rho_1^-,\rho_1^+]\times [\rho_2^-,\rho_2^+]\times [\theta^-, \theta^+]$
si $u=(u_1,u_2,u_3)$ est un minimum potentiel, chaque $u_i$ verifie soit :
$\frac{df}{du_i}(u)=0$
soit $u_i$ est egal a une des bornes de son intervalle de definition..
l'auteur propose de determiner tous les points (en nombre fini ) qui verifient une combinaison de ces conditions, puis de tester les valeurs de derivés secondes pour eliminer des candidats, puis de prendre le minimum de ce qui reste pour determiner le minimum global..
en fait, je ne vois pas l'interet de passer par une etape avec les derivees secondes. cela me semble moins couteux en temps de calcul de determiner les candidats, puis de prendre directement celui qui donne la plus petite valeur. qu'en pensez vous ? a votre avis, quelle est la solution la plus rapide ( j'aurais besoin de faire ce calcul un tres grand nombre de fois, donc je cherche a l'optimiser au maximum.. )? voyez vous un critere simple qui permette de reduire le nombre de candidats a tester ? ( genre, si l'intervalle ne contient pas 0, alors on elimine telle et telle possibilité..
merci d'avoir lu jusqu'au bout !
Minimisation
si ma mémoire est bonne dans les problèmes de maximisation/minimisation, c'est la dérivée seconde qui permet de déterminer s'il existe un minimum ou un maximum.
par ex pour des fonctions simples, on trouve un point d'inflexion pour $f'(x) = 0$ et on puet dire si c'est un maximem ou un minimum selon le signe de la dérivée seconde si $f''(x) > 0$ on a un minimum et si $f''(x) < 0$ on a un maximum.
Il me faudrait revoir mes cours d'optimisation, mais je crois que c'est le principe de recheche de max/min
Désolée de ne pouvoir t'en dire plus, mes souvenirs sont vagues sur l'optimisation.
par ex pour des fonctions simples, on trouve un point d'inflexion pour $f'(x) = 0$ et on puet dire si c'est un maximem ou un minimum selon le signe de la dérivée seconde si $f''(x) > 0$ on a un minimum et si $f''(x) < 0$ on a un maximum.
Il me faudrait revoir mes cours d'optimisation, mais je crois que c'est le principe de recheche de max/min
Désolée de ne pouvoir t'en dire plus, mes souvenirs sont vagues sur l'optimisation.
c'est bon, je viens de trouver un article du meme gars qui explique plus en detail comment on fait... c'est assez bourrin, ya une bonne vingtaine de cas a traiter... et encore, parce qu'il a astucieusement reussi a eliminer des symetries et autres. tu m'etonnes que je trouvais pas de solution simple :-)
@lilo : oui, je connaissais la theorie avec les derivees partielles ( CF mon premier message ). le probleme etait de l'implementer dans le cas general. comme on est sur un pave de $\R^n$, les bornes du pave peuvent aussi etre solution sans pour autant que les derives s'annulent, c'est ce que j'essayais d'expliquer. donc il y a beaucoup de cas a traiter, et je cherchais la mehode la plus efficace pour la programmer. merci quand meme pour ta reponse !
@lilo : oui, je connaissais la theorie avec les derivees partielles ( CF mon premier message ). le probleme etait de l'implementer dans le cas general. comme on est sur un pave de $\R^n$, les bornes du pave peuvent aussi etre solution sans pour autant que les derives s'annulent, c'est ce que j'essayais d'expliquer. donc il y a beaucoup de cas a traiter, et je cherchais la mehode la plus efficace pour la programmer. merci quand meme pour ta reponse !