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

MATLAB Discussion :

Trouver les zéros exacts d'une courbe discrète


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Trouver les zéros exacts d'une courbe discrète
    Bonjour,

    je cherche à déterminer tous les zéros de courbes (c'est à dire les x tels que f(x)=0 ) (zéros d'une courbe, ce n'est pas mathématiques, mais c'est pour souligner le fait que je n'ai pas d'expression de la fonction de cette courbe)

    Cependant , je ne suis pas en présence de fonctions analytiques, mais de tableaux de 10 points, j'ai donc quelque chose de discret!

    Je voudrais donc trouver les zéros de la courbe que je trace à l'aide de ces 10 points, mais chaque zéros n'est pas forcement exactement l'un des points de mon tableau, alors que je veux le zéro exact...

    Par exemple si deux points de mon tableau sont (1, -3) et (2, 3) , le zéro se situe environ en x=1,5..

    Si vous avez des idées...

    Merci d'avance

  2. #2
    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 : 83
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    Le plus simple est de faire un spline et d'en chercher les zéros.
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  3. #3
    Membre habitué
    Homme Profil pro
    étudiant ingénieur traitement images médicales
    Inscrit en
    Juin 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : étudiant ingénieur traitement images médicales
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2012
    Messages : 74
    Points : 131
    Points
    131
    Par défaut
    tout dépend de ce qu'il se passe entre les points donnés par le tableau. Tu les relies par une droite ou fais une interpolation linéaire?

    si on considère que tu relies les points de ton tableau par des segments de droites, tu peux simplement faire ça :

    je ne sais pas sous quelle forme est ton tableau, mais supposons qu'il soit comme tel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tab = [x1 x2 x3 x4 x5 x6 x7 x8 x9 x10; y1 y2 y3 y4 y5 y6 y7 y8 y9 y10];
    tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    x0=0;
    ind = 1;
    for i = 1 : 9
        if tab(2,i+1)*tab(2,i)<0 %on regarde si la courbe entre les points i et i+1 coupe l'axe des abcisses
            a = ((tab(2,i+1) - tab(2,i))/(tab(1,i+1)-tab(1,i))); %calcul du coefficient directeur
            b = tab(2,i)-a*tab(1,i); %calcul de l'ordonnée à l'origine
            x0(ind)=-b/a;
            ind=ind+1;
        end
    end
    x0 te renvoie la liste des x pour lesquels y = 0.

    Si ton tableau est d'une forme différente, tu peux adapter facilement pour lire les abscisses et ordonnées.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    merci du coup de main,

    à la base j'avais fait une espèce de dichotmoie, mais le signe du produit, c'est nettement plus efficace !

    bonne journée

  5. #5
    Membre habitué
    Homme Profil pro
    étudiant ingénieur traitement images médicales
    Inscrit en
    Juin 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : étudiant ingénieur traitement images médicales
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2012
    Messages : 74
    Points : 131
    Points
    131
    Par défaut
    ravi d'avoir pu t'être utile!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Trouver les zéros d'une équation par la méthode de Newton-Raphson
    Par monamerce dans le forum MATLAB
    Réponses: 4
    Dernier message: 18/02/2011, 22h57
  2. Comment trouver les valeurs manquante d'une série ?
    Par NicoNGRI dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/10/2006, 09h38
  3. [SQL2K][TSQL] Trouver les indexs portant sur une colonne
    Par maitrebn dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 29/08/2006, 23h09
  4. [Vue] Trouver les tables dont dépend une vue
    Par maitrebn dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/08/2006, 08h51
  5. Trouver les fichiers modifiés depuis une date/heure précise
    Par sinok dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 18/07/2006, 17h56

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