[Matlab] Traduire la méthode de la Sécante
Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

[Matlab] Traduire la méthode de la Sécante



  1. #1
    invite78f958b1

    [Matlab] Traduire la méthode de la Sécante


    ------

    Bonsoir,
    j'essaie de traduire la méthode de la Sécante en algorithme sous Matlab mais j'ai des difficultés au niveau du raisonnement.

    La méthode de la sécante permet de trouver le 0 d'une fonction en racourssisant un intervalle prédéfini (ici [a,b]).
    Avec la précision que l'utilisateur défini, on l'a compare à cet écart initial et on on détermine le 0 de la fonction
    Voici de plus ample informations:
    http://fr.wikipedia.org/wiki/M%C3%A9...a_s%C3%A9cante

    J'ai essayé de traduire cela en Matlab

    Voici ma fonction de base pour laquelle je recherche le 0.

    Code PHP:
    function f=fonction(x)
    f=x.^3+sin(x.^2)-[cos(x)].^2
    end 
    Code PHP:
    a=input('saisir le point a');
    b=input('saisir le point b');
    precision=input('précision'); //précision à laquelle on veut trouver le 0.

    ecart=abs(b-a)/abs(a)  // ecart initial que l'on va réduire pour se rapprocher du 0

    while  ecart>precision
              fa
    =fonction(a);
              
    fb=fonction(b);
        
    c=b-fb*(b-a)/(fb-fa); //on calcule la nouvelle abscisse qui va tendre à se rapprocher du 0
        
    ecart=abs(b-c)/abs(c); //on recalcule l'écart avec le rapprochement, pour le soumettre au while
        
    a=c;  //Etablis une récurrence
    end
    fprintf
    ('Zero:',c); 
    Cependant, cela n'aboutit pas. Le script s'exécute mais ne s'arrête pas.(je dois le stopper moi même)

    Est ce une erreur de raisonnement ?d'inattention ?

    N'hésitez pas à demander des explications.
    Merci beaucoup

    -----

  2. #2
    invite78f958b1

    Re : [Matlab] Traduire la méthode de la Sécante

    Je peux reformuler mon problème si vous voulez

  3. #3
    Jack
    Modérateur

    Re : [Matlab] Traduire la méthode de la Sécante

    remplace a=c par b=c.

    A+

  4. #4
    invite78f958b1

    Re : [Matlab] Traduire la méthode de la Sécante

    Bonsoir et merci de votre réponse !
    Je vais essayer mais pouvez m'expliquer pourquoi ?
    Quel raisonnement avez vous eu ?

    Merci d'avance !

  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur

    Re : [Matlab] Traduire la méthode de la Sécante

    j'ai obtenu une unité de valeur en analyse numérique au CNAM en 1988. Je serais incapable aujourd'hui de prouver quelque convergence que ce soit dans ce genre de méthode. Mais en dessinant un ou deux exemples, je me suis rendu compte qu'il fallait substituer la borne de gauche ou la borne de droite au nouveau point calculé, sous peine de se retrouver avec un intervalle qui ne comprendrait pas le zéro de la fonction.

    Maintenant, il est possible que ça converge quand même, mais par oscillation, c'est à dire que le nouveau zéro passe alternativement à droite puis à gauche du zéro théorique.

    A+

  7. #6
    invite78f958b1

    Re : [Matlab] Traduire la méthode de la Sécante

    Bonjour, merci d'avoir répondu.
    Je dois vous avoué que j'ai vraiment du mal à traduire des raisonnements Mathématiques en algorithme.

    Un ami a fait le même changement que vous cependant je bloque à comprendre.

    Voici des précisions que j'ai trouvé (pièce jointe).
    On voit bien qu'à la fin,dans la forme à répéter pour calculer la nouvelle abscisse, b est fixe. Donc je ne comprends pas ce changement.

    Si vous pouviez reformulez, je vous en serais vraiment reconnaissant.
    Merci
    Images attachées Images attachées  

  8. #7
    Jack
    Modérateur

    Re : [Matlab] Traduire la méthode de la Sécante

    je n'ai pas matlab.

    Tu pourrais faire un plot de la fonction pour voir la tête qu'elle a?

    A+

  9. #8
    invite78b1557a

    Re : [Matlab] Traduire la méthode de la Sécante

    salut oignon57 j'ai le meme probleme que le votre ou il m'affiche le resultat indefinement ou il n'affiche pas le resultat et il se bolque et je doit lequité en appliquant ctrl alt supp y a t il quelqu'un qui peut nous aider

  10. #9
    invite78f958b1

    Re : [Matlab] Traduire la méthode de la Sécante

    Bonjour,
    Veuillez m'excuser, tout d'abord, pour cette longue attente mais j'ai eu quelques problèmes avec ma version de Matlab dont je n'ai pas pû régler dans l'immédiat.
    Je ne peux que vous fournir une courbe théorique.
    Le point c correspondrait ici à l'abscission x0 qui par réitération permet la diminution de l'écart et donc se rapprocher du 0 de la fonction.

    Pouvez essayer de m'expliquer à partir de cette courbe ? Sinon, je vais essayer de m'arranger pour avoir la courbe à partir de Matlab.

    Merci Encore

    PS: Merci Titized d'avoir essayé
    Images attachées Images attachées  

  11. #10
    Jack
    Modérateur

    Re : [Matlab] Traduire la méthode de la Sécante

    Il me semble assez évident à voir ta courbe qu'il faut qu'après avoir calculé x0, le nouvel intervalle soit compris entre x0 et b et non pas entre a et x0 comme ça apparait dans ton programme.

    A+

  12. #11
    invite78f958b1

    Re : [Matlab] Traduire la méthode de la Sécante

    Bonsoir,
    je suis d'accord avec vous. L'intervalle est bien entre x0 et b puis entre x1 et b puis entre x2 et b...

    Le b ne change pas, c'est seulement le a qui "varie" en x0 puis x1...

    En fait, je ne vois pas dans mon programme ce qui montre que je considère l'intervalle x0 et a.

    Merci de vos réponses.

  13. #12
    Jack
    Modérateur

    Re : [Matlab] Traduire la méthode de la Sécante

    Citation Envoyé par oignon57 Voir le message
    Bonsoir,
    En fait, je ne vois pas dans mon programme ce qui montre que je considère l'intervalle x0 et a.

    Merci de vos réponses.
    Code:
    a=c;//Etablisunerécurrence
    A+

  14. #13
    Jack
    Modérateur

    Re : [Matlab] Traduire la méthode de la Sécante

    Correction, ton programme a l'air juste pour cette courbe. Tu es sur que ta courbe est bonne? Ca ne dois pas être trop dur à tracer avec un plot.

    A+

  15. #14
    invite78f958b1

    Re : [Matlab] Traduire la méthode de la Sécante

    Je n'ai pas réussi à débloquer ma version de Matlab.
    Quoi qu'il soit un ami m'a expliqué la méthode (plus le concept que le programme) et je pense avoir compris.

    Merci de votre aide

  16. #15
    invite22b45772

    Re : [Matlab] Traduire la méthode de la Sécante

    Bonjour ,
    je voulais savori svp si vous avez arrivé à régler le probleme , parce qu'il ne s'arrete pas mm quand j'ai changé le a par b .
    Merci d'avance

Discussions similaires

  1. Méthode iterative par matlab
    Par inviteccb0e881 dans le forum Physique
    Réponses: 3
    Dernier message: 09/07/2017, 00h59
  2. [MATLAB]Intégration grâce à la méthode d’Euler
    Par invited8d2faee dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 28/11/2010, 16h52
  3. matlab méthode des moindres carrées
    Par invitea255964f dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 11/06/2009, 16h51
  4. programmation de la méthode de newton par Matlab
    Par invitec2fad112 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 12/05/2008, 13h39
  5. Methode de Jacobi(Matlab)
    Par invite2c0f979d dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 08/03/2008, 01h36