Moindres carrés sur une équation matricielle

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
GaBuZoMeu
Habitué(e)
Messages: 6019
Enregistré le: 05 Mai 2019, 10:07

Re: moindres carrés sur une équation matricielle

par GaBuZoMeu » 08 Avr 2020, 16:02

Sylvain231 : parce que tu t'es trompé. La matrice a trois lignes, donc le produit a trois lignes.

Comme vous l'avez remarqué, j'utilise pour la transposée de la notation conforme à la norme ISO 80000-2



sylvain231
Membre Relatif
Messages: 301
Enregistré le: 07 Avr 2020, 13:20

Re: moindres carrés sur une équation matricielle

par sylvain231 » 08 Avr 2020, 16:09

non je ne me suis pas trompé ma matrice A a bien trois lignes ou alors c'est dans mon code Python qu'il y a une erreur mais alors je ne vois pas où

sylvain231
Membre Relatif
Messages: 301
Enregistré le: 07 Avr 2020, 13:20

Re: moindres carrés sur une équation matricielle

par sylvain231 » 08 Avr 2020, 16:27

voici mon code complet :
Code: Tout sélectionner
import numpy as np
import random as r
N=1
r.seed()
A=np.zeros((3,N));#tableau de connues 3xN
B=np.zeros((3,N));#tableau de connues 3xN

#on remplit aléatoirement A et B
for i in range(3):
   for j in range(N):
      A[i,j]=r.random()
      B[i,j]=r.random()
print("M2=",np.matmul(A.T,np.matmul(B,np.linalg.inv(np.matmul(B.T,B)))))

sylvain231
Membre Relatif
Messages: 301
Enregistré le: 07 Avr 2020, 13:20

Re: moindres carrés sur une équation matricielle

par sylvain231 » 08 Avr 2020, 16:29

ah oui j'ai compris j'ai mis N=1 et donc A.T a une ligne !

sylvain231
Membre Relatif
Messages: 301
Enregistré le: 07 Avr 2020, 13:20

Re: moindres carrés sur une équation matricielle

par sylvain231 » 08 Avr 2020, 16:32

voilà c'est corrigé et ça donne le même résultat que l'autre, ouf !

Code: Tout sélectionner
import numpy as np
import random as r
N=100
r.seed()
A=np.zeros((3,N));#tableau de connues 3xN
B=np.zeros((3,N));#tableau de connues 3xN

#on remplit aléatoirement A et B
for i in range(3):
   for j in range(N):
      A[i,j]=r.random()
      B[i,j]=r.random()
print("M2=",np.matmul(A,np.matmul(B.T,np.linalg.inv(np.matmul(B,B.T)))))

   
M=np.zeros((3,3));#tableau d'inconnues 3x3
S=np.zeros((9,9));#coefficients du système 9x9
R=np.zeros(9);#coefficients résultats du système 9

for j in range(3):
   for l in range(3):
      for k in range(3):
         for i in range(N):
            S[l+3*j,k+3*j]=S[l+3*j,k+3*j]+B[k,i]*B[l,i];

for j in range(3):
   for l in range(3):
      for i in range(N):
         R[l+3*j]=R[l+3*j]+A[j,i]*B[l,i];
         
X = np.linalg.solve(S, R)

for j in range(3):
   for k in range(3):
      M[j,k]=X[k+3*j];
      
print("M=",M)

sylvain231
Membre Relatif
Messages: 301
Enregistré le: 07 Avr 2020, 13:20

Re: moindres carrés sur une équation matricielle

par sylvain231 » 08 Avr 2020, 16:32

c'est beaucoup plus simple ainsi en effet !

sylvain231
Membre Relatif
Messages: 301
Enregistré le: 07 Avr 2020, 13:20

Re: moindres carrés sur une équation matricielle

par sylvain231 » 08 Avr 2020, 16:49

problème résolu ! merci à vous ;)

tournesol
Membre Irrationnel
Messages: 1509
Enregistré le: 01 Mar 2019, 19:31

Re: moindres carrés sur une équation matricielle

par tournesol » 08 Avr 2020, 17:26

Merci à toi . J'ai repris tous mes calculs et j'ai retrouve ta réponse en développant directement . Je n'ai plus qu'à recommencer avec une approximation affine .

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 35 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite