Bonsoir,
Je reviens sur un de mes précédents post (dispo là), parce que les solutions proposées ne me conviennent plus (bah oui, à force, on devient exigeant !). Elles fonctionnent très bien, mais je souhaiterais optimiser un peu plus la résolution.
Je vais imager un peu plus que la dernière fois. Je travaille donc avec une matrice dont les termes sont dépendants d'une variable k. Je calcule le déterminant de cette matrice, et je cherche à trouver la valeur minimale de k qui annule ce déterminant (k strictement positif).
L'allure de l'évolution du déterminant en fonction de k peut être assimilé pour ce sujet à une sinusoïde d'amplitude décroissante lorsque k augmente. Evidemment, la période de la sinusoïde varie avec les données de base, donc on ne peut pas trop prévoir la plage de résultat (sauf que ça sera entre 0 et 100000... mais ça fait un peu large!).
Le but de la manoeuvre est donc de trouver la plus petite valeur de k qui annule le déterminant.
J'ai testé, pour le moment:
jobhertz m'avait conseillé à l'époque de me tourner éventuellement vers un algo avec pas adaptatif. Est-ce que ceci pourrait améliorer les choses dans le cas présent? (je n'ai pas trouvé de doc convaincante pour le moment pour répondre moi-même à la question...)
- un algo incrémental: on part de k=0, et on augmente par pas de dk. On détecte la racine dès qu'il y a un changement de signe du déterminant entre deux pas consécutifs (éventuellement, pour améliorer la précision, on revient au pas précédent, on divise le pas par 10, et on recommence). Problème: c'est relativement long si la racine est à 10 et que l'on a besoin d'un pas de 0.001 pour ne pas rater la racine...
- un algo type Newton. Très rapide. Rien à dire sur ce point. Problème: ne trouve pas forcément la racine minimale... je l'ai abandonné au profit de l'algo n°1
- un algo de résolution par intervalles.. euh, non, pas encore testé... pas tout compris à la méthode... si quelqu'un a une doc explicite à me conseiller...
Si vous avez d'autres idées à proposer, je suis preneur.
Merci d'avance.
Partager