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

Mathématiques Discussion :

Résolution d'une équation à 2 variables


Sujet :

Mathématiques

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 31
    Points : 21
    Points
    21
    Par défaut Résolution d'une équation à 2 variables
    Bonjour,
    J’aurai juste une question concernant Matlab :

    J’ai une équation d’ellipse du type f(x,y)=0 (il est impossible de la ramener à y=f(x))
    L’équation est la suivante : ((x-A)/B)^2+((y-C)/D)^2-2.E(((x-A)/B).((y-C)/D) )-(1-E^2 )F=0

    Est-ce que Matlab pourrait me donner la liste des points solutions de l’équation (potentiellement infini). Ou au moins tracer cette ellipse.

    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!
    Est-ce que Matlab pourrait me donner la liste des points solutions de l’équation
    Avant de te demander si Matlab te propose une solution toute faite, tu dois avoir une idée de l'algorithme qui sera utilisé. En conséquence, je transfère cette discussion fans le forum algo/maths.
    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
    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!
    Commence par simplifier ton équation en posant u=(x-A)/B et v=(y-C)/D.
    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)

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    un moyen rapide pour tracer des fonctions :
    Et ensuite tu peux aussi récupérer sur le graphique les coordonnées des points qui ont servis à tracer l'ellipse (fonction get).
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 31
    Points : 21
    Points
    21
    Par défaut
    La fonction ezplot marche très bien.

    Après il est vrai que j'ai aussi besoin de l'algorithme qu'il y a derrière pour la résolution car je travail sur un outil qui devra intégrer une fonction similaire.

    J'ai trouvé une librairie C++ (Octave) qui posséde la même fonction mais il faudrait que je sache comment ça marche pour l'inserer dans la conception.

    Je présume que matlab doit d'abord trouver les points solutions de l'équation avant de tracer l'ellipse.

    Y-aurait il de la documentation théorique sur les fonctions qu'utilise Matlab?

  6. #6
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Points : 1 685
    Points
    1 685
    Par défaut
    Bonsoir,

    en ce qui concerne ezplot, il suffit de taper "open ezplot" dans matlab pour avoir le code source. Je ne suis pas sûr que matlab cherche les points solutions pour le traçage. Si besoin, il pourrait être intéressant de voir ce qui se fait pour les formes quadratiques, en particulier la réduction de gauss, et voir si cela a été généralisé à ton problème. Une autre approche plus "brute" consiste à s'intéresser aux méthodes de calcul de racines de polynômes et aux algorithmes de recherche de zéros comme Newton-Raphson. Les deux domaines sont liés à la théorie des problèmes aux valeurs propres (espaces de Krylov) et tu peux exprimer ton problème sous une forme matricielle pour voir si cela aide. Je n'ai malheureusement pas mieux à proposer mais j'espère que cela t'aidera à démarrer.

  7. #7
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Que cherches-tu à faire précisément? ezplot évalue la fonction sur une grille de point et cherches l'isoligne f(x,y)=0, mais c'est une approximation, ce n'est pas à proprement parler une résolution de l'équation.

    Par exemple, ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    h = ezplot('(x.^2)/8 + (y.^2)/4 - 1');
    est équivalent à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    X = linspace(-2*pi,2*pi,250);
    Y = X;
    [X Y] = meshgrid(X,Y);
    f = (X.^2)/8 + (Y.^2)/4 - 1;
    [cmatrix,hp] = contour(X(1,:),Y(:,1),f,[0,0],'-');
    Après comme tu l'as dit, le nombre de solution est infini, lesquelles cherches-tu précisément?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  8. #8
    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!
    Comme tu sembles ne pas avoir lu mon message #3, je continue. Dans l'équation contenue dans le message précité, tu fais le changement de variables u=p*cos(phi) et v=p*sin(phi).
    Suite au prochain numéro...
    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)

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 31
    Points : 21
    Points
    21
    Par défaut
    Bonjour,
    Escusez moi mais j'ai eu du mal à retrouver mon sujet, c'est pour celà que je n'ais pas répondu.

    Pour répondre aux questions posées:
    -Je cherche justement à concevoir un outil qui puisse tracer cette équation (en utilisant le moins possible de librairie). C'est pour celà que je cherchais à savoir comment faisait matlab, pour avoir une piste.

    Le tracé que je souhaite réaliser n'est pas obligatoirement précis. En clair, on cherche à être rapide quitte à être moins précis, c'est pour cela que la fonction ezplot de matlab est interressante.

    Enfin, pour les changements de variables:

    1: u²+v²-Auv-B=0

    2: p²cos²(phi)+p²sin²(phi)-A.p²sin(phi).cos(phi)=B
    ...-> p=racine(B/(1-(A/2).sin(2phi)))

    Alors celui là je l'avais pas vu et il va me simplifier la vie. Merci beaucoup.

    Comme quoi avant de chercher des algorithmes il vaut mieux réflechir.

    Il y a mieux que matlab c'est les maths (en tout cas pour les gens qui savent les utiliser, pas comme moi).

    Je suis un peu géné de pas l'avoir trouvé tous seul mais merci beaucoup. Il me reste plus qu'a trouver le nombre de points dont j'ai besoin pour diviser mon angle phi.

    Encore merci.

    Merci aussi pour les fonctions Matlab qui m'ont servi pour d'autres utilisations et qui me serviront encore.

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

Discussions similaires

  1. Résolution d'une équation en ajustant un variable
    Par ThonySp dans le forum MATLAB
    Réponses: 7
    Dernier message: 30/01/2015, 11h09
  2. Résolution d'une équation trigonométrique
    Par tlemcenvisit dans le forum Algorithmes et structures de données
    Réponses: 21
    Dernier message: 20/08/2009, 17h47
  3. Résolution d'une équation
    Par johnvox dans le forum Delphi
    Réponses: 6
    Dernier message: 13/02/2007, 10h04
  4. Réponses: 1
    Dernier message: 08/12/2006, 17h13
  5. Résolution d'une équation par Gauss
    Par rahmani01 dans le forum MATLAB
    Réponses: 3
    Dernier message: 03/11/2006, 22h15

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