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 !