inversion d'un systeme non lineaire
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

inversion d'un systeme non lineaire



  1. #1
    ABN84

    inversion d'un systeme non lineaire


    ------

    bonjour,
    je cherche à inverser "un systeme d'equations" par iterations.
    ce sont des equations sinusoidales à deux variables donc voici ma demarche:
    je fais varier ces deux variables i1 et i2 de -pi à +pi. et calcule pour chauqe valeur le resultat du systeme. et je cherche donc les valeurs de i1 et i2 qui minimisent l'ecart de la sortie par rapport aux valeurs que je cible. je peux donc idetifier les i1,i2 les plus proches de la solution exacte. mon probleme est pour certaines valeurs l'algo marche mais parfois non (ex: pour [300 0 -200 0]) si qqun a une petite idée sur comment corriger cet algo ça m'aiderait. merci.
    Code:
    function Q=MGI_SCARA(coord)
    
    l1=200;
    l2=200;
    
    x=coord(1);
    y=coord(2);
    z=coord(3);
    psy=coord(4);
    
    % seul Q4 donne la valeur de Z donc Q4=Z
    q4=-z;                                    
    % pour une position xy donnée deux coordonnées articulaires donne le bon
    % resultat. on choisira l'une des deux.
    beta=acos((l1^2+(sqrt(x^2+y^2))^2-l2^2)/(2*l1*sqrt(x^2+y^2)));
    % methode incrementale:
    
    for i1=-pi:0.01:pi
        for i2=-pi:0.01:pi
            xeval(round((pi+i1)*100+1),round((pi+i2)*100+1))=200*cos(i1)*cos(i2)-200*sin(i1)*sin(i2)+200*cos(i1);
            yeval(round((pi+i1)*100+1),round((pi+i2)*100+1))=200*sin(i1)*cos(i2)+200*cos(i1)*sin(i2)+200*sin(i1);
        end
    end
    
    Dx=abs(x-xeval);
    Dy=abs(y-yeval);
    m=Dx.*Dy;
    [a,b]=find(m==min(min(m)));
    q1=(a-1)/100-pi;
    q2=(b-1)/100-pi;
    
    q3=q1+q2-psy;
    
    Q=[q1;q2;q3;q4];
    
    end
    PS: les probleme ne se pose que pour q1,q2 respectivement x,y.

    -----
    "Engineering is the art of making what you want from what you get"

  2. #2
    KerLannais

    Re : inversion d'un systeme non lineaire

    Slt

    Une petite idée mais le problème ne vient peut-être pas de là. J'ai pas testé ton code (d'ailleurs il est coupé à droite et donc pas complet) et je sais pas si quand ça marche pas c'est une erreur que tu obtiens ou des mauvaises valeurs.

    Pour moi il peux y avoir un problème à la ligne:

    [a,b]=find(m==min(min(m)));

    premièrement tu peux écrire

    [a,b]=find(m==min(m));

    ça marchera aussi bien, et puis cette ligne peux poser un problème lorsque qu'il y a plusieurs minimums (ça peux arriver à priori) et dans ce cas a et b ne sont plus des nombres mais des vecteurs et ça pose des problèmes de dimension par la suite.

    Je te propose de tester pour voir si ce que je dis est vrai (si ca se trouve je dis une connerie) en rajoutant la ligne

    size(a)

    en dessous pour afficher la taille de a, et si de là que vient le problème tu peux rajouter la ligne

    a=a(1);b=b(1);

    pour sélectionner le premier minimum.

  3. #3
    ABN84

    Re : inversion d'un systeme non lineaire

    bonjour,
    d'ailleurs il est coupé à droite et donc pas complet
    j'ai pas l'impression. as tu defilé le curseur à droite?
    Pour moi il peux y avoir un problème à la ligne:

    [a,b]=find(m==min(min(m)));

    premièrement tu peux écrire

    [a,b]=find(m==min(m));
    m etant une matrice min(m) donne un vecteur. min(m) etant un vecteur min(min(m)) donne un scalaire
    Je te propose de tester pour voir si ce que je dis est vrai (si ca se trouve je dis une connerie) en rajoutant la ligne

    size(a)

    en dessous pour afficher la taille de a, et si de là que vient le problème tu peux rajouter la ligne

    a=a(1);b=b(1);
    tu as raison je vais integrer ça
    "Engineering is the art of making what you want from what you get"

  4. #4
    KerLannais

    Re : inversion d'un systeme non lineaire

    Oui excuse moi j'avais pas vu la barre de défilement

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Résolution d'un systeme d'équation linéaire
    Par invitee0cc8045 dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 16/10/2008, 14h22
  2. Méthode numérique de résolution d'un système linéaire
    Par invite2208ddee dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 14/06/2008, 16h55
  3. Solution d'un système linéaire
    Par Bleyblue dans le forum Mathématiques du supérieur
    Réponses: 12
    Dernier message: 22/12/2007, 17h02
  4. Pb pour la resolution d'un système d'équation non linéaire
    Par invite38685413 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 04/08/2006, 10h30
  5. Solutions d'un système linéaire et déterminant
    Par Bleyblue dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 26/04/2006, 15h29