Fichier:Regression pic assymetrique.gif

Le contenu de la page n’est pas pris en charge dans d’autres langues.
Une page de Wikipédia, l'encyclopédie libre.

Regression_pic_assymetrique.gif(610 × 460 pixels, taille du fichier : 22 kio, type MIME : image/gif, en boucle, 10 trames, 5,0 s)

Ce fichier et sa description proviennent de Wikimedia Commons.

Description

Description
English: Successive steps of Gauss-Newton regression, with variable damping factor α, to fit a dissymetrical noisy peak. Pictures created with Scilab, animated with The Gimp.
Français : Étapes successives d'une régression de Gauss-Newton, avec facteur d'amortissement α variable, pour ajuster un pic assymétrique. Images créées avec Scilab ; animation créée avec The Gimp.
Date
Source Travail personnel
Auteur Cdang (Christophe Dang Ngoc Chan)

Scilab source

Le fichier de données et celui de fonctions communes sont identiques à ceux de File:Regression pic gaussien dissymetrique bruite.svg.

// **********
// Constantes et initialisation
// **********

clear;
clf;

chdir('monchemin/')

// Paramètres de Newton-Raphson
precision = 1e-7; // condition d'arrêt
itermax = 60; // idem
 
// Précision de la linéarisation approchée
epsilon = 1e-6;
 
// **********
// Fonctions
// **********
 
exec('fonctions_communes.sce', -1)
 
function [e] = res(Yexp, Ycal)
    e = sqrt(sum((Yexp-Ycal).^2));
endfunction
 
function [A, R] = gaussnewton(f, X, Yexp, A0, imax, epsilon)
    // A : jeu de paramètres optimisé par régression (vecteur)
    // R : liste des facteurs de qualité de la régression
    // pour chaque étape (vecteur)
    // X : variable explicative (vecteur)
    // Yexp : variable expliquée, valeurs mesurées (vecteur)
    // A0 : paramètres d'initialisation du modèle (vecteur)
    // epsilon : valeur d'arrêt (scalaire)
    k = 1; // facteur d'amortissement initial, <=1,
    // évite la divergence 
    n = size(X,'*');
    e0 = sqrt(sum(Yexp.^2)); // normalisation du facteur de qualité
    Ycal = f(A0, X); // modèle initial
    R(1) = res(Yexp, Ycal)/e0; // facteur de qualité initial
    disp('i = 1 ; k = 1 ; R = '+string(R(1))) // affichage param initiaux
    i = 1;
    B = A0;
        subplot(2,1,1)
        plot2d(X, Yexp, rect=[-3, -2, 3, 12])
        plot(X, Ycal, "-r")
        xstring(-2.8, -1.5, string(B))
        subplot(2,1,2)
        plot2d(R, rect=[1, 0, 10, 1])
        xstring(1.2, 0.1, 'α = '+string(k)+' ; R = '+string(R(i)))
        nom = 'picassym'+string(i)+'.gif';
        xs2gif(0,nom)
    drapeau = %t;
    while (i < imax) & drapeau // teste la convergence globale
        i = i+1;
        deltay = Yexp - Ycal;
        J = linearisation_approchee(f, B, X, epsilon); // matrice jacobienne
        tJ = J'; // transposée
        deltap0 = inv((tJ*J))*tJ*deltay;
        drapeau2 = %t // pour une 1re exécution
        while drapeau2 & (k>0.1) // teste la divergence sur 1 étape
            deltap = k*deltap0;
            Bnouveau = B + deltap';
            Ycal = f(Bnouveau, X);
            R(i) = res(Yexp, Ycal)/e0;
            drapeau2 = (R(i) >= R(i-1)) // vrai si diverge
            if drapeau2 then k = k*0.75; // atténue si diverge
            else k0 = k; // pour affichage de la valeur
                k = (1 + k)/2; // réduit l'atténuation si converge
            end
        end
        B = Bnouveau;
        drapeau = abs(R(i-1) - R(i)) > epsilon
        clf;
        subplot(2,1,1)
        plot2d(X, Yexp, rect=[-3, -2, 3, 12])
        plot(X, Ycal, "-r")
        xstring(-2.8, -1.5, string(B))
        subplot(2,1,2)
        plot2d(R, rect=[1, 0, 10, 1])
        xstring(1.2, 0.1, 'α = '+string(k0)+' ; R = '+string(R(i)))
        nom = 'picassym'+string(i)+'.gif';
        xs2gif(0,nom)
//        disp('i = '+string(i)+' ; k = '+string(k0)+' ; R = '+string(R(i)))
    end
    A = B;
endfunction
 
// **********
// Programme principal
// **********
 
// lecture des données
donnees = read('pic_gauss_dissym_bruite.txt',-1,2);
 
// carcatéristiques des données
Xdef = donnees(:,1);
Ydef = donnees(:,2);
// Ainit = [-0.03, 9.7, 8*((0.84 - 0.03)/2.35)^2, 8*((0.45 + 0.03)/2.35)^2];
Ainit = [1, 1, 1, 1];

// Régression
tic();
[Aopt, Rnr] =...
    gaussnewton(gauss_dissym, Xdef, Ydef,...
    Ainit, itermax, precision)
t = toc();

// Courbe calculée
 
Yopt = gauss_dissym(Aopt, Xdef);
 
// Affichage
 
print(%io(2),Ainit)
print(%io(2),Aopt)
print(%io(2),t)
 
clf
 
subplot(2,1,1)
plot(Xdef, Ydef, "-b")
plot(Xdef, Yopt, "-r")
 
subplot(2,1,2)
plot(Rnr)

Conditions d’utilisation

Moi, en tant que détenteur des droits d’auteur sur cette œuvre, je la publie sous les licences suivantes :
GNU head Vous avez la permission de copier, distribuer et modifier ce document selon les termes de la GNU Free Documentation License version 1.2 ou toute version ultérieure publiée par la Free Software Foundation, sans sections inaltérables, sans texte de première page de couverture et sans texte de dernière page de couverture. Un exemplaire de la licence est inclus dans la section intitulée GNU Free Documentation License.
w:fr:Creative Commons
paternité partage à l’identique
Ce fichier est sous licence Creative Commons Attribution – Partage dans les Mêmes Conditions 3.0 (non transposée), 2.5 Générique, 2.0 Générique et 1.0 Générique.
Vous êtes libre :
  • de partager – de copier, distribuer et transmettre cette œuvre
  • d’adapter – de modifier cette œuvre
Sous les conditions suivantes :
  • paternité – Vous devez donner les informations appropriées concernant l'auteur, fournir un lien vers la licence et indiquer si des modifications ont été faites. Vous pouvez faire cela par tout moyen raisonnable, mais en aucune façon suggérant que l’auteur vous soutient ou approuve l’utilisation que vous en faites.
  • partage à l’identique – Si vous modifiez, transformez, ou vous basez sur cette œuvre, vous devez distribuer votre contribution sous la même licence ou une licence compatible avec celle de l’original.
Vous pouvez choisir l’une de ces licences.

Légendes

Ajoutez en une ligne la description de ce que représente ce fichier

Éléments décrits dans ce fichier

dépeint

image/gif

Historique du fichier

Cliquer sur une date et heure pour voir le fichier tel qu'il était à ce moment-là.

Date et heureVignetteDimensionsUtilisateurCommentaire
actuel5 décembre 2012 à 15:13Vignette pour la version du 5 décembre 2012 à 15:13610 × 460 (22 kio)Cdang{{Information |Description ={{en|1=alpha (damping factor) value corrected}} |Source ={{own}} |Author =Cdang |Date = |Permission = |other_versions = }}
5 décembre 2012 à 15:09Vignette pour la version du 5 décembre 2012 à 15:09610 × 460 (22 kio)Cdang{{Information |Description ={{en|1=Successive steps of Gauss-Newton regression, with variable damping factor α, to fit a dissymetrical noisy peak. Pictures created with Scilab, animated with The Gimp.}} {{fr|1=Étapes successives d'une régression...

Les 2 pages suivantes utilisent ce fichier :

Usage global du fichier

Les autres wikis suivants utilisent ce fichier :

Métadonnées