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 :

Optimisation de fonction


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Optimisation de fonction
    Bonjour tout le monde, je suis novice et j'aimerai avoir des conseils pour réaliser une optimisation de fonction.

    J'ai créé une fonction dans un script de Matlab, ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function [eps_eff_f] = epsilon_effectif(w,h,eps_r,f)
     
    eps_eff_f =(ms_Hammerstad_thin_metal_1980(w,h,eps_r) + eps_r.*terme(w,h,eps_r,f))./(1.0 + terme(w,h,eps_r,f));
     
    end
    cette fonction exprime la permittivité effective (eps_eff_f) d'une ligne "microstrip" en fonction de la largeur (w), de la hauteur (h), de la fréquence (f) et de la permittivité relative (eps_r).

    Expérimentalement je vais pouvoir mesurer la permittivité effective (eps_eff_f) en fonction de la fréquence (f) avec largeur (w) et hauteur (h) fixées.

    Mon but est donc de retrouver la permittivité relative (eps_r) de ma ligne "microstrip". Le problème est qu'exprimer (eps_r) en fonction des autres paramètres est relativement compliqué.

    Quelle fonction de Matlab me permettra de résoudre mon problème?

    Merci d'avance

    Clovis

  2. #2
    Membre éclairé
    Avatar de Kangourou
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 859
    Points
    859
    Par défaut
    salut,

    si je comprends bien ton contexte :
    • les paramètres w et h sont fixés,
    • tu as une fonction qui te permet de calculer eps_eff_f en fonction de la fréquence et du paramètre eps_r
    • tu peux faire varier la fréquence, et mesurer la valeur expérimentale de eps_eff_f

    La question est alors d'identifier la valeur de eps_r qui produirait les valeurs de eps_eff_f pour les fréquences mesurées, c'est bien ça ?

    Il semble qu'il s'agisse effectivement d'un problème d'optimisation. Pour l'ajustment de courbes, je crois que la méthode Levenberg-Marquardt fonctionne assez bien. Une première solution "manuelle" est de tester plusieurs valeurs de eps_r, calculer les eps_eff_f correspondants à chaque f, et comparer avec les eps_eff_f mesurés. En faisant la somme des carrés des écarts entre les eps_eff_f mesurés et prédits, on obtient une mesure de la qualité de l'ajustement de eps_r. L'identification du eps_r optimal (= qui donne le meilleur ajustement, donc qui minimise la somme des carrés des écarts) peut se faire par essais-erreurs, ou alors en passant par la fonction fminsearch de la boîte à outils optimisation.

    Autre solution : il y a peut-être des routines toutes faites pour faire du Levenberg-Marquardt sur le site d'échange de fichier de Mathworks, à fouiller...

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Salut,

    oui tu as exactement compris mon problème.
    J'ai pu trouver une fonction de Matlab qui me permet de retrouver mon eps_r. Cette fonction est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    x = lsqcurvefit(fun,x0,xdata,ydata)
    Comme tu le dis très justement elle permet de faire
    la somme des carrés des écarts entre les eps_eff_f mesurés et prédits
    Du coup xdata=f (fréquence); ydata=eps_eff_f (permittivité effective mesurée expérimentalement)
    Cela me donne le meilleur ajustement x=eps_r.

    Je vais tout de même fouiller au niveau des indications que tu m'a communiqué.
    Merci encore

    A+

    Clovis

Discussions similaires

  1. Optimisation des fonctions?
    Par JauB dans le forum DB2
    Réponses: 5
    Dernier message: 31/01/2007, 20h47
  2. Optimiser une fonction (trouver le minimum)
    Par Noel Gallagher dans le forum C
    Réponses: 2
    Dernier message: 27/11/2006, 06h46
  3. probleme d'optimisation de fonction
    Par franc82 dans le forum C++
    Réponses: 3
    Dernier message: 31/10/2006, 09h45
  4. Optimisation de fonction
    Par Elendhil dans le forum Assembleur
    Réponses: 2
    Dernier message: 19/06/2006, 15h03
  5. Optimisation de fonction ...
    Par dark_vidor dans le forum Langage
    Réponses: 10
    Dernier message: 02/01/2006, 11h50

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