salut tous,
j'ai une question, comment borner à N-R les valeurs à rechercher ?
Voici pourquoi je vous demande ceci:
- j'ai un polynôme et je dois trouver une racine de ce dernier
- la racine que je cherche est entre 0 et une valeur (typiquement 0,02), il y en a peux etre d'autres negatives mais je ne dois pas aller dans ce domaine
==> le probleme est que lorsque je lance mon alog (cf. plus bas) la valeur qu'il me trouve est du genre 1e-12 ce qui lui permet de sortir de la boucle de N-R mais ce n'est pas la solution que je cherche !
j'aimerai donc borner l'espace de recherche par les valeurs 1e-5 et 0,02, savez vous comment je peux faire ceci ? j'ai entendu parler de conditions de Kuhn et Tucker mais comment implementer ceci?
voici mon algo en C++:je vous remercie d'avance pour l'aide que vous pourrez m'apporter !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 double xM=0.0001, residu=10, Xsolution=0; residu= a*pow(xM,(Y-X)/Y)+b*pow(xM,-X/Y)+c*xM+d; //Newton algorithm while ( residu >1e-9 || countt > MAX_ITERATION_NR) { xM=xM-(a*pow(xM,(Y-X)/Y)+b*pow(xM,-X/Y)+c*xM+d )/( a*((Y-X)/Y)*pow(xM,-X/Y)+b*(-X/Y)*pow(xM,(-X-Y)/Y)+c); residu= a*pow(xM,(Y-X)/Y)+b*pow(xM,-X/Y)+c*xM+d; } Xsolution=xM;
A+ :-)
Partager