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 :

Problème trouver min fonction et plot


Sujet :

Algorithmes et structures de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 17
    Points : 15
    Points
    15
    Par défaut Problème trouver min fonction et plot
    Bonjour,

    Je cherche à trouver le minimum d'une fonction f(x)= x*(x-3.5)
    Avec x allant de 0 à 1 avec un pas de 0.1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    close all
    clear all
    clc
     
     
    for  i=0:0.1:1
      y = i*(i-3.5)
    end
     
    M=min(y)
    Plot(i,y)

    Or il se trouve que M vaut -0.56 en réalité et mon programme affiche -0.5
    Lorsque je "plot",cela ne m'affiche rien.
    J'ai travaillé sur Matlab avant mais j'ai oublié certaines bases..

    Je vous remercie.

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Si on fait le calcul à la main, le min vaut -0.56 ???
    Perso, je trouve -2.5, quand i vaut 1.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 369
    Points : 23 623
    Points
    23 623
    Par défaut
    En dérivant l'équation, je trouve un minimum de -3,0625 pour x=1,75.
    La bonne nouvelle, c'est que gnuplot a l'air d'accord…

    EDIT — Donc, effectivement, -2,5 quand i vaut 1, à droite de l'intervalle considéré.

  4. #4
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    Citation Envoyé par Patoche07 Voir le message
    Bonjour,

    Je cherche à trouver le minimum d'une fonction f(x)= x*(x-3.5)
    Avec x allant de 0 à 1 avec un pas de 0.1
    [...]
    Or il se trouve que M vaut -0.56 en réalité et mon programme affiche -0.5
    Bonjour,

    sur [0;1] le minimum de f(x)=x(x-3.5) vaut -2.5 en x=1.
    Il faut sans doute revoir la syntaxe matlab …

  5. #5
    Membre confirmé
    Homme Profil pro
    .
    Inscrit en
    Juin 2002
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : .
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2002
    Messages : 239
    Points : 567
    Points
    567
    Par défaut
    Bonjour.

    Première remarque.
    La fonction donnée dans le post initial n'est pas la bonne :
    c'est f(x)=x*(x-1.5) qu'il fallait écrire, et non f(x)=x*(x-3.5).

    Deuxième remarque.
    La variable y n'est pas définie comme un tableau de réels, mais comme un simple réel.
    En conséquence, elle contient uniquement la dernière valeur qui lui est affectée.
    A la sortie de la boucle, elle vaut donc 1*(1-1.5), soit -0.5.
    Ce que le programme donne est conforme à ce que vous lui avez demandé, et non à ce que vous souhaitiez qu'il fasse.

    Troisième remarque.
    La variable i étant incrémentée de 0.1, elle prend successivement les valeurs 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.
    Elle ne prend donc pas la valeur 0.75 qui réalise le minimum de la fonction sur [0,1].
    Ce programme ne retournera donc pas le minimum cherché.

    Quatrième remarque.
    Pour afficher un graphe avec Matlab, il faut communiquer à plot deux tableaux : [x1,x2,....,xn] et [f(x1),f(x2),....,f(xn)].
    L'instruction plot(i,y) équivaut à plot(1,-0.5), ce qui n'est visiblement pas ce qui est souhaité.
    Ce programme ne peut donc pas retourner le graphe de la fonction.

    Et pour finir, je conseille de poster ce genre de question dans le forum Matlab général et non dans le forum Algorithme.
    Vous y trouverez des spécialistes du langage Matlab qui pourront expliquer et corriger vos erreurs.

Discussions similaires

  1. une fonction pour trouver min(|A-B|) ?
    Par Djeu Kuru dans le forum MATLAB
    Réponses: 1
    Dernier message: 22/04/2013, 10h43
  2. Problème avec la fonction findfirst ()
    Par Angelico dans le forum Windows
    Réponses: 3
    Dernier message: 05/08/2004, 20h40
  3. [Requete SQL en VBA] Problème avec la fonction FLOOR
    Par zubral dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/07/2004, 13h24
  4. Problème avec les fonctions
    Par jvachez dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/01/2004, 12h06
  5. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04

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