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 :

Fit conditionné d'une courbe (2Pi périodique) pour optimisation de forme


Sujet :

MATLAB

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur matériaux
    Inscrit en
    Septembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Ingénieur matériaux
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2
    Par défaut Fit conditionné d'une courbe (2Pi périodique) pour optimisation de forme
    Bonjour à tous,

    Après une longue errance sur le net je viens de découvrir ce forum et il m'a l'air d'une véritable mine d'or pour un débutant MATLAB comme moi ! Je me suis donc empressé de m'inscrire et voici mon premier post


    Je suis ingénieur matériaux et aimerais développer un petit programme MATLAB pour faire de l'optimisation sur un logiciel de calcul industriel. Je tiens à préciser que je dois rester volontairement évasif sur certains aspects, je m'en excuse par avance.
    En gros j'ai une forme géométrique 2D sur une pièce qui affecte beaucoup son comportement. En lançant une simu avec une géométrie donnée je suis rapidement fixé si la solution (la géométrie) retenue est valide ou non. La géométrie 2D est une forme aléatoire convexe (souvent quasi-circulaire). J'ai déjà bossé quelques jours dessus et j'ai déjà atteint mes limites et je viens donc vers vous, communauté de développez.com en espérant déchaîner les passions

    Mon soucis porte sur la partie MATLAB :

    1. je récupère les coordonnées carthésiennes 2D de la forme géométrique à partir de mon soft, je choisis une nouvelle origine et je transforme tout ça en coordonnées polaires (là, aucun soucis).

    2. Je discrétise ma nouvelle courbe (en coordonnées polaires) en 12 points (tous les 30° donc) dont la position est déterminée par 12 paramètres associés sur lesquels je vais jouer pendant le processus d'optimisation de ma forme (idem, aucun soucis).

    3. Pour le moment mon soucis est là : avant d'attaquer la partie optimisation, je veux juste faire l'opération inverse, càd repasser des 12 paramètres obtenus à une définition plus précise de ma courbe (200 à 500 points réinjectés dans mon soft).
    La forme étant a priori aléatoire, j'ai choisi une exponentielle de degré 11 qui fonctionne plutôt bien pour les cas que j'ai pu tester. Mon problème vient du fit des coefficients de mon exponentielle.
    Fitter une courbe, ça, OK. Mais mon soucis est que j'ai quelques contraintes pour le fit de ma fonction exponentielle f (de dérivée par rapport à theta f'), à savoir :
    - f(-Pi) = f(Pi)
    - f'(-Pi) = f'(Pi)
    - f''(-Pi) = f''(Pi)
    - rhô (rayon de courbure) toujours positif/négatif (selon le sens de rotation choisi) pour assurer la convexité une fois la forme retracée dans (x,y).

    Je connais l'expression mathématique de ces conditions mais je ne sais pas comment les prendre en compte dans mes outils de fit de courbe. Une solution serait d'utiliser une procédure d'optimisation pour exécuter ce fit mais là aussi je ne sais pas comment exprimer les contraintes (même si dans ce cas je vois clairement que c'est possible, contrairement à cftool).

    Quelqu'un aurait-il une idée pour une manière "simple" d'exécuter ce fit en y associant les 4 conditions énumérées ci-dessus ?

    J'espère avoir été clair, sinon n'hésitez pas à poser des questions.


    Merci par avance !

  2. #2
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 885
    Par défaut
    salut

    tu cherches à ajouter des contraintes non linéaires, je te conseilles donc d'utiliser fmincon pour ton fitting, en utilisant l'argument nonlcon pour ecrire tes contraintes
    ce qui suppose d'avoir optimisation toolbox

    Fabien

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur matériaux
    Inscrit en
    Septembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Ingénieur matériaux
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2
    Par défaut
    Citation Envoyé par le fab Voir le message
    tu cherches à ajouter des contraintes non linéaires, je te conseilles donc d'utiliser fmincon pour ton fitting, en utilisant l'argument nonlcon pour ecrire tes contraintes
    ce qui suppose d'avoir optimisation toolbox
    Salut Fabien et merci de ta réponse

    J'ai optimization toolbox, j'optimise effectivement avec fmincon mais je ne comprends pas comment comment inclure ces conditions justement..


    Edit : après quelques recherches sur le forum j'ai trouvé mon bonheur ici. Je vais essayer ça de ce pas !

Discussions similaires

  1. Problème pour réaliser le fit d'une courbe.
    Par QuenL07 dans le forum ImageJ
    Réponses: 0
    Dernier message: 12/02/2014, 16h42
  2. Une petite expression régulière, pour garder la forme
    Par guidav dans le forum Général VBA
    Réponses: 1
    Dernier message: 13/03/2012, 15h55
  3. Réponses: 3
    Dernier message: 24/04/2010, 14h46
  4. Réponses: 4
    Dernier message: 02/03/2009, 17h18
  5. Réponses: 9
    Dernier message: 22/02/2008, 14h21

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