Bonjour tous,
je vous explique ma situation, en donnant tous les éléments de mon problème :
- j'ai une équation non linéaire à résoudre (ma fonction ressemble à un polynome mais n'en ai pas toujours un).
- je veux trouver une racine de cette fonction "f" et je sais que la racine est entre les bornes "a=0" et "b=1.5"
- je veux résoudre ce problème avec un algorithme robuste et rapide.
Ce que je fais pour le moment :
- c'est que je pars des bornes "a" et "b" et que je procède par dichotomie jusqu'à obtenir la solution.
- le soucis est que la dichotomie est pas un algo très rapide
- du coup j'ai voulu passer à la méthode de Newton mais il s'avère que proche de la solution la dérivée de la fonction est quasi-nulle. La
conséquence de ceci est que lorsque l'algo de Newton s'approche de la solution il oscille pas mal avant de trouver la solution et le temps de
calcul n'est pas forcement meilleur qu'avec la dichotomie.
Où j'ai besoin de votre aide svp :
1°) tout d'abord je voudrais savoir si vous avez une idée pour résoudre ce problème plus rapidement qu'avec la dichotomie mais avec la même robustesse ?
- j'ai entendu qu'il existe une méthode dit du point fixe mais j'ai regardé sur le net et je ne la comprends pas vraiment et j'ai donc du mal à avoir un avis critique dessus.
2°) sinon j'ai pensé à vérifier à utiliser un algorithme de minimisation :
- je minimise une équation et ceci reviendrait à résoudre f(x)=0, le soucis et que je ne sais pas trop comment m'y prendre et surtout pour la gestion des bornes.
- j'ai entendu parlé de condition de Kuhn et Tucker mais je ne sais pas trop comment le programmer
3°) la dernière chose à laquelle j'ai pensé c'est d'utiliser Newton mais de le modifier :
- par exemple : si lors du pas de temps "n" je sors des bornes alors je divise ce pas de temps par 2 pour ne pas sortir des bornes...
Bref, que pensez vous de toutes ces méthodes et que me conseillerai vous ?
en
Partager