IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Borner Newton Raphson


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut Borner Newton Raphson
    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++:
    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;
    je vous remercie d'avance pour l'aide que vous pourrez m'apporter !

    A+ :-)

  2. #2
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Bonjour,

    la racine que je cherche est entre 0 et [0,02]
    1e-12 est entre 0 et 0,02.

    j'aimerai donc borner l'espace de recherche par les valeurs 1e-5 et 0,02
    Es-tu sûr de l'existence d'une racine entre ces deux valeurs ?

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut
    merci d'avoir pris le temps de repondre !

    1°) tout d'abord je sens que je me suis mal exprimé :-( désolé, pour etre certains qu'il n'y a pas de quiproquo je vais reformuler.

    ==> je sais que mon probleme à une solution qui est entre 0 et 0.02, le probleme est que N-R m'amene parfois vers des valeurs tres proche de 0 du genre 1e-12 et qui font que mon residu est tres faible et je sors de l'algo sans avoir trouvé la solution qui est plutot proche de 0.01

    ==> je voudrais donc borner l'espace de recherche entre 1e-12 et 0.02 (ca pourrait etre entre 0.01 et 0.02 mais par securité je prefere agrandir un peu ce domaine d'où le 1e-12)

    2°) oui je suis certain qu'il y a une solution entre 0 et 0.02 ça vient d'un phenomene physique.

    3°) pour borner je pensais pondérer le résidu (si xM<1e-12 alors residu=residu*10000) mais j'ai entendu que ce type de methode pouvais parfois poser des problemes à l'algo N-R (ca peut l'eloigner de la solution rechercher si on est trop pret de la borne)

    ==> j'ai donc cherché et il existerai une methode beaucoup plus propre, il faut faire respect à la solution des conditions de Kuhn et Tucker (KKT) le probleme est que j'ai regardé sur le net et je n'ai pas compris :-( alors je vois encore moins comment implementer ceci dans N-R


    ps: au fait, quel est l'epsilon que vous mettez en general pour l'algo de N-R ?
    comment connaitre l'ordre de grandeur? je vous demande ceci car parfois je vois que mon residus est a 1e-27 alors que je n'ai pas la solution recherchée :-(

  4. #4
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 78
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Par défaut
    Peut-on connaître les valeurs des constantes a,b,c,d,X,Y ?
    De toutes façons c'est déjà maladroit de recalculer toutes les constantes comme par exemple
    a*((Y-X)/Y)
    à chaque tour de boucle.
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  5. #5
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    On croit souvent que les polynômes sont des fonctions "gentilles". En fait, ce sont souvent des "sales bêtes", et les méthodes utilisées pour rechercher les zéros d'autres fonctions sont mal adaptées dans ce cas. Je pense que la moins mauvaise méthode consisterait à:
    1. construire la "matrice compagnon" du polynôme;
    2. calculer ses valeurs propres;
    3. choisir celle qui satisfait aux conditions imposées.

    Jean-Marc Blanc

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut
    salut tous, merci beaucoup de votre aide!!!

    Citation Envoyé par Zavonen Voir le message
    Peut-on connaître les valeurs des constantes a,b,c,d,X,Y ?
    De toutes façons c'est déjà maladroit de recalculer toutes les constantes comme par exemple
    a*((Y-X)/Y)
    à chaque tour de boucle.
    en fait à chaque pas de temps j'appel cette fonction qui contient mes iteration de N-R, à chaque pas de temps a,b,c,d sont différents du pas de temps precedent.

    pour chaque pas de temps je fais ce calcul pour trois cas:
    X=2 Y=1 ; X=18 Y=10 ; X=5 Y=6
    d'où l'intéret de caluler pour chaque cas ces choses


    Citation Envoyé par FR119492 Voir le message
    On croit souvent que les polynômes sont des fonctions "gentilles". En fait, ce sont souvent des "sales bêtes", et les méthodes utilisées pour rechercher les zéros d'autres fonctions sont mal adaptées dans ce cas.
    c'est vrai que c des sales betes
    par contre j'aurais pensé que N-R etait le plus adapté pour faire ceci (en bornant d'une maniere ou d'une autre l'espace de recherche)

    [quote=FR119492;6317268]Je pense que la moins mauvaise méthode consisterait à:
    salut tous, merci beaucoup de votre aide!!!

    Citation Envoyé par Zavonen Voir le message
    Peut-on connaître les valeurs des constantes a,b,c,d,X,Y ?
    De toutes façons c'est déjà maladroit de recalculer toutes les constantes comme par exemple
    a*((Y-X)/Y)
    à chaque tour de boucle.
    en fait à chaque pas de temps j'appel cette fonction qui contient mes iteration de N-R, à chaque pas de temps a,b,c,d sont différents du pas de temps precedent.

    pour chaque pas de temps je fais ce calcul pour trois cas:
    X=2 Y=1 ; X=18 Y=10 ; X=5 Y=6
    d'où l'intéret de caluler pour chaque cas ces choses


    Citation Envoyé par FR119492 Voir le message
    On croit souvent que les polynômes sont des fonctions "gentilles". En fait, ce sont souvent des "sales bêtes", et les méthodes utilisées pour rechercher les zéros d'autres fonctions sont mal adaptées dans ce cas.
    c'est vrai que c des sales betes
    par contre j'aurais pensé que N-R etait le plus adapté pour faire ceci (en bornant d'une maniere ou d'une autre l'espace de recherche)

    Citation Envoyé par FR119492 Voir le message
    Je pense que la moins mauvaise méthode consisterait à:
    en effet ça semble meilleur comme methode car je calcul toutes les solutions du polynome avec ça (c bien ça ?)

    par contre si j'ai des racines complexes ça peut pas poser probleme numeriquement ? (je demande car j'ai jamais essayer cette methode)

    ==> as tu un lien vers un cours ou un tuto qui presente cette methode car je n'ai jamais fait ceci... merci

    Citation Envoyé par FR119492 Voir le message
    1. construire la "matrice compagnon" du polynôme;
    2. calculer ses valeurs propres;
    3. choisir celle qui satisfait aux conditions imposées.

    Jean-Marc Blanc
    => ok, la premiere etape devrait etre facile
    => par contre je n'ai jamais programmé une recherche de valeur propre peux tu me donner des indices / mot cles ou me donner un exemple ?
    => derniere etape OK

Discussions similaires

  1. Complex Newton Raphson
    Par Nulysses dans le forum Fortran
    Réponses: 2
    Dernier message: 26/09/2009, 20h57
  2. Newton-Raphson et Gauss-Seidel
    Par hyacinthus dans le forum Mathématiques
    Réponses: 2
    Dernier message: 15/03/2009, 19h44
  3. pb de solution methode de newton-raphson
    Par laroche1 dans le forum MATLAB
    Réponses: 2
    Dernier message: 13/03/2008, 23h03
  4. Utilisation Newton-Raphson pour resoudre une equation
    Par laila_china dans le forum MATLAB
    Réponses: 1
    Dernier message: 13/11/2007, 12h43
  5. algorihme de newton raphson
    Par maroueneo dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 13/04/2007, 13h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo