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 :

Resolution d'equation : probleme de conversion du resultat


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Septembre 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 11
    Par défaut Resolution d'equation : probleme de conversion du resultat
    Bonjour a tous,

    Après pas mal de recherches sur ce forum, j'ai trouvé de l'aide, mais j'ai toujours mon problème. Il est le suivant...

    Je possède 2 séries de 3 points de forme (x,y) . Je souhaite trouver la réponse du système :

    x a b x2 e
    ( y ) = ( c d ) * ( y2 ) + ( f)

    soit : 6 équations a 6 inconnues.

    Voila ma commande MATLAB (lourde je vous l'accorde, mais au moins je suis sur de ce que je fais, ou presque :p) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    A = solve('x1(1) = a*x2(1)+b*y2(1)+e','y1(1) = c*y2(1)+d*x2(1)+f','x1(2) = a*x2(2)+b*y2(2)+e','y1(2) = c*y2(2)+d*x2(2)+f','x1(3) = a*x2(3)+b*y2(3)+e','x1(3) = c*y2(3)+d*x2(3)+f');
    Le résultat est donc une structure avec les 6 inconnues.

    Seul problème résiduel : quand je tape A.a :

    Ans =
    (x1(1)*y2(2) - x1(2)*y2(1) - x1(1)*y2(3) + x1(3)*y2(1) + x1(2)*y2(3) - x1(3)*y2(2))/(x2(1)*y2(2) - x2(2)*y2(1) - x2(1)*y2(3) + x2(3)*y2(1) + x2(2)*y2(3) - x2(3)*y2(2))... (equation 1)
    J'aime plutôt un résultat comme 0.63 (une valeur numérique...) vu que quand je tape l'équation 1 dans MATLAB, ca me donne 0.63. Seulement, impossible (vpa ou autre ne semble pas fonctionner).

    En résumé : mes résultats sont de syms, alors que je voudrais des doubles !

    Si quelqu'un a une explication... merci d'avance et bonne journée


    ps: merci pour l'edit

  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 : 84
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    Je possède 2 séries de 3 points de forme (x,y) . Je souhaite trouver la réponse du système :

    x a b x2 e
    ( y ) = ( c d ) * ( y2 ) + ( f)

    soit : 6 équations a 6 inconnues.
    1. La première ligne de ton système ne comporte pas de signe =.
    2. Quelles sont les données et quelles sont les inconnues?
    3. Est-ce que x2 et y2 représentent des valeurs particulières de x et y ou est-ce le carré de x et de y? Dans ce cas, tu aurais dû écrire x^2 et y^2.
    4. Si tu as 2 séries de 3 points, ça fait 6 points, donc 12 coordonnées et, par conséquent, 12 équations.
    5. Si a, b, c, d, e et f sont les inconnues, a et b, respectivement c et d, n'apparaissent que sous la forme de leurs produits, alors tu n'as pas les informations nécessaires pour les séparer.


    Jean-Marc Blanc

  3. #3
    Membre habitué
    Inscrit en
    Septembre 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 11
    Par défaut
    1. La première ligne de ton système ne comporte pas de signe =.
    2. Quelles sont les données et quelles sont les inconnues?
    en fait je me suis mal exprimer : ce sont des matrices : [a b; c d] et [e f] sont les inconnus, [x2 y2] et [x1 y1] les données.
    3. Est-ce que x2 et y2 représentent des valeurs particulières de x et y ou est-ce le carré de x et de y? Dans ce cas, tu aurais dû écrire x^2 et y^2.
    Ce sont bien des valeurs (les sommets d'un triangle 1 et d'un triangle 2 pour etre complet).
    4. Si tu as 2 séries de 3 points, ça fait 6 points, donc 12 coordonnées et, par conséquent, 12 équations.
    Ah oui, mais non, ca ici ce sont des fonctions "affines" : Y = A X + B ou Y est le couple 1 et X le couple 2.... moi je cherche A (matrice abcd) et B (matrice ef).
    5. Si a, b, c, d, e et f sont les inconnues, a et b, respectivement c et d, n'apparaissent que sous la forme de leurs produits, alors tu n'as pas les informations nécessaires pour les séparer.
    Je peux me tromper car j'ai pas trop reflechi au probleme, mais j'ai 6 equations independantes, et 6 inconnues donc cela devrait fonctionner...

    Voila pour les precisions, désolé de ne pas avoir ete assez clair des le premier coup :p

    Pour conclure je rappelle juste que mon resultat est dans une matrice S, qui contient une seule colonne : a,b,c,d,e,f qui sont des sym... qui contiennent les bonnes equations, mais dont je n'arrive pas a extraire la valeur numerique (en gros je veux lui dire : calcule, car je m'en fou de l'expression litterale!)

  4. #4
    Membre émérite
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Billets dans le blog
    1
    Par défaut
    la solution de ton problème est probablement là
    (voir partie 4 : un exemple de code complet pour ajuster Z = k + a*X + b*Y + c*X^2 + dX*Y + e*Y^2 en connaissant Z, Y et Y)

  5. #5
    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
    Par défaut
    Juste pour info, solve manipule des expressions symboliques, donc quand tu lui rentres 'x1(1) = a*x2(1)+b*y2(1)+e', pour lui, x1(1) est un nom de variable et non pas le premier élément du tableau x1...

    Le seul moyen que je connais pour mettre des paramètres dans des équations dans solve est de passer par la fonction 'subs'.
    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.

Discussions similaires

  1. probleme de conversion float en int
    Par murreya dans le forum C++
    Réponses: 2
    Dernier message: 17/12/2005, 15h27
  2. [datapump] probleme de conversion d'une base paradox
    Par plante20100 dans le forum Bases de données
    Réponses: 4
    Dernier message: 04/11/2005, 18h39
  3. [Conception][Algo] Pb resolution d'un probleme au nivo algo
    Par cmoa59 dans le forum Général Java
    Réponses: 3
    Dernier message: 07/07/2005, 12h05
  4. Probleme de conversion de dates
    Par manu00 dans le forum Langage
    Réponses: 4
    Dernier message: 29/05/2005, 00h00
  5. [Math][Integer] Problème de conversion
    Par deathwing dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 11/05/2004, 17h01

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