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

Mathématiques Discussion :

Optimisation de l'écart-type


Sujet :

Mathématiques

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 56
    Points : 28
    Points
    28
    Par défaut Optimisation de l'écart-type
    Bonjour à tous!
    J'ai un petit souci d'optimisation: partant d'une série de 4 valeurs données ayant un certain écart-type initial, je cherche un algo. qui minimise cet écart-type, l'optimisation se faisant en modifiant (ou pas) une ou plusieurs valeurs initiales d'un facteur +/-n*p, le pas "p" étant unique mais "n" pouvant être différent d'une valeur à l'autre.

    Merci pour votre aide&conseils!

  2. #2
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 828
    Points
    14 828
    Par défaut
    Si tu cherches un algo, il y a le Forum Algorithme.
    Si après tu as besoin d'aide lorsque tu transcriras l'algorithme trouvé en MATLAB tu pourras revenir nous voir.

    Ceci dit avant de poser la question sur le Forum Algorithme il faudrait aussi expliquer un peu plus.

  3. #3
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    c'est un exo ou dans la vraie vie ?

    si c'est dans la vraie vie tu n'a pas besoin d'optimiser, tu mets toutes tes variables égales à leur moyenne et ton écartype est minimum (et nul par la même occasion)

    si c'est un exo, ça dépend de ton niveau. Si débutant, tu peux commencer par prendre n=1 et changer chaque variable de +/-p. si le changement est un succès (ect diminué) tu garde le changement. si c'est un échec, tu le rejettes.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 56
    Points : 28
    Points
    28
    Par défaut Optimisation écart-type
    Merci pour la réponse...le but est d'équilibrer/minimiser les différences de gain entre 4 amplificateurs. En fait j'ai déjà implémenté cette approche itérative:
    1. valeurs initiales G1, G2, G3, G4
    2. G1 sélectionné
    3. G2 optimisé en G2'pour minimiser le sigma de (G1, G2')
    4. G3 optimisé en G3' pour minimiser le sigma de (G1, G2', G3')
    5. G4 optimisé en G4' pour minimiser le sigma de (G1, G2', G3', G4')

    Je ne suis pas sûr que cette méthode itérative soit la plus efficace pour minimiser l'écart-type, je voulais donc la confronter à d'autres algo. plus "analytiques" et directs.


    Citation Envoyé par ol9245 Voir le message
    c'est un exo ou dans la vraie vie ?

    si c'est dans la vraie vie tu n'a pas besoin d'optimiser, tu mets toutes tes variables égales à leur moyenne et ton écartype est minimum (et nul par la même occasion)

    si c'est un exo, ça dépend de ton niveau. Si débutant, tu peux commencer par prendre n=1 et changer chaque variable de +/-p. si le changement est un succès (ect diminué) tu garde le changement. si c'est un échec, tu le rejettes.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 56
    Points : 28
    Points
    28
    Par défaut
    Voici le code un peu "bestial" réalisé:

    clc
    clear
    % Parameters
    Path_number=4; % Number of MPA paths
    Random_number=300; % Number of random trials
    Random_std=2; % Amplitude standard deviation of the random trials (dB)
    Random_mean=0;
    Amplitude_bit=7; % Bit number of digital attenuator
    Amplitude_range=32; % Range of the digital attenuator (dB)
    Amplitude_step=Amplitude_range/(2^Amplitude_bit); % Step of digital attenuator (dB)
    Sigma_goal=0.2; % Amplitude standard deviation max. expected (dB)

    % Initialization of paths Amplitude
    Amp_1_path=0; Amp_2_path=0; Amp_3_path=0;
    Amp_final_path=0; Amp_final_paths=0;
    Random_Amplitude=0;
    Sigma_before=0;
    Summary_sigma_before=0; Summary_sigma_after=0;
    All_Amplitudes=zeros(1,Path_number);

    % Random trials
    for i=1:Random_number

    Random_Amplitude=random('Normal',Random_mean,Random_std,1,Path_number); % Random trial initialization

    Sigma_before(i)=std(Random_Amplitude,1); % Initial amplitude standard deviation before optimization

    Amp_final_path=0; A=0; B=0; C=0; D=0; E=0; F=0;

    Amp_final_path(1)=Random_Amplitude(1); % First amplitude of trial is kept

    for j=2:Path_number

    Amp_1_path= Random_Amplitude(j)-(round((Random_Amplitude(j)-mean(Amp_final_path))/Amplitude_step))*Amplitude_step;
    Amp_2_path= Random_Amplitude(j)-(round((Random_Amplitude(j)-mean(Amp_final_path))/Amplitude_step)+1)*Amplitude_step;
    Amp_3_path= Random_Amplitude(j)-(round((Random_Amplitude(j)-mean(Amp_final_path))/Amplitude_step)-1)*Amplitude_step;

    A=[Amp_final_path Amp_1_path]; B=[Amp_final_path Amp_2_path]; C=[Amp_final_path Amp_3_path];
    D=std(A,1); E=std(B,1); F=std(C,1);

    if D<=E
    if D<=F
    Amp_final_path(j)=Amp_1_path;
    else
    Amp_final_path(j)=Amp_3_path;
    end
    else
    if E<=F
    Amp_final_path(j)=Amp_2_path;
    else
    Amp_final_path(j)=Amp_3_path;
    end
    end

    end

    Amp_initial_paths=Random_Amplitude;
    Amp_final_paths=Amp_final_path;
    Summary_sigma_before=Sigma_before;
    Summary_sigma_after(i)=std(Amp_final_paths,1);
    All_Amplitudes=[All_Amplitudes;Amp_initial_paths];

    end

    All_Amplitudes(1,:)=[];
    Summary_sigma_before;
    Summary_sigma_after;

    A part cette méthode itérative, je n'arrive pas à mettre en équation l'optimisation voulue. Je suis preneur de toute autre piste...Merci!

    Citation Envoyé par tarzan_tlse Voir le message
    Merci pour la réponse...le but est d'équilibrer/minimiser les différences de gain entre 4 amplificateurs. En fait j'ai déjà implémenté cette approche itérative:
    1. valeurs initiales G1, G2, G3, G4
    2. G1 sélectionné
    3. G2 optimisé en G2'pour minimiser le sigma de (G1, G2')
    4. G3 optimisé en G3' pour minimiser le sigma de (G1, G2', G3')
    5. G4 optimisé en G4' pour minimiser le sigma de (G1, G2', G3', G4')

    Je ne suis pas sûr que cette méthode itérative soit la plus efficace pour minimiser l'écart-type, je voulais donc la confronter à d'autres algo. plus "analytiques" et directs.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 56
    Points : 28
    Points
    28
    Par défaut
    Personne ne peut m'aider...??? Merci

    Citation Envoyé par tarzan_tlse Voir le message
    Voici le code un peu "bestial" réalisé:

    clc
    clear
    % Parameters
    Path_number=4; % Number of MPA paths
    Random_number=300; % Number of random trials
    Random_std=2; % Amplitude standard deviation of the random trials (dB)
    Random_mean=0;
    Amplitude_bit=7; % Bit number of digital attenuator
    Amplitude_range=32; % Range of the digital attenuator (dB)
    Amplitude_step=Amplitude_range/(2^Amplitude_bit); % Step of digital attenuator (dB)
    Sigma_goal=0.2; % Amplitude standard deviation max. expected (dB)

    % Initialization of paths Amplitude
    Amp_1_path=0; Amp_2_path=0; Amp_3_path=0;
    Amp_final_path=0; Amp_final_paths=0;
    Random_Amplitude=0;
    Sigma_before=0;
    Summary_sigma_before=0; Summary_sigma_after=0;
    All_Amplitudes=zeros(1,Path_number);

    % Random trials
    for i=1:Random_number

    Random_Amplitude=random('Normal',Random_mean,Random_std,1,Path_number); % Random trial initialization

    Sigma_before(i)=std(Random_Amplitude,1); % Initial amplitude standard deviation before optimization

    Amp_final_path=0; A=0; B=0; C=0; D=0; E=0; F=0;

    Amp_final_path(1)=Random_Amplitude(1); % First amplitude of trial is kept

    for j=2ath_number

    Amp_1_path= Random_Amplitude(j)-(round((Random_Amplitude(j)-mean(Amp_final_path))/Amplitude_step))*Amplitude_step;
    Amp_2_path= Random_Amplitude(j)-(round((Random_Amplitude(j)-mean(Amp_final_path))/Amplitude_step)+1)*Amplitude_step;
    Amp_3_path= Random_Amplitude(j)-(round((Random_Amplitude(j)-mean(Amp_final_path))/Amplitude_step)-1)*Amplitude_step;

    A=[Amp_final_path Amp_1_path]; B=[Amp_final_path Amp_2_path]; C=[Amp_final_path Amp_3_path];
    D=std(A,1); E=std(B,1); F=std(C,1);

    if D<=E
    if D<=F
    Amp_final_path(j)=Amp_1_path;
    else
    Amp_final_path(j)=Amp_3_path;
    end
    else
    if E<=F
    Amp_final_path(j)=Amp_2_path;
    else
    Amp_final_path(j)=Amp_3_path;
    end
    end

    end

    Amp_initial_paths=Random_Amplitude;
    Amp_final_paths=Amp_final_path;
    Summary_sigma_before=Sigma_before;
    Summary_sigma_after(i)=std(Amp_final_paths,1);
    All_Amplitudes=[All_Amplitudes;Amp_initial_paths];

    end

    All_Amplitudes(1,=[];
    Summary_sigma_before;
    Summary_sigma_after;

    A part cette méthode itérative, je n'arrive pas à mettre en équation l'optimisation voulue. Je suis preneur de toute autre piste...Merci!

  7. #7
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par tarzan_tlse Voir le message
    Personne ne peut m'aider...??? Merci
    bah, comme l'a dit ol9245:
    tu mets toutes tes variables égales à leur moyenne et ton écartype est minimum (et nul par la même occasion)
    Donc il faut résoudre le système de 4 équations a 4 inconnues:

    G1+n1*p = moyenne
    G2+n3*p = moyenne
    G3+n3*p = moyenne
    G4+n4*p = moyenne

    avec,
    G1,G2,G3,G4,p : constantes
    moyenne = (G1+n1*p + G2+n2*p + G3+n3*p + G4+n4*p) / 4

Discussions similaires

  1. calcul de variance et d'écart type
    Par bidson dans le forum Firebird
    Réponses: 8
    Dernier message: 16/09/2013, 10h21
  2. [PROJET] Jeu de carte type Yugi Oh/Magic/Duel Master.
    Par Varghas dans le forum Projets
    Réponses: 4
    Dernier message: 09/03/2009, 19h52
  3. variance et écart-type avec 12.5 ?
    Par Mathusalem dans le forum Sybase
    Réponses: 3
    Dernier message: 01/10/2008, 13h13
  4. [2.1.2] Calcul écart type dans BIRT
    Par nicolep dans le forum BIRT
    Réponses: 2
    Dernier message: 12/04/2007, 11h09
  5. [C#] écriture fichier .txt + calcul écart-type
    Par titaB dans le forum Windows Forms
    Réponses: 6
    Dernier message: 26/05/2005, 13h09

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