Fichier:Regression quadratique lineaire donnees gander.svg
Le contenu de la page n’est pas pris en charge dans d’autres langues.
Taille de cet aperçu PNG pour ce fichier SVG : 452 × 369 pixels. Autres résolutions : 294 × 240 pixels | 588 × 480 pixels | 941 × 768 pixels | 1 254 × 1 024 pixels | 2 509 × 2 048 pixels.
Fichier d’origine (Fichier SVG, nominalement de 452 × 369 pixels, taille : 27 kio)
Ce fichier et sa description proviennent de Wikimedia Commons.
Description
DescriptionRegression quadratique lineaire donnees gander.svg |
English: Fitting the data with a quadratic function (conic section). Data points from Gander, W., Golub, Gene, H. and Strebel, R., Least-Squares Fitting of Circles and Ellipses, BIT 34 (1994), 558-578.
The result is an ellipse.
Français : Régression par une fonction quadratique (conique). Nuage de points de Gander, W., Golub, Gene, H. and Strebel, R., Least-Squares Fitting of Circles and Ellipses, BIT 34 (1994), 558-578.
Le résultat est une ellipse. |
Date | |
Source | Travail personnel |
Auteur | Cdang |
Parameters of the ellipse:
- cartesian equation: x2 + 0.815xy + 0.719y2 – 14.0x – 10.1 = 0;
- geometrical parameters:
- center C(5.38, 4.00),
- semi-axes: a = 2.80, b = 5.10,
- tilt: φ = 35.5°.
Scilab source
This media was created with Scilab, a free open-source software. Here is a listing of the Scilab source used to create this file. |
// **********
// Initialisation
// **********
clear;
// **********
// Données
// **********
X0 = [1, 2, 5, 7, 9, 6, 3, 8];
Y0 = [7, 6, 8, 7, 5, 7, 2, 4];
// **********
// Fonctions
// **********
function [a] = regression_quadratique(X, Y)
// méthode de la distance algébrique
// X, Y : points expérimentaux, matrices colonnes réelles
// a : coefficients de la formule quadratique (matrice colonne réelle)
YY = (X.*X);
XX = [(X.*Y) ; (Y.*Y) ; X ; Y];
[aa, b] = reglin(XX, YY);
a = [-aa, -b];
endfunction
function [phi]=trouve_rotation(A)
// A : coefficients de la formule quadratique (matrice colonne réelle)
// phi : angle que fait un axe de l'ellipse avec x (radians)
delta = 1 - 1/(1 + (A(3) - A(1))^2/A(2)^2);
absphi = acos(sqrt((1 + sqrt(delta))/2));
cap = cos(absphi); sap = sin(absphi);
signephi = sign(A(2)*(cap*cap - sap*sap)/(A(1) - A(3)));
phi = signephi*absphi;
endfunction
function [x,y]=trouve_centre(A)
// A : coefficients de la formule quadratique (matrice colonne réelle)
// x, y : coordonées du centre de l'ellipse (réels)
delta = A(2)*A(2) - 4*A(1)*A(3);
x = (2*A(3)*A(4) - A(2)*A(5))/delta;
y = (2*A(1)*A(5) - A(2)*A(4))/delta;
endfunction
function [rx, ry]=trouve_rayons(a, phi, xc, yc)
// a : coefficients de la formule quadratique (matrice colonne réelle)
// phi : angle que fait un axe de l'ellipse avec x
// xc, yc : coordonnées du centre de l'ellipse
// rx, ry : rayons (grand et petit demi-grands axes) de l'ellipse
A = [a(1), a(2)/2 ; a(2)/2, a(3)];
Q = rotate([1, 0 ; 0, 1], phi); // matrice de rotation
t = [xc ; yc]; // matrice de translation
Abar = Q'*A*Q;
b = [a(4) ; a(5)];
bbar = (2*t'*A + b')*Q;
c = a(6);
cbar = t'*A*t + b'*t + c;
rx = sqrt(abs(cbar/Abar(1,1)));
ry = sqrt(abs(cbar/Abar(2,2)));
endfunction
function [d]=conique(a, x, y)
d = a(1)*x'*x + a(2)*x'*y + a(3)*y'*y + a(4)*x + a(5)*y + a(6);
endfunction
function [] = trace_conique(a)
epsilon = 1.5e-1;
Xbase = 0:0.1:10;
Ybase = 1:0.1:9;
i = 1;
for x = Xbase
for y = Ybase
if abs(conique(a, x, y)) <= epsilon then
X(i) = x;
Y(i) = y;
i = i + 1;
end
end
end
Xmoy = mean(X); Ymoy = mean(Y); // détermination d'un point intérieur
theta = atan(Y-Ymoy, X-Xmoy); // angle des vecteurs
posMat = gsort([theta, X, Y], "lr"); // classement dans le sens trigo
[m, k] = max(abs(diff(posMat(:, 1)))); // saut de point
X = [posMat(k+1:$, 2) ; posMat(1:k, 2)]; // décalage circulaire
Y = [posMat(k+1:$, 3) ; posMat(1:k, 3)];
plot2d(X, Y, style = 5);
endfunction
// **********
// Programme principal
// **********
// lecture des données
Xdef = X0;
Ydef = Y0;
// Régression
Aopt = regression_quadratique(Xdef, Ydef);
aopt = [1, Aopt];
// affichage des paramètres
disp(aopt)
phi = trouve_rotation(aopt);
phideg = phi*180/%pi;
[xc, yc] = trouve_centre(aopt);
[a, b] = trouve_rayons(aopt, phi, xc, yc);
disp("phi = "+string(phi)+" rad = "+string(phideg)+"°.");
disp("C("+string(xc)+" ; "+string(yc)+").");
disp("a = "+string(a)+" ; b = "+string(b)+".");
// tracé
clf;
plot(Xdef, Ydef, "b+")
replot([0, 10 ; 1, 9]);
plot(xc, yc, "r+")
trace_conique(aopt)
Conditions d’utilisation
Moi, en tant que détenteur des droits d’auteur sur cette œuvre, je la publie sous les licences suivantes :
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.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue |
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éments décrits dans ce fichier
dépeint
Valeur sans élément de Wikidata
20 décembre 2012
Historique du fichier
Cliquer sur une date et heure pour voir le fichier tel qu'il était à ce moment-là.
Date et heure | Vignette | Dimensions | Utilisateur | Commentaire | |
---|---|---|---|---|---|
actuel | 24 mai 2018 à 14:29 | 452 × 369 (27 kio) | Cdang | continuous line | |
20 décembre 2012 à 12:10 | 452 × 364 (39 kio) | Cdang | {{Information |Description ={{en|1=Fitting the data with a quadratic function (conic section). Data points from Gander, W., Golub, Gene, H. and Strebel, R., ''Least-Squares Fitting of Circles and Ellipses'', BIT 34 (1994), 558-578. The result is an... |
Utilisation du fichier
La page suivante utilise ce fichier :
Métadonnées
Ce fichier contient des informations supplémentaires, probablement ajoutées par l'appareil photo numérique ou le numériseur utilisé pour le créer.
Si le fichier a été modifié depuis son état original, certains détails peuvent ne pas refléter entièrement l'image modifiée.
Largeur | 452.09177 |
---|---|
Hauteur | 368.58301 |
Ce document provient de « https://fr.wikipedia.org/wiki/Fichier:Regression_quadratique_lineaire_donnees_gander.svg ».