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

C Discussion :

Methode simplexe (en C) : besoin aide


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 1
    Par défaut Methode simplexe (en C) : besoin aide
    Voici mon probleme : Je cherche de l'aide pour mettre en C la methode simplex decrite ci dessous. mais je n'y comprend rien a la méthode.

    Ce que j'ai reussi a faire c'est :
    - développer des fonctions permettant les opérations sur desnombres complexes

    - échantillonnage l’espace des fréquences sur une échelle logarithmique


    -----------------------------------------------------------------------------------------------------------------------------------
    Sujet
    -----------------------------------------------------------------------------------------------------------------------------------






    Gabarit d'un filtre passe bande du deuxième ordre


    Objectif :
    Mettre en œuvre une méthode d'optimisation par simplex non linéaire de Nelder et Mead permettant de calculer les valeurs des éléments d'un filtre passe bande du deuxième ordre pour que la fonction de transfert de ce dernier rentre dans un gabarit donné.


    Position du problème :
    Un filtre passe bande du deuxième ordre peut être réalisé par le schéma de la figure 1.
    On cherche à trouver les valeurs des composants R0, R1, R2, C1, C2, qui permettent à la
    fonction de transfert de passer dans un gabarit donné comme sur la figure 2.
    Le but de ce projet consiste à programmer une méthode d'optimisation permettant à la
    fonction de transfert du filtre de passer dans un gabarit donné sur la gamme de fréquence de
    10 à 1Mhz.

    "figure en pièce jointe"

    Le programme devra sortir les valeurs de A, ω0 et ω1 optimisées ainsi que l’évolution
    des fonctions de transfert et des gabarits.


    Mise en œuvre du problème :

    Ce type de problème est ce que l'on appelle un problème d'optimisation basé sur la minimisation d'une fonction coût.

    Dans notre cas, cette fonction peut être, pour un échantillonage de fréquence sur un interval donné, le nombre de points de la fonction de transfert qui ne respectent pas le gabarit. Plus ce nombre de points va être elevé, plus nous serons loin de la solution.

    Plusieurs méthodes d'optimisation existent ( algorithmes génétiques, recuit simulé...). Une des méthodes les plus simples à mettre en oeuvre est la méthode du simplex non linéaire de Nelder et Mead.

    Cette méthode, géométrique, peut être résumée de la manière suivante :
    Il y a dans notre cas trois paramètres (A,ω0,ω1) à déterminer pour que le filtre cherché rentre dans le gabarit donné. Cherchant 3 paramètres, il s'agit de construire un polyèdre dans un espace à 3 dimensions.
    Il nous faut alors 4 points choisis de manière aléatoire pour former un tétraèdree.

    Chaque position correspond à un choix des trois paramètres (A,ω0,ω1). Ces quatre points forment alors le simplexe, un polyèdre à quatre sommets dans l’espace tri-dimensionnel. Si l’on note f, la fonction à minimiser (la fonction coût), chaque position donne des valeurs différentes de f.

    La méthode consiste dans un premier temps à classer les quatre positions en fonction de la valeur de f qu’elles donnent.
    Nous noterons les positions Pi et les valeurs associées f, avec l’index i allant de 0 à 3 par ordre croissant des valeurs de f.
    Les trois « meilleurs » points (i = 0 à 2) permettent de calculer le centroïde, ou point barycentre, noté Pb.

    Il s'agit alors d’améliorer le plus « mauvais » point P3 par des réflexions, expansions ou contractions géométriques par rapport au point Pb.
    La méthode s'arrête lorsque la distance entre tous les points est inférieure à une certaine valeur.

    Plus d’informations sur cette méthode peuvent être trouvées dans « Numerical Recipes » ou sur internet : http://en.wikipedia.org/wiki/Nelder-Mead_method


    Quelques pistes
    - Pour calculer la réponse dans le plan de Bode du filtre pour un jeu de valeurs donné, il sera probablement nécessaire de développer des fonctions permettant les opérations sur des
    nombres complexes

    - Il sera aussi probablement nécessaire d’échantillonner l’espace des fréquences sur une échelle logarithmique

    - Une manière de calculer la fonction coût peut être de compter le nombre de points de l’échantillonnage qui sont hors du gabarit.

    - Il vaudra mieux travailler sur les log de A, ω0,et ω1 que sur leurs valeurs naturelles.
    Images attachées Images attachées  

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    et si je fais ton exercice à ta place, tu me donnes ton diplôme ?


Discussions similaires

  1. besoin aide pour requête compliquée ......
    Par Ickou dans le forum Requêtes
    Réponses: 4
    Dernier message: 10/04/2006, 17h43
  2. [Thread][Progressmonitor] Besoin aide
    Par david06600 dans le forum Concurrence et multi-thread
    Réponses: 7
    Dernier message: 02/03/2006, 21h43
  3. Réponses: 9
    Dernier message: 10/02/2006, 17h24
  4. [HTML] Besoin aide sur scroll et balise
    Par Kerod dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 24/03/2005, 14h42
  5. débutant : besoin aide
    Par simon76 dans le forum Flash
    Réponses: 6
    Dernier message: 14/08/2003, 16h03

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