[matlab] la dichotomie
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

[matlab] la dichotomie



  1. #1
    invite373ba4d2

    [matlab] la dichotomie


    ------

    bonjour


    j'ai un problém avec ce code là ,


    Nom : Sans titre.png
Affichages : 2023
Taille : 43,1 Ko

    quand je fait par exemple

    f = @(x) 5*x^4 - 2.7*x^2 - 2*x + .5;
    l = .1;
    p = 0.5;
    k=0.00000000000000000001
    s=3
    x = d(f, l, p,k,s);

    le programme affiche :

    Undefined function or variable "n_iter".

    Error in d (line 29)
    while( abs(d-c)>epsilon && drapeau ==0 && n_iter<n_max)


    !!!

    -----

  2. #2
    Antoane
    Responsable technique

    Re : [matlab] la dichotomie

    Bonsoir,

    Tu n'as pas défini la variables n_iter, qui permet de compter combien de fois on a parcouru la boucle while(), et d'assurer que l'on entre pas dans une boucle infinie.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  3. #3
    invite373ba4d2

    Re : [matlab] la dichotomie

    et comment je définie variable n_iter ??!! comment savoir combient itérations on peux faire?

  4. #4
    Antoane
    Responsable technique

    Re : [matlab] la dichotomie

    Citation Envoyé par Confidential Voir le message
    et comment je définie variable n_iter ??!! comment savoir combient itérations on peux faire?
    As-tu compris comment elle fonctionne, à quoi elle sert ?
    Peux-tu fournir le reste de ton code ?
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  5. A voir en vidéo sur Futura
  6. #5
    invite373ba4d2

    Re : [matlab] la dichotomie

    voilla le reste:

    Code HTML:
     n_iter=n_iter+1;
        end
    end

  7. #6
    Antoane
    Responsable technique

    Re : [matlab] la dichotomie

    Pour une raison ou pour une autre, il est possible que la condition :
    abs(d-c)<epsilon
    ne soit jamais remplie.
    Pour éviter de se retrouver alors à tourner dans la boucle while, on ajoute un compteur (n_iter) qui va permettre de compter combien de fois on parcours la boucle. Si ce nombre est trop grand (c'est à dire >n_max), on comprendra qu'il y a un problème et que l'algorithme n'a pas réussi à converger. Dans ce cas, on sortira de la boucle (même si la solution n'a pas été trouvée) et on affichera un message d'erreur.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  8. #7
    invite373ba4d2

    Re : [matlab] la dichotomie

    mais ya un autre problem , comment afficher c et d ? ( les valeurs des bords de l'intervalle [c;d] qui contient la solution)

    j'ai trouvé d'autre code

    Code:
    function [x e] = mybisect(f,a,b,n)
    
    format long
    
    c = f(a); d = f(b); 
    if c*d > 0.0
    
    end
    disp('           x                  y')
    for i = 1:n
    
        x = (a + b)/2; 
        y = f(x);
        disp([    x     y])
        if y == 0.0    
            e = 0;
            break      
        end
    
        if c*y < 0
            b=x;
        else
            a=x;
        end
    end
    
    x = (a + b)/2;
    e = (b-a)/2;
    a ce que je peux inclure la partie for i=1:n , dans le code précédent ou non?

  9. #8
    Antoane
    Responsable technique

    Re : [matlab] la dichotomie

    Bonsoir,

    Tant que tu n'auras pas compris le principe de la méthode, il sera inutile de chercher à faire un code fonctionnel.
    Une base de départ : https://fr.wikipedia.org/wiki/Dichotomie. Google's thy friend.

    Récupérer des morceaux de code et essayer de les combiner sans les comprendre ne te fera pas avancer, et a peut de chance de donner un résultat bon et fonctionnel.

    mais ya un autre problem , comment afficher c et d ? ( les valeurs des bords de l'intervalle [c;d] qui contient la solution)
    Que ce passe-t-il dans matlab lorsque tu entres
    Code:
    c, d
    dans l'invite de commande ?
    Et
    Code:
    help display
    Et
    Code:
    help sprintf
    Dernière modification par Antoane ; 29/03/2016 à 20h19.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

Discussions similaires

  1. La Dichotomie
    Par invite8ed556b0 dans le forum Mathématiques du collège et du lycée
    Réponses: 4
    Dernier message: 02/01/2016, 18h51
  2. dichotomie
    Par invitef5197fd1 dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 15/07/2015, 15h27
  3. Dichotomie
    Par inviteb0ca76e7 dans le forum Mathématiques du supérieur
    Réponses: 20
    Dernier message: 06/05/2011, 18h25
  4. dichotomie
    Par invitec5af58ac dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 21/09/2009, 22h25
  5. Résolution d'équations non linéaires, Matlab, ordre de convergence, dichotomie.
    Par invite45d1502e dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 20/05/2008, 00h34