
Envoyé par
FR119492
Salut !
Pour éviter des confusions sur les indices, je réécris ton problème en changeant les noms des variables:
Tes valeurs expérimentales sont des quintuplets (wk, xk, yk, zk, fk), le numéro k de la mesure allant de 1 à n.
Tu cherches les coefficients a1 à a10 de manière à ce que l'expression
f=a1 w^2+a2 x^2+a3 y^2 + a4 z^2 + a5 wx + a6 wy + a7 wz + a8 xy + a9 xz + a10 yz
joue le moins mal possible avec tes mesures. Il est évident que, pour que le problème ait un sens, tu dois avoir au minimum 10 quintuplets, ce qui te donnerait un système linéaire dont les inconnues sont a1 à a10; mais comme tes mesures comportent inévitablement une certaine incertitude, il vaut mieux en avoir plus.
Tu vas donc obtenir un système comportant plus d'équations que d'inconnues, la matrice étant rectangulaire. C'est un sujet qu'on évite pudiquement dans presque tout l'enseignement des mathématiques, alors qu'il existe une méthode très élégante: la décomposition selon les valeurs singulière (SVD). Dans MatLab, c'est la fonction svd (regarde aussi pinv); si tu programmes en Fortran, c'est le sous-programme DSVDC de la librairie LinPack; si tu utilises un autre langage, tu trouveras certainement in équivalent. Pour la théorie, je te conseille Numerical Recipes.
Bonne chance.
Jean-Marc Blanc
Partager