Méthode des moindres carrés
Bonjour,
Voici un problème que je n'arrive pas à résoudre :
Soit la fonction $f(x)=a_1\cos(x^4)+a_2x^2 + a_3x+\log_{10}(a_4x^2)$.
Je dois écrire un programme qui, à partir d'un ensemble de 20 valeurs de $x$ tirées au hasard $0.4-12$ et de $f(x)$ pour des valeurs données, calculer $y=f(x)+N(0,0.40)$ (moyenne $0$ et écart-type $0.40$).
Les deux tableaux $x$ et $y$ sont utilisés pour déterminer $a_i$ au sens des moindres carrés. La procédure, à partir du calcul de y, est répétée 1000 fois afin de déterminer la médiane et les 95e centiles des 4 paramètres.
En gros, ce que j'ai fait.
J'ai mon tableau des valeurs $x$ et des valeurs $y$ (jusque là, j'ai réussi à écrire mon programme).
Mais après je ne comprends pas comment déterminer les paramètres grâce à la méthode des moindres carrés.
Puisque $f$ n'est pas linéaire, j'ai d'abord pris le logarithme en base $10$ est deux côtés, ce qui me donne $\exp_{10}(y)=a_4x^2\exp_{10}\left( a_1\cos(x^4)+a_2x^2 + a_3x+N(0,0.40)\right)$.
Je pose $Y=\exp_{10}(y)$ et $B=\exp_{10}\left( a_1\cos(x^4)+a_2x^2 + a_3x+N(0,0.40)\right)$.
Donc j'ai $Y=Ba_4 x^2$.
Merci d'avance
Comment je détermine les $a_i$ ? Je ne comprends pas... Ce n'est pas linéaire en $x$.
Voici un problème que je n'arrive pas à résoudre :
Soit la fonction $f(x)=a_1\cos(x^4)+a_2x^2 + a_3x+\log_{10}(a_4x^2)$.
Je dois écrire un programme qui, à partir d'un ensemble de 20 valeurs de $x$ tirées au hasard $0.4-12$ et de $f(x)$ pour des valeurs données, calculer $y=f(x)+N(0,0.40)$ (moyenne $0$ et écart-type $0.40$).
Les deux tableaux $x$ et $y$ sont utilisés pour déterminer $a_i$ au sens des moindres carrés. La procédure, à partir du calcul de y, est répétée 1000 fois afin de déterminer la médiane et les 95e centiles des 4 paramètres.
En gros, ce que j'ai fait.
J'ai mon tableau des valeurs $x$ et des valeurs $y$ (jusque là, j'ai réussi à écrire mon programme).
Mais après je ne comprends pas comment déterminer les paramètres grâce à la méthode des moindres carrés.
Puisque $f$ n'est pas linéaire, j'ai d'abord pris le logarithme en base $10$ est deux côtés, ce qui me donne $\exp_{10}(y)=a_4x^2\exp_{10}\left( a_1\cos(x^4)+a_2x^2 + a_3x+N(0,0.40)\right)$.
Je pose $Y=\exp_{10}(y)$ et $B=\exp_{10}\left( a_1\cos(x^4)+a_2x^2 + a_3x+N(0,0.40)\right)$.
Donc j'ai $Y=Ba_4 x^2$.
Merci d'avance
Comment je détermine les $a_i$ ? Je ne comprends pas... Ce n'est pas linéaire en $x$.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
"Puisque f n'est pas linéaire, j'ai d'abord pris le logarithme ..." Donc tu as changé de problème.
La méthode des moindres carrés est simplement de choisir les coefficients $a_i$ de façon que la somme des carrés des différences entre les valeurs données et les valeurs modèles soit minimale.
Je n'ai pas trop compris comment tu obtiens ton tableau (ta troisième phrase). Je n'ai pas non plus compris quel est le travail à faire : trouver un modèle théorique adapté aux données, ou bien trouver un modèle pratique (jouer sur les paramètres pour trouver approximativement les meilleurs). Peut-être l'énoncé du problème serait-il éclairant.
Cordialement.
NB : le $a_4$ dans le log revient à une constante additive $\log_{10}(a_4)$. Tu es sûr qu'il est dans la parenthèse ?
Soit la fonction $f(x)=a_1\cos(x^4)+a_2x^2 +
> a_3x+\log_{10}(a_4x^2)$. Ecrire un programme (et toutes les fonctions associées) Python3 qui, à partir d’un ensemble de 20 valeurs de $x$ tirées au hasard (uniforme) sur 0.4–14.0 et de $f(x)$ particularisée avec $a_1=-3$, $a_2=9$, $a_3=-5$ et $a_4=2$, calcule $y=f(x)+N(0,0.40)$. Les valeurs $y$ sont donc entachées d’un bruit gaussien de moyenne 0 et d’ecart-type 0.40. Les deux tableaux $x$ et $y$ sont ensuite utilisés pour déterminer les $a_i$ au sens des moindres
carrés. La procédure, à partir du calcul de $y$, est répétée 1000 fois afin de déterminer la médiane et
les 5e et 95e centiles des distributions des 4 paramètres. Comment évolue la différence entre ces 2
centiles si le bruit tombe à 0.175 ou grimpe à 0.70.
J'ai fait un premier tableau avec les $x$ tirés au hasard
Cordialement.
Merci beaucoup.
Mais comment je détermine à chaque fois les $a_i$ ? Je dois séparer les différents cas et traiter les $a_i$ séparément ?
Je m'explique, faire d'abord $y=a_1 \cos(x^4)$ simplement puis ensuite $y=a_2 x^2$ et ainsi de suite ?
Je n'arrive pas à appliquer la méthode des moindres carrés quand il y a autant de paramètres qui rentrent en jeu…
Merci d'avance.
Comme je ne connais que de loin, je te renvoie à un ouvrage sur le sujet.
Cordialement.