solution approchée d'un système

Bonjour

je dois résoudre (pour mon travail, avec le logiciel R) le système suivant à 6 équations et 4 inconnues.
B - A = Z1
C - A = Z2 
D - A = Z3
C - B = Z4
D - B = Z5
D - C = Z6


A,B,C,D et les Zi sont tous réels (pouvant être négatifs).
Les Zi sont connus, et A,B,C,D sont les variables.

Je dois trouver des valeurs pour A,B,C,D qui minimisent la quantité suivante :
(B - A - Z1)^2 + (C - A - Z2)^2 + (D - A - Z3)^2 + (C - B - Z4)^2 + (D - B - Z5)^2 + (D - C - Z6)^2


Depuis trois jours je planche dessus mais n'y arrive pas.

J'ai essayé de construire la matrice :
M = (     -1   1   0   0
          -1   0  -1   0
          -1   0   0  -1
           0  -1   1   0
	   0  -1   0  -1
	   0   0  -1   1 )

où la première colonne est l'indicatrice de A dans le système ... et ... la dernière colonne est l'indicatrice de D.
Ensuite je veux faire : inv( M'M ) * M' (genre régression) mais la matrice est singulière et je suis le bec dans l'eau.

Si quelqu'un a une piste à me donner, ou un pdf à lire, ... je prends avec grand intérêt !


Vincent

Réponses

  • Bonjour.

    Ton système n'a généralement pas de solutions. Pourquoi voudrais-tu le résoudre, si ce n'est pas possible ?

    Cordialement.
  • Gerard il ne cherche pas à résoudre le système. Il cherche à trouver la solution des moindres carrés.
  • oui c'est exactement ça !

    les solutions approchées nous suffisent amplement (car nos Zi sont déjà des approximations)

    je cherche une technique efficace car ensuite j'aurai à résoudre des systèmes bien plus gros.

    merci pour vos réponses.
  • Oui, Skyffer3,

    c'est bien ce qu'il me semblait, mais il faudrait qu'il arrête de vouloir résoudre le système. Et d'autre part, il n'y a aucune raison à priori pour qu'il existe une solution au sens des moindres carrés : les 6 équations sont fortement liées, D-C devant être proche à la fois de Z3-Z2, de Z5-Z4 et de Z6.

    Cordialement.
  • Il y a toujours une solution au sens des moindres carrés. Éventuellement il peut y en avoir une infinité. Il y en a une unique de norme minimale, mais évidemment il y a bien d'autres moyens de contraindre les solutions si le système est sous-contraint, ce qui n'a pas l'air d'être le cas ici mais je n'ai jeté qu'un oeil rapide.
  • Heu ... je ne vois pas de raison pour que cette somme de carrés à 4 variables ait un minimum : Elle pourrait tendre vers 0 pour certaines valeurs des variables sans prendre la valeur 0.
    D'ailleurs, Vincent semble dire qu'il n'y a pas de minimum.

    Me trompé-je ?

    Cordialement.
  • Oui je confirme tout ce que j'ai dit au-dessus (sauf si vraiment je délire).

    Un moindres carrés linéaire a toujours au moins une solution. De toute façon la fonction à minimiser est coercive donc une solution existe forcément.

    Mais évidemment on peut démontrer tout ça proprement algébriquement. Et on a les formules closes aussi bien dans le cas classique sur-contraint (solution unique) que dans le cas sous-contraint (avec une formule qui donne toutes les solutions ainsi que l'unique solution de norme minimale).

    Par contre évidemment j'ai jamais dit que le minimum valait 0, c'est faux en toute généralité, justement parce que le système n'est pas résoluble.

    Edit : j'ai dit une bêtise sur la coercivité en revanche.
  • A mon avis aussi il y a toujours une solution approchée, et bien sûr le minimum est au-dessus de zéro.
    Je peux pas le prouver mais j'arrive pas à imaginer un contre-exemple.

    Par ailleurs la question de Gérard sur l'existence de ce minimum est très intéressante.
    J'aimerais bien qu'il existe dans tous cas, même si le système est sur-déterminé...
    sinon je suis mal !

    merci pour votre aide et vos idées, je m'approche de la solution.

    Vincent
  • Pour confirmer mes dires : http://math.uchicago.edu/~may/REU2012/REUPapers/Lee.pdf

    Tout ça doit déjà être implémenté en R j'imagine.
  • Attention,

    il ne s'agit pas d'un modèle linéaire, ici. A moins qu'il y en ait un précédent, qui nous a été caché.
  • Il est clair que la solution n'est pas unique car si $(A,B,C,D)$ minimise alors $(A,B,C,D)+\lambda(1,1,1,1)$ aussi. Pour cette raison cherchons celle des solutions telle que $A=0$. En regardant les derives partielles par rapport a $B,C,D$ on arrive au systeme $$3B-C-D=b,\ 3C-B-D=c,\ 3D-B-C=d$$ ou $b,c,d$ sont des combinaisons lineaires de $Z_1,\ldots,Z_6$. On arrive a
    $$B=\frac{1}{4}(2b+c+d),\ C=\frac{1}{4}(b+2c+d),\ B=\frac{1}{4}(b+c+2d).$$


    On peut facilement generaliser a $n$ variables.
  • Une remarque triviale : il est sans espoir de trouver $A,B,C,D$ individuellement. Rien ne change dans les équations si on translate toutes les variables d'une même quantité. La seule chose sur laquelle on peut espérer mettre la main, c'est les trois différences $B-A=\beta$, $C-A=\gamma$, et $D-A=\delta$.
    Les trois dérivées partielles de la somme de carrés à minimiser forment un système linéaire de trois équations linéaires en les trois inconnues $\beta,\gamma,\delta$.
    Bon, je dis la même chose que P. qui a répondu entretemps.
  • Gérard je ne comprends pas de quoi tu parles, c'est très clairement un moindres carrés linéaire ici.
  • Soit $Z=(z_{ij})_{0\leq i,j\leq n}$ une matrice antisymetrique d'ordre $n+1.$ Si $x=(x_0,\ldots,x_n)^T$ on considere le polynome quadratique
    $$Q(x)=\sum_{0\leq i<j\leq n}(x_j-x_i-z_{ij})^2=\frac{1}{2}\sum_{0\leq i,j\leq n}(x_j-x_i-z_{ij})^2$$ pour le minimiser. Soit $\mathbf{1}$ le vecteur colonne d'ordre $n+1$ forme de 1. Il est clair que si $x$ minimise $Q$ il en va de meme pour $x+\lambda \mathbf{1}.$ Pour cette raison cherchons le $x$ qui minimise tel que de plus $x_0=0.$

    Notons $c=(c_0,\ldots,c_n)^T=Z\mathbf{1}$


    Alors pour $ k=1,\ldots,n$ le systeme

    $$\frac{\partial}{\partial x_k}Q(x)=x_k-z_{0k}+\sum_{j=1}^n(x_k-x_j-z_{kj}) =0$$

    peut s'ecrire
    $$\left[\begin{array}{ccccc}n&-1&-1&\ldots&-1\\ -1&n&-1&\ldots&-1\\ \\-1&-1&-1&\ldots&n\\ \end{array}\right]\left[\begin{array}{c}x_1\\x_2\\ \ldots\\x_n\end{array}\right]=\left[\begin{array}{c}c_1\\c_2\\ \ldots\\c_n\end{array}\right]$$
    Notons par $M_n$ la matrice carree du systeme ci dessus et par $J_n$ la matrice carree d'ordre $n$ dont tous les coefficients sont 1. Alors $J^2_n=nJ_n$ et donc $M_n=(n+1)I_n-J_n$ a pour inverse $$M_n^{-1}=\frac{1}{n+1}(I_n+J_n)$$
  • Bonjour,

    en fait la réponse est simple et indiquée dans le fichier joint, au "Theorem 11.1.2".
    En effet le pseudo-inverse de la matrice M'M conduit (comme l'inverse) à une solution des moindres carrés.

    Si certains d'entre vous utilisent R, il suffit d'écrire :
    library(MASS)     # pour avoir accès au calcul du pseudo-inverse à partir décomposition svd
    
    puis :
    vecteur_resultat  =  ginv( t(M) %*% M ) %*% t(M) %*% vecteur_donnees
    

    Et le théorème garantit qu'on obtient une solution des moindres-carrés.

    Vincent
  • Bonsoir ,

    (B - A - Z1)^2 + (C - A - Z2)^2 + (D - A - Z3)^2 + (C - B - Z4)^2 + (D - B - Z5)^2 + (D - C - Z6)^2

    est minimal lorsque

    A := D + (-Z1-Z5-2*Z3-Z6-Z2)/4
    B := D + (Z1-Z4-2*Z5-Z3-Z6)/4
    C := D + (Z2+Z4-Z5-Z3-2*Z6)/4
    et D quelconque

    Vu l'expression "aux différences", c'est normal qu'il y ait une variable soit libre, ici D par exemple (mais on pourrait très bien prendre A, B ou C)
  • Cette matrice est de rang plein, c'est une régression classique que tu cherches à faire.
    X <- rbind(c(-1, 1, 0, 0),
               c(-1, 0,-1, 0),
               c(-1, 0, 0,-1),
               c(0,-1, 1, 0),
               c(0,-1, 0,-1),
               c(0, 0,-1, 1))
    
    z <- c(1, 2, 3, 4, 5, 6)
    
    lm.fit(X, z)
    
  • Saturne,
    Je crois que la matrice serait plutôt
    $\left[ \begin {array}{cccc}
    -1&1&0&0\\
    -1&0&1&0\\
    -1&0&0&1\\
    0&-1&1&0\\
    0&-1&0&1\\
    0&0&-1&1\end {array}
    \right]$
    qui est de rang 3.
    Non ?
Connectez-vous ou Inscrivez-vous pour répondre.