Vous êtes sur la page 1sur 52

LES ELEMENTS DE PROJET : PAGE

INTRODUCTION……………………………………………………………………………………………. 2
PARTIE I : L’AJUSTEMENT D’UN COURBE………………………………………………………. 3
1)-Définition de l'ajustement d’un courbe…………………………………………….. 4
2)-Deux catégories d'ajustement de courbe…………………………………………… 5
A) -Ajustement affine (un lissage)……………………………………………………… 5
B) -Ajustement exact (interpolation)…………………………………………………. 6
3)-Statistiques de données……………………………………………………………………. 7
A) -L'écart-type 𝝈………………………………………………………………………………. 7
B) -La moyenne…………………………………………………………………………………. 7
PARTIE II :LA REGRESSION LINEAIRE PAR LA METHODE DES
MOINDRES CARRES………………………………………………………………………………………. 8
1)-La régression linéaire simple……………………………………………………………… 9
A) -L’objectif de la régression linéaire simple…………………………………….. 9
2)-Énoncé du problème…………………………………………………………………………. 10
3)-Les résidus………………………………………………………………………………………… 11
4)-Critères pour le meilleur ajustement…………………………………………………. 12
5)-Ajustement par la méthode des moindres carrés………………………………. 13
A) -Exemple………………………………………………………………………………………. 15
6)-La régression linéaire multiple…………………………………………………………… 17
A) -Formulation de l'équation matricielle………………………………………….. 17
B) -Formulation géométrique de la méthode des moindres carrés…….. 19
C)-Visualisation de la méthode des moindres carrés………………………….. 22
D)- Exemple………………………………………………………………………………………. 23
PARTIE III : LA REGRESSION POLYNOMIAL PAR LA METHODE DES
MOINDRES CARRES………………………………………………………………………………………. 25
1)- La définition et l’objectif de la régression polynomial………………………. 26
2)- Énoncé du problème………………………………………………………………………… 26
3)-La forme Matricielle et le calcul des estimations……………………………….. 26
A) - Ajustement par la méthode des moindres carrés…………………………. 28
4)-Équation de régression quadratique………………………………………………….. 29
A) - Ajustement par la méthode des moindres carrés…………………………. 29
B) - Exemple : le coefficient d'expansion de longueur pour le fer……….. 32
PARTIE IV : CODE FORTRAN………………………………………………………………………….. 37
1)- Code Fortran de la régression linéaire simple…………………………………… 38
2)-Explication du code Fortran………………………………………………………………. 40
3)- Code Fortran de la régression linéaire quadratique………………………….. 50
INTRODUCTION
La méthode des « moindres carrés » est une forme d'analyse de
régression mathématique utilisée pour déterminer la ligne de meilleur
ajustement pour un ensemble de données, fournissant une démonstration
visuelle de la relation entre les points de données. Chaque point de
données représente la relation entre une variable indépendante connue
et une variable dépendante inconnue.
La méthode des moindres carrés fournit la justification globale du
placement de la ligne de meilleur ajustement parmi les points de données
étudiés. L'application la plus courante de cette méthode, parfois appelée
"linéaire" ou "ordinaire", vise à créer une ligne droite qui minimise la
somme des carrés des erreurs générées par les résultats des équations
associées, telles comme le carré des résidus résultant des différences
dans la valeur observée et la valeur anticipée, sur la base de ce modèle.
Cette méthode d'analyse de régression commence par un ensemble de
points de données à tracer sur un graphique d'axes x et y. Un analyste
utilisant la méthode des moindres carrés générera une ligne de meilleur
ajustement qui explique la relation potentielle entre les variables
indépendantes et dépendantes.
Dans l'analyse de régression, les variables dépendantes sont illustrées
sur l'axe y vertical, tandis que les variables indépendantes sont illustrées
sur l'axe x horizontal. Ces désignations formeront l'équation de la ligne de
meilleur ajustement, qui est déterminée à partir de la méthode des
moindres carrés.
Contrairement à un problème linéaire, un problème de moindres carrés
non linéaire n'a pas de solution fermée et est généralement résolu par
itération. La découverte de la méthode des moindres carrés est attribuée
à Carl Friedrich Gauss, qui a découvert la méthode en 1795.
Si les données montrent une relation plus mince entre deux variables, la
ligne qui correspond le mieux à cette relation linéaire est connue sous le
nom de ligne de régression des moindres carrés, qui minimise la distance
verticale entre les points de données et la ligne de régression. Le terme «
moindres carrés » est utilisé car il s'agit de la plus petite somme de carrés
d'erreurs, également appelée « variance ».
PARTIE I :
L’AJUSTEMENT D’UN COURBE
1)-Définition de l'ajustement d’un courbe
L'ajustement de courbe est le processus de construction d'une courbe,
ou fonction mathématique, qui s'adapte le mieux à une série de points de
données, éventuellement soumis à des contraintes. L'ajustement de
courbe peut impliquer soit une interpolation, où un ajustement exact
aux données est requis, soit un lissage, dans lequel une fonction « lisse
» est construite qui correspond approximativement aux données (la
régression linéaire ou polynomial). L’analyse de régression, se
concentre davantage sur des questions d'inférence statistique telles que
le degré d'incertitude présent dans une courbe qui est adaptée aux
données observées avec des erreurs aléatoires. Les courbes ajustées
peuvent être utilisées comme une aide pour la visualisation des données,
pour déduire les valeurs d'une fonction là où aucune donnée n'est
disponible et pour résumer les relations entre deux ou plusieurs variables.

Exemple : Equation d’ordre 2

3.5

2.5
Axe des Y

1.5

0.5

0
0 1 Axe des X 2 3

L'ajustement de courbe détermine les valeurs de A, B, et C afin que


𝑓(𝑥) représente le mieux les data données en rouge.
2)-Deux catégories d'ajustement de courbe
A) -Ajustement affine (un lissage)
Soient les 𝒏 points du nuage représentant, dans un repère cartésien, la
série des 𝒏 valeurs (𝒙𝒊 , 𝒚𝒊 ) des variables 𝒙 et 𝒚. Ajuster une droite 𝒅 à ce
nuage de points consiste à remplacer chaque point (𝒙𝒊 , 𝒚𝒊 ) par un point
de même abscisse et d'ordonnée 𝒚𝒊 , les points ( 𝒙𝒊 , 𝒚𝒊 ) étant alignés sur
la droite d. Une fois l'équation de la droite 𝒅 déterminée, on pourra l'utiliser
pour faire des interpolations (calculs de valeurs intermédiaires) et des
extrapolations (calculs de valeurs futures).

La représentation de la fonction qui résumerait le nuage est la droite qui


passe au plus près des points. On pourrait penser que plusieurs droites
conviendraient mais on retiendra celle qui minimise la somme des carrés
des distances entre elle et chaque point. C’est pourquoi on l’appelle aussi
« droite des moindres carrés ».
Les données mesurées contiennent du bruit, de sorte que la courbe ne
tente pas d'intercepter chaque point

5
Axe des Y

0
0 0.5 1 1.5 2 2.5 3
Axe des X
B) -Ajustement exact (interpolation)
L’interpolation est une opération mathématique permettant de remplacer
une courbe ou une fonction par une autre courbe (ou fonction) plus simple,
mais qui coïncide avec la première en un nombre fini de points (ou de
valeurs) donnés au départ

L’interpolation, en mathématiques, la détermination ou l'estimation de la


valeur de 𝒇(𝒙) , ou d'une fonction de 𝒙, à partir de certaines valeurs
connues de la fonction. Si 𝒙𝟎 < ⋯ < 𝒙𝒏 et 𝒚𝟎 = 𝒇(𝒙𝟎 ),…, 𝒚𝒏 = 𝒇(𝒙𝒏 ) sont
connus, et si 𝒙𝟎 < 𝒙 < 𝒙𝒏 , alors la valeur estimée de 𝒇(𝒙) est dite une
interpolation. Si 𝒙 < 𝒙𝟎 ou 𝒙 > 𝒙𝒏 , la valeur estimée de 𝒇(𝒙) est dite une
extrapolation.

Si 𝒙𝟎 , … , 𝒙𝒏 sont donnés, ainsi que les valeurs correspondantes 𝒚𝟎 , … , 𝒚𝒏 ,


l'interpolation peut être considérée comme la détermination d'une fonction
𝒚 = 𝒇(𝒙) dont le graphe passe par les 𝒏 + 𝟏 points, (𝒙𝒊 , 𝒚𝒊 ) pour 𝒊 =
𝟎, 𝟏, … , 𝒏. Il existe une infinité de fonctions de ce type, mais la plus simple
est une fonction d’interpolation polynomiale 𝒚 = 𝒑(𝒙) = 𝒂𝟎 + 𝒂𝟏 𝒙 + ⋯ +
𝒂𝒏 𝒙𝒏 , avec des constantes 𝒂𝒊 telles que 𝒑(𝒙𝒊 ) = 𝒚𝒊 pour 𝒊 = 𝟎, … , 𝒏

Les échantillons de données sont supposés être exacts et la courbe est


forcée de passer à travers chacun d'eux.

8
7
6
Axe des Y

5
4
3
2
1
0
0 0.5 1 1.5 2 2.5 3
Axe des X
3)-Statistiques de données
A) - L'écart-type 𝝈
L'écart type est une mesure de la dispersion dans les statistiques. La «
dispersion » vous indique à quel point vos données sont répandues. Plus
précisément, il vous montre à quel point vos données sont réparties autour
de la moyenne.
L'écart-type 𝝈 est un paramètre de dispersion. Il mesure la dispersion de
la série de points 𝐲𝐢 par rapport à la moyenne 𝒚. Plus les éléments de la
série sont éloignés de la moyenne, plus l'écart-type est élevé.
La formule de l'écart type :

𝟏 𝐌
𝝈= (𝐲𝐢 − 𝐲)𝟐
𝑴 𝟏

Où :
𝐲𝐢 = valeur du 𝒊è𝒎𝒆 point de l'ensemble de données
𝐲 = la valeur moyenne de l'ensemble de données
𝐌 = le nombre de points de données dans l'ensemble de données.
Dans le cas d’ajustement affine (𝐲𝐢 − 𝐲)𝟐 égale à le carré de la différence
entre la valeur de la variable dépendante 𝒚𝒊 pour chaque point et la valeur
du modèle de régression estimé 𝒚.
L'écart-type mesure l'écart moyen entre les valeurs mesurées 𝒚𝒊 et la ligne
de régression 𝒚. En d'autres termes, il nous indique l'erreur de prédiction
moyenne en utilisant le modèle d’ajustement 𝒚.
B) – La moyenne
Moyenne = Somme de toutes les valeurs d'observation ÷ nombre
d'observations.
On calcule la moyenne d'une variable numérique en additionnant les
valeurs de toutes les observations incluses dans un ensemble de
données, puis en divisant cette somme par le nombre d'observations qui
font partie de l'ensemble. Ce calcul permet d'obtenir la valeur moyenne de
toutes les données. 𝑴
𝟏
𝑦 = 𝒚𝒊
𝑴
𝟏
PARTIE II :
LA REGRESSION LINEAIRE PAR
LA METHODE DES MOINDRES
CARRES
1)-La régression linéaire simple
A) -L’objectif de la régression linéaire simple
Dans la régression linéaire simple, nous prédisons les données sur une
variable à partir des données sur une seconde variable. La variable que
nous prédisons s'appelle la variable dépendante et est appelée 𝒀. La
variable sur laquelle nous basons nos prédictions s'appelle la variable
indépendante et est appelée 𝑿. Lorsqu'il n'y a qu'une seule variable
prédictive, la méthode de prédiction est appelée régression simple. Dans
la régression linéaire simple, le sujet de cette section, les prédictions de 𝒀
lorsqu'elles sont tracées en fonction de 𝑿 forment une ligne droite.
La régression linéaire simple consiste à trouver la ligne droite la mieux
ajustée passant par les points. La ligne la mieux ajustée est appelée ligne
de régression. La ligne diagonale verte de la figure est la droite de
régression et se compose de la donnée prévue sur 𝒀 pour chaque valeur
possible de 𝑿. Considérer les distances verticales entre chaque point et la
droite de régression comme les erreurs de prédiction.
Une ligne droite fournit un ajustement suffisamment raisonnable pour
faire des prédictions. Puisque l'équation d'une ligne droite générique est
toujours donnée par 𝒚 = 𝒂𝟏 𝒙 + 𝒂𝟎 , la question devient : qu'est-ce que 𝒂𝟏
et 𝒂𝟎 nous donnerons la meilleure ligne d'ajustement pour les données.
Une ligne qui fournit une erreur minimale peut être considérée comme la
meilleure ligne droite.
(𝒙𝟏 , 𝒚𝟏 ), (𝒙𝟐 , 𝒚𝟐 ), … … . (𝒙𝑴 , 𝒚𝑴 ) 𝒚 = 𝒂𝟏 𝒙 + 𝒂𝟎

5
Axe des Y

0
0 0.5 1 1.5 2 2.5 3
Axe des X
2)-Énoncé du problème
La première chose que nous allons faire est d'écrire cette équation de la
ligne pour chacun de nos points, donc, par exemple, nous avons le point
1 donc nous avons l'indice 1 ici et, nous avons une valeur de 𝒚𝟏 , et une
valeur de 𝒙𝟏 et bien sûr nous avons le 𝒂𝟎 et le 𝒂𝟏 qui sont les paramètres
de la ligne, 𝒂𝟎 et 𝒂𝟏 ne changent pas pour tout cela, quand nous passons
à notre deuxième point et nous avons un indice 2 sur 𝒚 et sur 𝒙 mais 𝒂𝟎
et 𝒂𝟏 ils restent les mêmes.

𝒚𝟏 = 𝒂𝟏 𝒙𝟏 + 𝒂𝟎
𝒚𝟐 = 𝒂𝟏 𝒙𝟐 + 𝒂𝟎

𝒚𝑴 = 𝒂𝟏 𝒙𝑴 + 𝒂𝟎

Par conséquent, c'est la même équation pour la ligne que nous mettons
juste dans les coordonnées 𝒙 , 𝒚 pour chacun de nos points mesurés
séparément, et nous obtenons une énorme liste d'équations. Si nous
avons 20 points, nous obtiendrons 20 équations d'une ligne.
Pour écrire ces équations en reconnaissant exactement que ces points
contiennent du bruit, nous devons ajouter une sorte de terme d'erreur 𝒆𝒎 ,
nous les appellerons les résidus afin que nous sachions que 𝒙𝟏 et 𝒚𝟏 ne
correspondent pas exactement au ligne, donc en ajoutant cette constante
ici, nous écrivons que la distance vertical entre ce point et la ligne est
caractérisée par ce terme 𝒆 si le point tombe juste sur cette ligne, le terme
𝒆 sera 0 pour cette équation.

𝒚𝟏 = 𝒂𝟏 𝒙𝟏 + 𝒂𝟎 + 𝒆𝟏
𝒚𝟐 = 𝒂𝟏 𝒙𝟐 + 𝒂𝟎 + 𝒆𝟐

𝒚𝑴 = 𝒂𝟏 𝒙𝑴 + 𝒂𝟎 + 𝒆𝑴
3)-Les résidus
Les résidus sont les variations restantes des données après prise en
compte de l'ajustement du modèle :
𝑳𝒂 𝒗𝒂𝒍𝒆𝒖𝒓 𝒅𝒐𝒏𝒏é𝒆 = 𝑭𝒐𝒏𝒄𝒕𝒊𝒐𝒏 𝒂𝒕𝒕𝒆𝒏𝒅𝒖𝒆 + 𝑹é𝒔𝒊𝒅𝒖𝒆𝒍
Chaque observation aura un résidu. Si une observation est au-dessus de
la droite de régression, alors son résidu, la distance verticale de
l'observation à la ligne, est positif. Les observations en dessous de la ligne
ont des résidus négatifs. L'un des objectifs du choix du bon modèle linéaire
est que ces résidus soient aussi petits que possible.

Le résidu de la 𝒊è𝒎𝒆 observation (𝒙𝒊, 𝒚𝒊) est la différence de la valeur


mesurée (𝒚𝒊) et de la valeur que nous prédirions en fonction de
l'ajustement du modèle (𝒚𝒊 = 𝒂𝟏 𝒙𝒊 + 𝒂𝟎 ) :
𝑳𝒆 𝒓é𝒔𝒊𝒅𝒖 = 𝒚𝒊 − (𝒂𝟏 𝒙𝒊 + 𝒂𝟎 )
Nous pouvons estimer l'écart type des données, souvent désigné par la
lettre 𝒅.
𝟏 𝐌
𝒅= (𝐲𝐢 − 𝐲)𝟐
(𝑴 − 𝟐) 𝟏

L'exigence de 2 est due à une simple considération géométrique :au moins


deux points distincts sont nécessaires pour définir une ligne.
Supposons qu'un échantillon de 𝑴 ensembles d'observations (𝒙𝒊 , 𝒚𝒊 ) ,(𝒊 =
𝟏, 𝟐, . . . , 𝑴, ) est disponible. Ces observations sont supposées satisfaire le
modèle de régression linéaire simple, et on peut donc écrire le modèle
pour chaque observation comme :
𝒚𝒊 = 𝒂𝟏 𝒙𝒊 + 𝒂𝟎 + 𝒆𝒊 , (𝒊 = 𝟏, 𝟐, . . . , 𝑴, )
Le principe des moindres carrés estime les paramètres 𝒂𝟎 et 𝒂𝟏 en
minimisant la somme des carrés de la différence entre les observations et
la ligne dans le diagramme de dispersion.
Lorsque la différence verticale entre les observations et la ligne dans le
diagramme de dispersion est prise en compte et que sa somme des carrés
est minimisée pour obtenir les estimations de 𝒂𝟎 et 𝒂𝟏 .
4)-Critère pour le meilleur ajustement
Clairement nous voulons minimiser les résidus, nous avons besoin d'une
quantité qui nous indique à quel point est bien notre ligne d’ajustement.
 𝐸 = ∑𝑴
𝟏 𝒆𝒊

Si nous avons ajouté tous les résidus serait-ce bien, il s'avère que ce n'est
pas bon parce que nous aurons des résidus positifs et négatifs et ils
pourraient être relativement grands, mais si nous les additionnons, nous
trouverons une somme globale proche de zéro, et ce n'est pas un bon
ajustement de courbe, donc la somme des résidus n'est pas très bonne.
 𝐸 = ∑𝑴
𝟏 |𝒆𝒊 |

Que se passe-t-il si nous prenons simplement la valeur absolue de tous


les résidus et les additionnons est-ce bon pour le meilleur ajustement, la
réponse est non, car cela ne conduit pas à un meilleur ajustement unique,
nous aurons plusieurs solutions.
 𝐸 = ∑𝑴
𝟏 |𝒆𝒊 |
𝟐

Si nous additionnons les carrés des résidus, cela conduit à un ajustement


unique de notre ligne nos données mesurés, nous allons donc procéder
avec cela et nous l'utiliserons comme critère pour le meilleur ajustement
et après avoir fait ce calcul, le 𝑬 est juste un nombre unique même si nous
pouvons avoir des centaines de résidus individuels, nous les ajoutons tous
pour obtenir un nombre qui nous indique à quel point l'ajustement de la
courbe est bon.
5)-Ajustement par la méthode des moindres carrés
Maintenant que nous avons une équation pour calculer 𝑬 ,ce nombre
unique qui nous indique à quel point notre ajustement est bon, nous
voulons déterminer dans ce cas quels sont 𝒂𝟎 et 𝒂𝟏 qui minimisent 𝑬, donc
pour minimiser quelque chose, nous utiliserons la règle de la première
dérivée ,et si une fonction a un minimum ou un maximum qui signifie que
la pente doit être nulle sur ce minimum ou maximum. Par conséquent,
nous définissons la première dérivée égale à zéro et déterminons quelle
valeur de 𝒂𝟎 et 𝒂𝟏 rend cela possible.
Nous avons donc notre expression pour 𝑬 qui apparaît ici :
𝑴
𝑬= |𝒚𝒎 − 𝒂𝟏 𝒙𝒎 − 𝒂𝟎 |𝟐
𝟏

Ce que nous voulons faire maintenant est de le différencier deux fois parce
que nous avons 2 paramètres , (𝒂𝟎 , 𝒂𝟏 ) , si nous avons trois ou quatre
nous prendrons trois ou quatre dérivés, on prend une dérivée partielle de
fonction d'erreur 𝑬 par rapport à chaque paramètre pour lequel nous
essayons de résoudre, donc nous prendrons la dérivée par rapport à 𝒂𝟎
et nous apportons la dérivée, nous retrouvons avec une expression et
nous faisons la même chose pour 𝒂𝟏 .
Nous allons amener la dérivée à l'intérieur de la sommation.
𝒅𝑬
𝟏) =𝟎
𝒅𝒂𝟎
𝒅𝑬 𝒅 ∑𝑴
𝟏 |𝒚𝒎 − 𝒂𝟏 𝒙𝒎 − 𝒂𝟎 |
𝟐
=
𝒅𝒂𝟎 𝒅𝒂𝟎
𝑴
𝟎 = −𝟐 (𝒚𝒎 − 𝒂𝟏 𝒙𝒎 − 𝒂𝟎 )
𝟏

𝒅𝑬
𝟐) =𝟎
𝒅𝒂𝟏
𝒅𝑬 𝒅 ∑𝑴
𝟏 |𝒚𝒎 − 𝒂𝟏 𝒙𝒎 − 𝒂𝟎 |
𝟐
=
𝒅𝒂𝟏 𝒅𝒂𝟏
𝑴
𝟎 = −𝟐 (𝒚𝒎 − 𝒂𝟏 𝒙𝒎 − 𝒂𝟎 ) 𝒙𝒎
𝟏
Donc nous avons maintenant ces 2 dérivées partielles elles se
ressemblent mais elles sont un peu différentes car nous la différencions
avec des variables différentes, bien la prochaine étape, nous mettons ces
dérivées égales à zéro, donc nous prenons les expressions que nous
avions précédemment fixées égales à zéro.
𝑴 𝑴 𝑴
𝟏) 𝟎 = 𝒚𝒎 − 𝒂𝟎 − 𝒂𝟏 𝒙𝒎
𝟏 𝟏 𝟏
𝑴 𝑴
𝟎= 𝒚𝒎 − 𝑴𝒂𝟎 − 𝒂𝟏 𝒙𝒎
𝟏 𝟏
𝑴 𝑴 𝑴
𝟐) 𝟎 = 𝒚𝒎 𝒙𝒎 − 𝒂𝟎 𝒙𝒎 − 𝒂𝟏 𝒙𝟐𝒎
𝟏 𝟏 𝟏

𝟏 𝑴 𝑴
𝟏) 𝒂𝟎 = 𝒚𝒎 + 𝒂 𝟏 𝒙𝒎
𝑴 𝟏 𝟏

𝑴 𝑴 𝑴
𝟐) 𝒂𝟏 𝒙𝟐𝒎 = 𝒚𝒎 𝒙𝒎 − 𝒂𝟎 𝒙𝒎
𝟏 𝟏 𝟏

On remplace (𝟏) dans (𝟐) et on obtient :


𝑴 𝑴 𝟏 𝑴 𝑴 𝑴
𝒂𝟏 𝒙𝟐𝒎 = 𝒚𝒎 𝒙 𝒎 − 𝒚𝒎 + 𝒂𝟏 𝒙𝒎 𝒙𝒎
𝟏 𝟏 𝑴 𝟏 𝟏 𝟏

𝑴 𝑴 𝑴 𝑴 𝑴 𝟐
𝒂𝟏 𝑴 𝒙𝟐𝒎 =𝑴 𝒚𝒎 𝒙 𝒎 − 𝒚𝒎 𝒙𝒎 − 𝒂𝟏 𝒙𝒎
𝟏 𝟏 𝟏 𝟏 𝟏

𝑴 𝑴 𝟐 𝑴 𝑴 𝑴
𝒂𝟏 𝑴 𝒙𝟐𝒎 + 𝒙𝒎 =𝑴 𝒚𝒎 𝒙 𝒎 − 𝒚𝒎 𝒙𝒎
𝟏 𝟏 𝟏 𝟏 𝟏

𝑴 ∑𝑴 𝑴 𝑴
𝟏 𝒚𝒎 𝒙𝒎 ∑𝟏 𝒚𝒎 ∑𝟏 𝒙𝒎
 𝟏 𝟐
𝑴 ∑𝑴 𝟐
𝟏 𝒙𝒎 ∑𝑴
𝟏 𝒙𝒎
𝟏 𝑴
𝒚𝒎𝒐𝒚 = 𝒚𝒎
𝑴 𝟏

 𝒂𝟎 = 𝒚𝒎𝒐𝒚 − 𝒂𝟏 𝒙𝒎𝒐𝒚 𝟏 𝑴
𝒙𝒎𝒐𝒚 = 𝒙𝒎
𝑴 𝟏

 𝟏 𝟎
A) -Exemple : une chute libre verticale à travers un fluide donné
Déterminer une relation fonctionnelle précise entre la force (la variable
dépendante) et la vitesse (la variable indépendante) pour un certain objet
de 0,5 kg lorsqu'il subit une chute libre verticale à travers un fluide
donné. Le tableau-D1 présente un ensemble de données expérimentales
d'accélération en fonction de la vitesse et les valeurs de force
correspondantes qui ont été calculées à partir de la deuxième loi de
Newton.
𝒅𝑽
𝑭 = 𝒎𝒂𝒔𝒔𝒆.
𝒅𝒕

Vitesse Accélération Force Avec :


(𝒎⁄𝒔) (𝒎⁄𝒔𝟐 ) (𝑵)
𝑭 = force nette sur l'objet (𝑵)
0 9.8 4.9
𝑴𝒂𝒔𝒔𝒆 = masse de l'objet = 0,5 kg
1.38 9.6 4.8
𝑽 = vitesse (𝒎 / 𝒔)
1.99 9.2 4.6
𝒅𝑽 /𝒅𝒕 = accélération (𝒎 / 𝒔𝟐 )
2.2 9.1 4.6
2.51 9.0 4.5

3.06 8.8 4.4

3.77 8.3 4.2

4.09 8.1 4.1

4.65 7.5 3.8


5.51 7.1 3.6

6.21 6.0 3.0

7.22 5.2 2.6

7.88 4.5 2.3


8.53 3.9 2.0
Tableau-D.1 : Expérience de
La dynamique de la chute libre
Réponse :
𝑴 𝑴 𝑴 𝑴 𝑴 𝟐 𝒚𝒎𝒐𝒚 𝒙𝒎𝒐𝒚
𝒚𝒎 𝒙𝒎 𝒚𝒎 𝒙𝒎 𝒙𝟐𝒎 𝒙𝒎 𝟏 𝑴 𝟏 𝑴
𝟏 𝟏 𝟏 𝟏 𝟏 = 𝒚𝒎 = 𝒙𝒎
𝑴 𝟏 𝑴 𝟏

176.292 53.4 59 334.839 3481 3.8142 4.2142

𝟏𝟒(𝟏𝟕𝟔. 𝟐𝟗𝟐) − (𝟓𝟑. 𝟒)(𝟓𝟗)


𝒂𝟏 =
𝟏𝟒(𝟑𝟑𝟒. 𝟖𝟑𝟗) + (𝟑𝟒𝟖𝟏)
𝒂𝟏 = −𝟎. 𝟎𝟖𝟑𝟓𝟓
𝒂𝟎 = 𝟑. 𝟖𝟏𝟒𝟐 − (−𝟎. 𝟎𝟖𝟑𝟓𝟓 ∗ 𝟒. 𝟐𝟏𝟒𝟐)
𝒂𝟎 = 𝟒. 𝟏𝟔𝟔𝟐
 𝑭 = −𝟎. 𝟎𝟖𝟑𝟓𝟓 ∗ 𝑽 + 𝟒. 𝟏𝟔𝟔𝟐
L’écart quadratique :
𝟏 𝟏𝟒
𝒅= (𝐅𝐢 − 𝐅)𝟐
(𝑴 − 𝟐) 𝟏

𝐌 𝟏𝟒 𝟐
Avec : (𝐅𝐢 − 𝐅) = 𝑭𝒊 − (−𝟎. 𝟎𝟖𝟑𝟓𝟓 ∗ 𝑽𝒊 + 𝟒. 𝟏𝟔𝟔𝟐)
𝟏

Donc : 𝒅 =18.4977

Représentation de
force en fonction de la
vitesse
6)-La régression linéaire multiple
La régression linéaire multiple fait référence à une technique statistique
utilisée pour prédire le résultat d'une variable en fonction de la valeur de
deux variables ou plus. On l'appelle parfois simplement régression
multiple et c'est une extension de la régression linéaire. La variable que
nous voulons prédire est connue sous le nom de variable dépendante,
tandis que les variables que nous utilisons pour prédire cette valeur sont
appelées variables indépendantes ou explicatives.
Dans la régression linéaire multiple, il existe 𝑵 variables indépendants et
la relation entre la variable dépendante et les variables indépendants est
représentée par l'équation suivante :
𝒚𝒊 = 𝒂𝟎 + 𝒙𝟏.𝒊 𝒂𝟏 + ⋯ + 𝒙𝑵.𝒊 𝒂𝑵 + 𝒆𝒊
Avec : 𝒂𝟎 est le terme constant et 𝒂 𝟏 à 𝒂𝑵 sont les coefficients reliant les
𝑵 variables indépendantes aux variables d'intérêt.
Ainsi, la régression linéaire multiple peut être considérée comme une
extension de la régression linéaire simple, où il y a 𝑵 variables
indépendantes, ou la régression linéaire simple peut être considérée
comme un cas particulier de régression linéaire multiple, où 𝑵 = 𝟏. Le
terme « linéaire » est utilisé parce que dans la régression linéaire multiple,
nous supposons que 𝒚 est directement lié à une combinaison linéaire des
variables indépendants.
A) -Formulation de l'équation matricielle
 Supposons qu'un échantillon de 𝑴 ensembles d'observations, et on
obtient :
Nombre Les variables Les variables
d'observations dépendants indépendants

. .
. .
. .

. .
 En supposant que le modèle de régression est :
𝒚𝒊 = 𝒂𝟎 + 𝒙𝟏.𝒊 𝒂𝟏 + ⋯ + 𝒙𝑵.𝒊 𝒂𝑵 + 𝒆𝒊
 On commence par écrire la fonction 𝒚𝒎 pour chacune de noter 𝑴
mesures, on inclut également les termes résiduels.

𝒚𝟏 = 𝒂𝟎 + 𝒙𝟏.𝟏 𝒂𝟏 + ⋯ + 𝒙𝟏.𝑵 𝒂𝑵 + 𝒆𝟏
𝒚𝟐 = 𝒂𝟎 + 𝒙𝟐.𝟏 𝒂𝟏 + ⋯ + 𝒙𝟐.𝑵 𝒂𝑵 + 𝒆𝟐
⋮ Avec : 𝑀≫𝑁


𝐲𝐌 = 𝐚𝟎 + 𝒙𝑴.𝟏 𝐚𝟏 + ⋯ + 𝒙𝑴.𝑵 𝐚𝐍 + 𝐞𝐌

 C'est un grand nombre d'équations, on va le mettre sous forme de


matrice.

. .
. .
. .

. .

Avec 𝑨𝑵,𝑴 est une matrice (𝑵 ∗ 𝑴) de 𝑴 observations sur chacune des


𝑵 variables indépendants, 𝒙⃗ = (𝒂𝟎 , 𝒂𝟏 , … , 𝒂𝑵 ) est (𝑵 ∗ 𝟏) vecteur de
coefficients de régression et 𝒆⃗ = (𝒆𝟎 , 𝒆𝟏 , … , … , 𝒆𝑴 ) est un vecteur (𝑴 ∗ 𝟏)
de composantes d'erreur aléatoire ou d'un terme de perturbation.
 Notre but est d’estimer les paramètres (𝒂𝟎 , 𝒂𝟏 , … , 𝒂𝑵 ) ,mais le problème
c’est que l’équation matricielle n’est pas résoluble car, les vecteurs 𝒃⃗ et 𝒙⃗
n’ont pas le même nombre des lignes, (𝑵 ≠ 𝑴).
B) -Formulation géométrique de la méthode des moindres carrés

On va considérer l’équation : 𝑨𝑵,𝑴 . 𝒙⃗ = 𝒃⃗


𝑵
Avec 𝒙⃗ est un vecteur qui appartient à 𝑹𝑵 , (𝒙⃗ ∈ 𝑹 ), et 𝒃⃗ appartient à
𝑹𝑴 ,(𝒃⃗ ∈ 𝑹𝑴 )
Il n’y a pas de solution à cette équation, ça veut dire qu’il n’y a pas de
solution à l’équation 𝑨𝑵,𝑴 . 𝒙⃗ = 𝒃⃗

La matrice 𝑨𝑵,𝑴 ,on peut l’écrire sous la forme de ses vecteurs colonnes
donc :
𝒂𝟏
⎡ 𝒂𝟐 ⎤
⎢ ⋮ ⎥ ⃗
𝑨⃗𝟏 𝑨⃗𝟐 ⋯ ⋯ 𝑨⃗𝑴 ⎢ ⎥=𝒃
⎢ ⋮ ⎥
⎣𝒂 𝑴 ⎦
𝒂𝟏 𝑨⃗𝟏 + 𝒂𝟐 𝑨⃗𝟐 + ⋯ ⋯ + 𝒂𝑴 𝑨⃗𝑴 = 𝒃⃗
Qu’est-ce que ça veut dire il n’y a pas de solution à cette équation donc,
𝒃⃗ ne peut pas s’écrire comme une combinaison linéaire des vecteurs
colonnes de la matrice 𝑨𝑵,𝑴 , car les vecteurs 𝒃⃗ et 𝒙⃗ n’ont pas le même
nombre des lignes, (𝑵 ≠ 𝑴)

𝒃⃗ N’appartient pas à l’image de la matrice 𝑨𝑵,𝑴 , (𝑰𝒎(𝑨))


On va aller un petit peu loin et on va essayer de trouver en quelques sortes
la meilleure solution approchée de cette équation, c’est-à-dire qu’on va
considérer un vecteur 𝒙∗⃗,et on va le chercher tel que le vecteur 𝑨𝑵,𝑴 . 𝒙∗⃗
soit aussi proche de 𝒃⃗ que possible.

Il n’y a pas une solution exacte à l’équation 𝑨𝑵,𝑴 . 𝒙∗⃗ = 𝒃⃗ mais, on va


chercher à minimiser l’erreur et, quand on dit minimiser l’erreur on va
chercher à minimiser la distance entre 𝒃⃗ et le vecteur 𝑨𝑵,𝑴 . 𝒙∗⃗ ,
𝒃⃗ − 𝑨𝑵,𝑴 . 𝒙∗⃗ .
 Le vecteur qui nous donnera la distance minimale on va
l’appeler le vecteur 𝒙∗⃗
 On va appeler 𝒗⃗ le vecteur 𝑨𝑵,𝑴 . 𝒙∗⃗ , on obtient : 𝑨𝑵,𝑴 . 𝒙∗⃗ = 𝒗⃗

On a un plan, on va supposer que l’image de 𝑨𝑵,𝑴 est un plan (un


ensemble de vecteurs), c’est juste pour visualiser ,on va considérer que
l’image doit être un plan et quand on dit que 𝒃⃗ n’appartient pas à l’image
de 𝑨𝑵,𝑴 ,ça veut dire que 𝒃⃗ va pas être contenue dans le plan, on va avoir
le vecteur 𝒃⃗ sort du plan, 𝒃⃗ n’est pas contenu dans l’image de 𝑨𝑵,𝑴

Le vecteur 𝒃⃗
Le vecteur (𝑨𝑵,𝑴 𝒙∗⃗ − 𝒃⃗)

L’image de 𝑨𝑵,𝑴

Le vecteur 𝒗⃗ : la projection de
vecteur 𝒃⃗sur l’image de 𝑨𝑵,𝑴

Le vecteur qui va minimiser la distance entre le vecteur 𝒃⃗ et le vecteur 𝒗⃗


c’est la projection orthogonale de 𝒃⃗ sur l’image de 𝑨𝑵,𝑴

𝒗⃗ C’est la projection sur l’image de 𝑨𝑵,𝑴 de vecteur 𝒃⃗ donc :


𝑨𝑵,𝑴 𝒙∗⃗ = 𝒑𝒓𝒐𝒋𝑰𝒎(𝑨) 𝒃⃗

Ce qu’on va faire, c’est qu’on va soustraire de chaque côté le vecteur 𝒃⃗


donc :

𝑨𝑵,𝑴 𝒙∗⃗ − 𝒃⃗ = (𝒑𝒓𝒐𝒋𝑰𝒎(𝑨) 𝒃⃗ − 𝒃⃗)


La projection orthogonale sur l’image de 𝑨𝑵,𝑴 de 𝒃⃗ moins 𝒃⃗ c’est quelque
chose qu’est orthogonale à l’image de 𝑨𝑵,𝑴 c’est un vecteur qu’est
orthogonale à l’image de 𝑨𝑵,𝑴

Ça veut dire, le vecteur (𝑨𝑵,𝑴 𝒙∗⃗ − 𝒃⃗) appartient aux compléments


orthogonaux de l’image de 𝑨𝑵,𝑴 , 𝑨𝑵,𝑴 𝒙∗⃗ − 𝒃⃗ ∈ 𝑰𝒎(𝑨)

Le complément orthogonal de l’image de 𝑨𝑵,𝑴 c’est égal au noyau de la


transposer de 𝑨𝑵,𝑴

𝑰𝒎 𝑨𝑵,𝑴 = 𝒌𝒆𝒓 𝑨𝑵,𝑴

J’ai que le vecteur : 𝑨𝑵,𝑴 𝒙∗⃗ − 𝒃⃗ ∈ 𝒌𝒆𝒓(𝑨 )

Ça veut dire, si on calcule la transposer de 𝑨𝑵,𝑴 fois le vecteur


𝑨𝑵,𝑴 𝒙∗⃗ − 𝒃⃗ , on va obtenir le vecteur nul.
𝑨 𝑨𝑵,𝑴 𝒙∗⃗ − 𝒃⃗ = 𝟎⃗ 𝑨 𝑨𝑵,𝑴 𝒙∗⃗ − 𝑨 𝒃⃗ = 𝟎⃗

𝑨 𝑨𝑵,𝑴 𝒙∗⃗ = 𝑨 𝒃⃗
Notre objectif est de trouver les estimations des paramètres :

𝒙∗⃗ = (𝒂𝟎 , 𝒂𝟏 , … , 𝒂𝑵 )
Donc, l'estimation par la méthode des moindres carrés de 𝒙∗⃗ est (sous
forme vectorielle) :

∗ 𝟏
𝑵,𝑴
C)-Visualisation de la méthode des moindres carrés
 On a initialement une équation matricielle avec plus d’équations que
d’inconnues.

∗ ∗ ∗ ∗
⎡∗ ∗ ∗⎤ ⎡∗⎤
⎢∗ ∗ ∗⎥ ∗ ⎢∗⎥
⎢∗ ∗ ∗⎥ ∗ = ⎢∗⎥
⎢∗ ∗ ∗⎥ ∗ ⎢∗⎥
⎢∗ ∗ ∗⎥ ⎢∗⎥
⎣∗ ∗ ∗⎦ ⎣∗⎦

 On multiplie par le transposé de la matrice 𝑨.

∗ ∗ ∗ ∗
⎡∗ ∗ ∗⎤ ⎡∗ ⎤
∗ ∗ ∗ ∗ ∗ ∗ ∗ ⎢∗ ∗ ∗⎥ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ⎢∗ ⎥
∗ ∗ ∗ ∗ ∗ ∗ ∗ ⎢∗ ∗ ∗⎥ ∗ = ∗ ∗ ∗ ∗ ∗ ∗ ∗ ⎢∗ ⎥
∗ ∗ ∗ ∗ ∗ ∗ ∗ ⎢∗ ∗ ∗⎥ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ⎢∗ ⎥
⎢∗ ∗ ∗ ⎥ ⎢∗ ⎥
⎣∗ ∗ ∗⎦ ⎣∗ ⎦

 L’équation matricielle se réduit, c’est-à-dire que le nombre d’équations


se réduit au même nombre d’inconnues, ce qui rends cette équation
matricielle résoluble.

 ∗

D)-Exemple
On va prendre des données arbitraires sur un diagramme (𝑿, 𝒀) et on va
essayer d’estimer le modèle de régression qui représente mieux ces
données en utilisant la méthode de l’équation matricielle.

2.5 8.76, 2.35

2
6.91, 1.57
1.5
4.98, 1.13
1

0.5
3.01, 0.16

0
0 2 4 6 8 10

Comme on peut voire sur le diagramme le modèle de régression le plus


raisonnable pour estimer ces données est l’équation d’une ligne droite.

𝟏 𝟎

 Notre objectif est de déterminer les paramètres 𝒂𝟏 et 𝒂𝟎 :

 On écrit ce modèle pour chaque point dans le diagramme

𝑦 = 𝒂𝟏 𝑥 + 𝒂𝟎 𝑦 𝑥 1
𝑦 = 𝒂𝟏 𝑥 + 𝒂𝟎 𝑦 𝑥 1 𝒂𝟏
𝑦 = 𝑥
1 𝒂𝟎
𝑦 = 𝒂 𝟏 𝑥 + 𝒂𝟎 𝑦 𝑥 1
𝑦 = 𝒂𝟏 𝑥 + 𝒂𝟎

On écrit ces équations sous la forme matricielle :


Avec :
3.01 1 0.16
𝒂𝟏
𝒙⃗ = 𝒂 𝐴=
4.98 1 𝑏⃗ = 1.13
𝟎 6.91 1 1.57
8.76 1 2.35

On multiplie par la transposée de


𝐴 𝐴𝑥⃗ = 𝐴 𝑏⃗
Donc la solution est :

𝑥⃗ = (𝐴 𝐴) 𝐴 𝑏⃗

Application numérique :

3.01 1 0.16
3.01 4.98 6.91 8.76 4.98 1 𝒂𝟏 3.01 4.98 6.91 8.76 1.13
1 𝒂𝟎 =
1 1 1 1 6.91 1 1 1 1 1.57
8.76 1 2.35

3
8.76, 2.35
2.5

2
6.91, 1.57
1.5 4.98, 1.13
1

0.5 3.01, 0.16


0
0 2 4 6 8 10

153.3462 23.6600 𝒂𝟏 37.5437 𝒂𝟏 0.36556


= =
23.6600 4.0000 𝒂𝟎 5.2100 𝒂𝟎 −0.8602


PARTIE III :
LA REGRESSION POLYNOMIAL
PAR LA METHODE DES
MOINDRES CARRES
1)-La définition et l’objectif de la régression polynomial
En statistique, la régression polynomiale est une forme de régression
linéaire dans laquelle la relation entre la variable indépendante 𝑿 et la
variable dépendante 𝒀 est modélisée comme un polynôme d'ordre 𝑵. La
régression polynomiale correspond à une relation non linéaire entre la
valeur de 𝑿 et la moyenne conditionnelle correspondante de 𝒀, Bien que
la régression polynomiale ajuste un modèle non linéaire aux données,
mais elle est linéaire, en ce sens que la fonction de régression 𝒀 est
linéaire en fonction des paramètres inconnus qui sont estimés à partir des
données. Pour cette raison, la régression polynomiale est considérée
comme un cas particulier de régression linéaire multiple.
2)-Énoncé du problème
En général, nous pouvons modéliser la valeur attendue de 𝒀 comme un
polynôme d'ordre 𝒏, donnant le modèle général de régression polynomiale

𝒚𝒊 = 𝒂𝟎 + 𝒙𝒊 𝒂𝟏 + 𝒙𝟐𝒊 𝒂𝟐 + ⋯ ⋯ + 𝒙𝑵
𝒊 𝒂𝑵 + 𝒆𝒊
De manière pratique, ces modèles sont tous linéaires du point de vue de
l'estimation, puisque la fonction de régression est linéaire en termes de
paramètres inconnus (𝒂𝟎 , 𝒂𝟏 , 𝒂𝟐 , … , 𝒂𝑵 ) .Par conséquent, pour l'analyse
des moindres carrés, le problème de calcul de la régression polynomiale
peut être complètement abordé en utilisant les techniques de régression
multiple. Cela se fait en traitant (𝒙𝒊 , 𝒙𝟐𝒊 , … , 𝒙𝑵
𝒊 ) comme étant des variables
indépendantes distinctes dans un modèle de régression multiple.
3)-La forme Matricielle et le calcul des estimations
Le modèle de régression polynomiale peut être écrit comme un système
d'équations linéaires pour chaque point des données :

𝒚𝟏 = 𝒂𝟎 + 𝒙𝟏.𝟏 𝒂𝟏 + 𝒙𝟐𝟏.𝟐 𝒂𝟐 + ⋯ ⋯ + 𝒙𝑵
𝟏.𝑵 𝒂𝑵 + 𝒆𝟏

𝒚𝟐 = 𝒂𝟎 + 𝒙𝟐.𝟏 𝒂𝟏 + 𝒙𝟐𝟐.𝟐 𝒂𝟐 + ⋯ ⋯ + 𝒙𝑵
𝟐.𝑵 𝒂𝑵 + 𝒆𝟐

𝒚𝑴 = 𝒂𝟎 + 𝒙𝑴.𝟏 𝒂𝟏 + 𝒙𝟐𝑴.𝟐 𝒂𝟐 + ⋯ ⋯ + 𝒙𝑵
𝑴.𝑵 𝒂𝑵 + 𝒆𝑴
Ce système peut être exprimé sous forme matricielle en termes : d'une
matrice 𝑨𝑵,𝑴 , d'un vecteur de réponse 𝒃⃗, d'un vecteur de paramètres 𝒙⃗ et
d'un vecteur 𝒆 d'erreurs aléatoires. La 𝒊è𝒎𝒆 ligne de 𝑨𝑵,𝑴 contient les
valeurs 𝑿 et 𝒀 pour le 𝒊è𝒎𝒆 coordonnée de données.

. . .
. . .
. . .

. . .

Lors de l'utilisation de la notation matricielle, on écrit :

𝑨𝑵,𝑴 . 𝒙⃗ = 𝒃⃗

 On suit les mêmes étapes de la formulation géométrique de


l'approximation des moindres carrés qu’on a fait précédemment et, on
trouve que le vecteur des coefficients de régression polynomiale
estimés (en utilisant l'estimation des moindres carrés ordinaires) est :
𝟏
𝒙⃗ = 𝑨 𝑨𝑵,𝑴 𝑨 𝒃⃗
A) -Ajustement par la méthode des moindres carrés
Étant donné M points de données, (𝒙𝟏 , 𝒚𝟏 ) , (𝒙𝟐 , 𝒚𝟐 ) , ..., (𝒙𝑴 , 𝒚𝑴 ) , utilisez
la méthode des moindres carrés pour régresser les données en un
polynôme d'ordre 𝑵.

𝒚𝒊 = 𝒂𝟎 + 𝒙𝒊 𝒂𝟏 + 𝒙𝟐𝒊 𝒂𝟐 + ⋯ ⋯ + 𝒙𝑵
𝒊 𝒂𝑵
Le résidu à chaque point de données est donné par :

𝒆𝒊 = [𝒚𝒊 (𝒍𝒂 𝒗𝒂𝒍𝒆𝒖𝒓 𝒎𝒆𝒔𝒖𝒓é𝒆)] − 𝒂 + 𝒙𝒊 𝒂 + 𝒙𝒊 𝒂 + ⋯ ⋯ + 𝒙𝑵


𝒊 𝒂𝑵

La somme du carré des résidus est donnée par :


𝑴
𝑬= |𝒆𝒊 |𝟐
𝒊
Pour trouver les constantes du modèle de régression polynomiale, nous
mettons les dérivées par rapport à 𝒂𝒊 égale à zéro, c'est-à-dire :

𝝏𝑬 𝑴
= 𝟐 𝒚𝒊 − 𝒂𝟎 − 𝒂𝒊 𝒙𝒊 − ⋯ ⋯ − 𝒂𝒎 𝒙𝑴
𝒊 (−𝟏) = 𝟎
𝝏𝒂𝟎 𝒊

𝝏𝑬 𝑴
= 𝟐 𝒚𝒊 − 𝒂𝟎 − 𝒂𝒊 𝒙𝒊 − ⋯ ⋯ − 𝒂𝒎 𝒙𝑴
𝒊 (−𝒙𝒊 ) = 𝟎
𝝏𝒂𝟏 𝒊




𝝏𝑬 𝑴
= [𝟐(𝒚𝒊 − 𝒂𝟎 − 𝒂𝒊 𝒙𝒊 − ⋯ ⋯ − 𝒂𝒎 𝒙𝒎 𝒎
𝒊 )](−𝒙𝒊 ) = 𝟎
𝝏𝒂𝒎 𝒊

Définir ces équations sous forme matricielle donne :

𝑴 𝑴 𝑴
⎡ 𝑀 𝒙𝒊 … 𝒙𝒎
𝒊 ⎤ ⎡ 𝒚𝒊 ⎤
⎢ 𝒊 𝒊 ⎥ 𝒂 ⎢ 𝒊 ⎥
⎢ 𝑴 𝑴 𝑴 ⎥ 𝟎 ⎢ 𝑴 ⎥
⎢ 𝒙𝒊 𝒙𝟐𝒊 … 𝒙𝒎 𝟏
⎥ 𝒂 𝟏 𝒚𝒊 𝒙𝒊 ⎥
𝒊 =⎢
⎢ 𝒊 𝒊 𝒊
⎥ ⋮ ⎢ 𝒊

⎢ ⋮ ⋮ ⋮ ⎥ 𝒂 𝒎 ⎢ ⋮ ⎥
𝑴 𝑴 ⋱ 𝑴 𝑴
⎢ 𝒙𝒎 𝒙𝒎 𝟏
𝒙𝟐𝒎 ⎥ ⎢ 𝒚𝒊 𝒙𝒎 ⎥
𝒊 𝒊 … 𝒊 𝒊
⎣ 𝒊 𝒊 𝒊 ⎦ ⎣ 𝒊 ⎦
4)-Équation de régression quadratique
La régression quadratique est un moyen de modéliser une relation entre
deux ensembles de variables. Le résultat est une équation de régression
qui peut être utilisée pour faire des prédictions sur les données. L'équation
a la forme :

𝒚 = 𝒂𝟐 𝒙𝟐 + 𝒂𝟏 𝒙 + 𝒂𝟎
La première étape de la régression consiste à créer un nuage de points.
Si votre nuage de points est en forme de «𝑼», concave vers le haut
(comme la lettre 𝑼) ou concave vers le bas (∩), vous recherchez
probablement un type d'équation quadratique comme le meilleur
ajustement pour vos données. Un quadratique n'a pas besoin d'être une
forme en «𝑼» complet ; vous pouvez avoir juste une partie (disons un quart
ou 3/4).
La régression quadratique est une extension de la régression linéaire
simple. Alors que la régression linéaire peut être effectuée avec aussi peu
que deux points (c'est-à-dire suffisamment de points pour tracer une ligne
droite), la régression quadratique présente l'inconvénient qu'elle nécessite
plus de points de données pour être certain que vos données tombent en
forme de «𝑼». Il peut techniquement être effectué avec trois points de
données qui correspondent à une forme en «𝑽», mais plus de points sont
souhaitables.
A) -Ajustement par la méthode des moindres carrés
Comme pour un ajustement linéaire, le concept de « meilleur ajustement
» nécessite la définition d'une certaine mesure de l'erreur entre les
données et la courbe d'ajustement. La forme fonctionnelle de l'erreur est
une simple généralisation de la fonction d'erreur linéaire :

𝒆𝒊 = [𝒚𝒊 (𝒍𝒂 𝒗𝒂𝒍𝒆𝒖𝒓 𝒎𝒆𝒔𝒖𝒓é𝒆)] − [𝒂 + 𝒙𝒊 𝒂 + 𝒙𝒊 𝒂 ]


𝑴
𝑬= |𝒆𝒊 |𝟐
𝒊

Comme précédemment, l'erreur minimale se situe au point où les dérivées


partielles de la fonction d'erreur par rapport aux coefficients sont toutes
nulles.
Les équations résultantes de l'évaluation de la dérivée partielle par rapport
à 𝒂𝟎 , 𝒂𝟏 et, 𝒂𝟐 sont respectivement :

1) 𝜕𝑬 𝑴
= 2 𝒚𝒊 − 𝒂 − 𝒂𝒊 𝒙𝒊 − 𝒂𝟐 𝒙𝒊 (−1) = 0
𝜕𝒂 𝒊

𝑴 𝑴
𝟐 𝒂 + 𝒂𝒊 𝒙𝒊 + 𝒂𝟐 𝒙𝒊 − 𝑦 =0
𝒊 𝒊

𝑴 𝑴
𝑴𝒂𝟎 + 𝒂𝒊 𝒙𝒊 + 𝒂𝟐 𝒙𝒊 = 𝒚𝒊
𝒊 𝒊

2)
𝜕𝑬 𝑴
= 2 𝒚𝒊 − 𝒂 − 𝒂𝒊 𝒙𝒊 − 𝒂𝟐 𝒙𝒊 (−𝒙𝒊 ) = 0
𝜕𝒂 𝒊

𝑴 𝑴 𝑴
𝟐 𝒂 𝒙𝒊 + 𝒂𝟏 𝒙𝒊 + 𝒂𝟐 𝒙𝟑𝒊 − 𝒚𝒊 𝒙 𝒊 = 0
𝒊 𝒊 𝒊

𝑴 𝑴 𝑴
𝒂 𝒙𝒊 + 𝒂𝟏 𝒙𝒊 + 𝒂𝟐 𝒙𝟑𝒊 = 𝒚𝒊 𝒙 𝒊
𝒊 𝒊 𝒊

3)
𝜕𝑬 𝑴
= 2 𝒚𝒊 − 𝒂 − 𝒂𝒊 𝒙𝒊 − 𝒂𝟐 𝒙𝒊 −𝒙𝒊 = 0
𝜕𝒂 𝒊

𝑴 𝑴 𝑴
𝟐 𝒂 𝒙𝒊 + 𝒂𝟏 𝒙𝟑𝒊 + 𝒂𝟐 𝒙𝟒𝒊 − 𝒚𝒊 𝒙𝒊 = 0
𝒊 𝒊 𝒊

𝑴 𝑴 𝑴
𝒂 𝒙𝒊 + 𝒂𝟏 𝒙𝟑𝒊 + 𝒂𝟐 𝒙𝟒𝒊 = 𝒚𝒊 𝒙𝒊
𝒊 𝒊 𝒊
Ces trois équations peuvent s’écrire sous la forme matricielle :

𝑴 𝑴 𝑴
⎡ 𝑴 𝒙𝒊 𝒙𝟐𝒊 ⎤ ⎡ 𝒚𝒊 ⎤
⎢ 𝒊 𝒊 ⎥ 𝒂𝟎 ⎢ 𝒊 ⎥
⎢ 𝑴 𝑴 𝑴 ⎥ ⎢ 𝑴 ⎥
⎢ 𝒙𝒊 𝒙𝟐𝒊 𝒙𝟑𝒊 ⎥ 𝒂𝟏 =⎢ 𝒚𝒊 𝒙𝒊 ⎥
⎢ 𝒊
𝑴
𝒊
𝑴
𝒊
𝑴
⎥ 𝒂𝟐 ⎢ 𝒊
𝑴

⎢ 𝒙𝟐𝒊 𝒙𝟑𝒊 𝒙𝟒𝒊 ⎥ ⎢ 𝒚𝒊 𝒙𝟐𝒊 ⎥
⎣ 𝒊 𝒊 𝒊 ⎦ ⎣ 𝒊 ⎦

Les paramètres 𝒂𝟐 ,𝒂𝟏 et 𝒂𝟎 sont données par :

∑ 𝑥 𝑦 ∗ ∑ 𝑥 − ∑ 𝑥 𝑦 ∗ ∑ 𝑥
𝑎 =
[(∑ 𝑥 ) ∗ (∑ 𝑥 )] − ∑ 𝑥

∑ 𝑥 𝑦 ∗ ∑ 𝑥 − ∑ 𝑥 𝑦 ∗ ∑ 𝑥
𝑎 =
[(∑ 𝑥 ) ∗ (∑ 𝑥 )] − ∑ 𝑥

∑ 𝑦 ∑ 𝑥 ∑ 𝑥
𝑎 = − 𝑎 ∗ − 𝑎 ∗
𝑀 𝑀 𝑀
B) -Exemple : le coefficient d'expansion de longueur pour le fer
Définition de la dilatation thermique :
En physique, la dilatation thermique peut être définie comme le
changement de la longueur, de la largeur, de la hauteur ou du volume de
tout matériau lors du changement de température. La dilatation thermique
est très évidente dans les solides car les atomes sont densément remplis.
C'est un phénomène bien connu maintenant que les substances se
dilatent lors du chauffage et se contractent lors du refroidissement. Si vous
chauffez un corps, cela modifie ses dimensions. Selon la forme du corps.
L'expansion peut se produire en longueur, auquel cas elle est appelée
expansion linéaire.
Formule d'expansion thermique linéaire :
La formule correspondante est donnée ci-dessous avec les termes
pertinents :
𝚫𝑳
= 𝜶𝑳 . ∆𝑻
𝑳𝟎

Où,
𝑳𝟎 : est la longueur initiale du solide.
𝜟𝑳 : est le changement de longueur.
𝜶𝑳 : est le coefficient d'expansion de longueur.
𝜟𝑻 : est la différence de température.
Le coefficient de dilatation linéaire :
Le coefficient de dilatation thermique décrit comment la taille d'un objet
change avec un changement de température. Plus précisément, il mesure
le changement fractionnaire de taille par degré de changement de
température à une pression constante. Plusieurs types de coefficients ont
été développés : volumétrique, surfacique et linéaire. Le choix du
coefficient dépend de l'application particulière et des dimensions
considérées comme importantes. Pour les solides, on pourrait ne se
préoccuper que du changement sur une longueur ou sur une certaine
zone. Si le changement de la taille est le long d'une dimension (longueur)
sur le volume, on parle alors de dilatation linéaire.
Le coefficient de dilatation linéaire peut s'écrire mathématiquement
comme suit :
𝒅𝑳
𝜶𝑳 =
𝒅𝑻
Où,
𝜶𝑳 : est le coefficient de dilatation linéaire.
𝒅𝑳 : est le changement d'unité de longueur
𝒅𝑻 : est le changement d'unité de température.
L'unité au S.I est : (𝒑 𝒎⁄𝒑 𝒎⁄°𝑪)

Le coefficient de dilatation thermique est une propriété intrinsèque de


chaque matériau. Par conséquent, il varie d'un matériau à l'autre. La
vitesse à laquelle un matériau se dilate dépend uniquement de la force de
cohésion entre les atomes. La force de cohésion est la force qui lie deux
atomes ou plus.
En d'autres termes, la force de cohésion résiste à la séparation entre les
atomes. Cependant, plus la force de cohésion est grande, l'expansion
sera faible pour une augmentation de température. Les métaux mous
comme le plomb ont un point de fusion bas et peuvent être comprimés
facilement. Lors du chauffage, le plomb se dilatera plus rapidement avec
une élévation de température unitaire. Càd lorsque on augmente la
température, on obtient plus d'expansion par unité de température donc le
changement fractionnaire de taille par degré de changement de
température augmente. (Augmentation de la température = augmentation
de coefficient de dilatation thermique).
La relation entre le coefficient 𝜶𝑳 et la température 𝐓 donnée par un
polynôme d’ordre 2 :

 𝜶𝑳 = 𝐚 𝑻𝟐 + 𝐛 𝑻 + 𝐜

 Estimation de l’équation qui décrire la relation entre le coefficient


de dilatation thermique (la variable dépendante) et, la température
(la variable indépendante).

Les données pour le coefficient de dilatation thermique du Fer en fonction


de la température.

La température Le coefficient de
(°𝑪) dilatation
(𝒑𝒎⁄𝒑 𝒎⁄°𝑪)
80 6.47
60 6.36
40 6.24
20 6.12
0 6.00
-20 5.86
-40 5.72
-60 5.58
-80 5.43
-100 5.28
-120 5.09
-140 4.91
-160 4.72
-180 4.52
-200 4.30
-220 4.08
Calcule les coefficients du polynôme (𝐚, 𝐛, 𝐜)

𝑴 𝑴 𝑴 𝑴
𝟒 𝟑 𝟐 𝟐
𝒊 𝒊 𝒊 𝒊 𝒊
𝒊 𝒊 𝒊 𝒊
𝑴 𝑴 𝑴 𝑴
𝟑 𝟐
𝒊 𝒊 𝒊 𝒊 𝒊
𝒊 𝒊 𝒊 𝒊
𝑴 𝑴 𝑴
𝟐
𝒊 𝒊 𝒊
𝒊 𝒊 𝒊
Réponse :

𝟔𝟒𝟓𝟐𝟒𝟖𝟎𝟎𝟎𝟎 −𝟑𝟒𝟎𝟒𝟖𝟎𝟎𝟎 𝟐𝟏𝟒𝟒𝟎𝟎 𝒂 𝟏𝟎𝟎𝟐𝟏𝟓𝟔


−𝟑𝟒𝟎𝟒𝟖𝟎𝟎𝟎 𝟐𝟏𝟒𝟒𝟎𝟎 −𝟏𝟏𝟐𝟎 𝒃 = −𝟒𝟗𝟗𝟔. 𝟔
𝟐𝟏𝟒𝟒𝟎𝟎 −𝟏𝟏𝟐𝟎 𝟏𝟔 𝒄 𝟖𝟔. 𝟔𝟖

 𝜶𝑳 = 0.000199 𝑻 − 0.144596 𝑻 + − 7.378783

La représentation géométrique de cette équation est représentée sur le


diagramme suivant :
PARTIE IV :
CODE FORTRAN
1)- Code Fortran de la régression linéaire simple :

Ce programme calcule la régression linéaire simple par la méthode


des moindres carrés, à un ensemble de données donné.

PROGRAM RLS_par_MMC
IMPLICIT NONE
INTEGER, PARAMETER:: SIZE=100
REAL:: a,b,d
INTEGER:: n,m
REAL:: X(0:SIZE), Y(0:SIZE)
print *, 'Ce programme calcule la régression linéaire '
print *, 'simple par la méthode des moindres carrés, '
print *, 'correspondent à un ensemble de data donnés. '
print *, ' '
print *, 'INSTRUCTIONS '
print *, '-------------'
print *, ' '
n = 0
do while (n < 3)
print *, 'Le nombre de données doit être '
print *, 'supérieur à deux. Sinon une erreur '
print *, 'de division par zéro peut résulter.'
print *, ' '
write (*,"('Nombre de points de données: ')", advance='no')
read *, n
print *, ' '
end do
print *, ' Saisissez d-abord les valeurs '
print *, ' des variables indépendantes puis'
print *, ' saisissez les variables dépendantes.'
do m = 0, n-1
write(*,25,advance='no') m+1
read *, X(m)
end do
print *, ' '
do m = 0, n-1
write(*,25,advance='no') m+1
read *, Y(m)
end do
! Appel du subroutine MMC(n,X,Y,a,b,d)
CALL MMC(n,X,Y,a,b,d)
! Afficher les résultats a, b et d
print *, ' '
print *, 'l-équation ajustée est :'
write(*,50) b, a
print *, ' '
write(*,60) d
print *, ' '
STOP
25 FORMAT(' ',I2,' ')
50 FORMAT(' Y = ',F10.6,' +',F10.6,' X')
60 FORMAT(' l-écart type d-ajustement:',F10.6)
END
SUBROUTINE MMC(n,X,Y,a,b,d)
IMPLICIT NONE
INTEGER, PARAMETER :: SIZE=100
INTEGER:: n,m
REAL:: a,b,d,X(0:SIZE),Y(0:SIZE)
REAL:: a1,a2,b0,b1,d1
a1 = 0
a2 = 0
b0 = 0
b1 = 0
DO m = 0, n-1
a1 = a1 + X(m)
a2 = a2 + X(m) **2
b0 = b0 + Y(m)
b1 = b1 + Y(m) * X(m)
END DO
d = (n * a2)+(a1**2)
a = (n * b1)-(a1 * b0)
a = a / d
b = (b0/n) - a*(a1/n)
b = b
! Évaluation de l'écart type d
d = 0
DO m = 0, n-1
d1 = Y(m) - a - b * X(m)
d = d + d1 * d1
END DO
d = SQRT(d / (n - 2))
RETURN
END
2)-Explication du code Fortran :

Un programme Fortran commence par une instruction "program" et se


termine par une instruction "end program".
L’instruction « program » est suivre par une expression qui indique l’intérêt
de ce programme.
La syntaxe est : <program> <une expression>,
Dans notre cas nous voulons de trouver la ligne droite la mieux ajustée
passant par un nombre n des points donné par l’utilisateur en utilisant la
méthode des moindres carrées, pour cela on choisit comme un nom de
programme « RLS_par_MMC » c’est une abréviation de la phrase «
Régression Linéaire Simple par Méthode des Moindres Carrées »
Donc on a : PROGRAM RLS_par_MMC
Le programme va exécutera les instructions délimitées entre « program »
et « end program ».
En Fortran, les variables ont un type prédéfini en fonction de leur première
lettre. Par exemple, une variable commençant par un 'x' est un réel alors
qu'une variable commençant par un 'i' est un entier. Cette attribution
automatique des types de variables est en fait un piège.
Pour cela on utilise l’instruction « 𝐈𝐦𝐩𝐥𝐢𝐜𝐢𝐭 𝐧𝐨𝐧𝐞 » qui annule cette
attribution automatique des types.
Les déclarations doivent être placées immédiatement après la commande
′𝐢𝐦𝐩𝐥𝐢𝐜𝐢𝐭 𝐧𝐨𝐧𝐞′.
La déclaration des variables
La déclaration d’une variable se fait de la manière suivante :
< 𝑻𝒀𝑷𝑬 > ∶: < 𝑵𝒐𝒎 𝒗𝒂𝒓𝒊𝒂𝒃𝒍𝒆 >
Où < 𝑻𝒀𝑷𝑬 > doit être l’un des types énumères dans cette section, et <
𝑵𝒐𝒎 𝒗𝒂𝒓𝒊𝒂𝒃𝒍𝒆 > doit être le nom de la variable.

La présence des (: : ) est souvent facultative ; cela dit, comme elle est
obligatoire dans certains types de déclaration, il est de coutume de les
mettre systématiquement.
Fortran reconnaît cinq types de variables et de constantes. Nous avons
besoin de Just deux, « INTEGER » et « REAL », leurs définitions de base
sont les suivantes.
« INTEGER » : représentation exacte d'un nombre entier positif ou négatif.
« REAL » : représentation approximative d'un nombre décimal positif ou
négatif.
Dans notre programme on a les instructions suivantes :
𝐑𝐄𝐀𝐋: : 𝐚, 𝐛, 𝐝
Cela signifie que 𝐚, 𝐛, 𝐝 seront des nombres décimaux positifs ou négatifs.
A partir du modèle de la régression utilisée 𝒚 = 𝒂𝟏 𝒙 + 𝒂𝟎 , (𝐚)
représente le paramètre (𝒂𝟏 ) et (𝐛) représente le paramètre (𝒂𝟎 ).

(𝐝) : est l'écart type 𝐝


𝐈𝐍𝐓𝐄𝐆𝐄𝐑: : 𝐧
(𝒏) : est le nombre des données M et sera un nombre entier.
Bien sur notre objectif est de déterminer les paramètres (𝒂𝟏 ) et (𝒂𝟎 ) ou
en d’autres termes les paramètres (𝐚) et (𝐛).
Les déclarations que nous avons vues jusqu’à présent permettent de
déclarer des variables proprement dites, ce qui signifie que l’on peut non
seulement utiliser leurs valeurs “en lecture” mais aussi les modifier.
Il est possible de déclarer des variables par l’instruction « 𝑃𝐴𝑅𝐴𝑀𝐸𝑇𝐸𝑅 »,
dont la valeur ne pourra pas être modifiée par l’exécution du code.
La déclaration dans notre code se fait de la manière suivante :
INTEGER, PARAMETER ∶ : SIZE = 100
La fonction 𝑺𝑰𝒁𝑬 donne la taille de notre échantillon c.-à-d. le nombre
maximal des données n que on peut entrer au programme, cette valeur
reste obligatoirement inférieure à 100 dans toute l’exécution du code. Si
l’on tente de dépasser cette valeur par une affectation de la forme 𝒏 >
𝟏𝟎𝟎, on aura une erreur à la compilation.
La command INTEGER signifie que 𝑺𝑰𝒁𝑬 est un élément ENTIER.
REAL: : X(0: SIZE), Y(0: SIZE)
Cette instruction introduit au programme la variable indépendante (𝑿) et
la variable dépendante (𝒀) , le terme 𝑅𝐸𝐴𝐿 indique que ces valeurs sont
des nombres décimaux.
Pour le terme entre parenthèses (0: 𝑆𝐼𝑍𝐸) indique que pour chaque point
de notre échantillon n on va donner les deux valeurs de (𝑿) et (𝒀).

print ∗, Ce programme détermine l"équation de linre


print ∗, les moindres carrés correspondent.
print ∗, à un ensemble de data donnés.
print ∗,
print ∗, INSTRUCTIONS
print ∗, − − − − − −−
print ∗,
n = 0
do while (n < 3)
print ∗, Le nombre de données doit être
print ∗, supérieur à deux. Sinon une erreur
print ∗, de division par zéro peut en résulter.
print ∗,
write (∗ ,('Nombre de points de données: '), advance = no )
read ∗, n
end do

La commande :
print ∗, une expression quelconque

Imprime à l'écran « une expression quelconque » où cette expression


peut être des noms de variables de n'importe quel type ou, directement
les valeurs correspondantes. Elle peut aussi être une phrase que on veut
l’afficher sur l’écran.
Dans ce programme on utilise cette commande pour afficher à l’utilisateur
l’objectif de programme, puis on le donne les instructions qu’il faut suivre
pour que on n’aura pas une erreur à la compilation.
Puis on a (n = 0) c.-à-d. que le nombres des données n prend
automatiquement la valeur 0, en suite on va demander au l’utilisateur
d’entre le nombre des données qu’il veut.
Après on a ce que on appelle une boucle non indexée
Dans le fonctionnement d’une boucle non indexée, la sortie ou non de la
boucle est fonction d’un booléen (c’est à dire du résultat d’un test).
La syntaxe est la suivante :
do while (expression vrai)
instruction_exécuté_si_vrai
end do
L'instruction « while » permet la comparaison au début de la boucle, avant
même que la suite d'instruction inclus dans la boucle ne soit lancée.
Donc dans notre programme on a do while (n < 3) ,Il nécessite en entrée
au moins trois points de données, dont deux doivent être distincts.
L’exigence en trois points est due au diviseur (𝐧 – 𝟐) dans le calcul de
l'écart type. L'exigence de points distincts est due à une simple
considération géométrique : au moins deux points distincts sont
nécessaires pour définir une ligne. Si l’expression entre parenthèses est
vraie (n < 3),c’est qui suit va exécuter.
A la fin on a les instructions :
« write (∗ ,('Nombre de points de données : '), advance = no ) » qui
permet d’afficher l’expression « Nombre de points de données » pour
demande l’utilisateur d’entre le nombre de points n.
« read ∗, n » va permet d’entre la valeur de n choisi par l’utilisateur ou
mémoire du la machine pour l’utiliser ultérieurement.
« end do » c’est pour fermer cette boucle.

Après tout ça on a deux commandes disent à l’utilisateur d’entre les


variables indépendantes puis les variables dépendantes c.-à-d. qu’il doit
donner toutes les valeurs des X puis les valeurs des Y.
Pour effectuer cette procédure on trouver les instructions suivantes pour
X et Y.
D’abord pour X :
do m = 0, n − 1
write(∗ ,25, advance = ′no′) m + 1
read ∗, X(m)
end do
Ces instructions permettent à l’utilisateur de donner les valeurs des
variables indépendantes mesurées pour chaque point de l’échantillon,
donc pour chaque point d’indice (𝒎) le programme va demander d’entre
sa valeur de X.
Par exemple si on a choisi n=4, ce que va être afficher est :
𝟏⎕
𝟐⎕
𝟑⎕
𝟒⎕
D’abord va apparaitre le chiffer 1 puis on doit entrer la valeur de 𝑿(𝟏) dans
la case vide, même chose pour le point d’indice 2 et ainsi de suite avec le
pas de 1.
Cette procédure va s’effectuer pour toutes les 4 points, et c’est la même
idée quel que soit le nombre 𝒏.
Pour effectuer cette répétition on utilise une boucle indexée qu’est une
série d’instructions qui vont être exécutées un certain nombre de
fois, mais pour lesquelles une certaine variables (l’index de la boucle (𝒎))
prendront successivement des valeurs différentes, ces valeurs étant
déterminées par les éléments suivant l’instruction DO.
D’abord on a write(∗ ,25, advance = ′no′) m + 1, puis l’instruction read ∗
, X(m).
« write » et « read » sont les commandes de base pour écrire (sortie) ou
lire (entrée) des variables depuis ou vers l'extérieur,
La syntaxe de base est la même pour les deux. Par exemple pour écrire
le contenu de la variable xxx sous forme de caractères on écrira :
write(unit, format) 𝐱𝐱𝐱
« 𝐮𝐧𝐢𝐭 » repère là où on va écrire ou lire et « 𝐟𝐨𝐫𝐦𝐚𝐭 » définit le format.
« 𝐮𝐧𝐢𝐭 » prendra la valeur « ∗ » pour read et write si on veut lire et écrire
sur l'entrée et la sortie standard, c'est à dire depuis le clavier et sur l'écran.
Remarquer que les instructions « print ∗, » et « write(unit, format) » sont
équivalentes.
L’instruction « write(∗ ,25, advance = ′no′) m + 1 » va permet d’afficher les
indices (m) de variable indépendante X sur l’écran, le (25) est un indice à
la ligne libellée par (25) dans le code contenant l’instruction « 𝐟𝐨𝐫𝐦𝐚𝐭 ».
L’instruction « 𝐟𝐨𝐫𝐦𝐚𝐭 ».
Les formats fortran sont utilisés pour contrôler l'apparence de l'entrée et
de la sortie. Ils ont la forme simple suivante :
𝐧𝐧 𝐅𝐎𝐑𝐌𝐀𝐓( 𝐜𝐡𝐚î𝐧𝐞 𝐝𝐞 𝐜𝐚𝐫𝐚𝐜𝐭è𝐫𝐞𝐬, 𝐜𝐡𝐚î𝐧𝐞 𝐝𝐞 𝐜𝐚𝐫𝐚𝐜𝐭è𝐫𝐞𝐬)
Autrement dit, un format Fortran est une paire de parenthèses contenant
des chaînes de caractères séparés par des virgules, chaque chaîne
définissant le format d’écriture d’un élément d’une donnée.
On écrit le format sous forme de chaîne de caractères et utilisez-le pour
remplacer le deuxième astérisque dans « read(∗,∗) » ou « write(∗,∗) » et,
(𝐧𝐧) indique au quelle ligne de code se trouve ce format.
Dans l’instruction « 25 FORMAT(′ ′, I2, ′ ′) » la notation (I2) permet d’écrire
l’entier (m) sur 2 caractères en tout, s’il y a besoin de plus l’écriture
échoue.
L’instruction « read ∗, X(m) » permet à l’utilisateur d’entre chaque valeur
de X par le clavier dans le programme pour l’utilise au calcule
ultérieurement.
Finalement pour fermer la boucle on ajoute l’instruction « end do ».
La même procédure précédente va se répéter pour les valeurs de (Y).

Le 𝐬𝐮𝐛𝐫𝐨𝐮𝐭𝐢𝐧𝐞 :
Une 𝐬𝐮𝐛𝐫𝐨𝐮𝐭𝐢𝐧𝐞 est une séquence d’instructions appelable d’un point
quelconque du programme. Elle peut être appelée depuis le programme
principal ou depuis une autre 𝐬𝐮𝐛𝐫𝐨𝐮𝐭𝐢𝐧𝐞.
Une 𝐬𝐮𝐛𝐫𝐨𝐮𝐭𝐢𝐧𝐞 est définie par :
– un nom
– des arguments, qui ont comme les variables un nom et un type.

L’appel d’une 𝐬𝐮𝐛𝐫𝐨𝐮𝐭𝐢𝐧𝐞 se fait depuis un bloc fonctionnel quelconque


avec l’instruction call.

La syntaxe de l’appellation du 𝐬𝐮𝐛𝐫𝐨𝐮𝐭𝐢𝐧𝐞 :


call nom_de_subroutine (𝐯𝟏, 𝐯𝟐, 𝐯𝟑, . . . )
Les arguments 𝐯𝟏, 𝐯𝟐, 𝐯𝟑 peuvent être :
– des variables du bloc fonctionnel,
– des constantes

Les instructions de la 𝐬𝐮𝐛𝐫𝐨𝐮𝐭𝐢𝐧𝐞 ne peuvent pas manipuler les


variables locales du programme principal ou d’une autre 𝐬𝐮𝐛𝐫𝐨𝐮𝐭𝐢𝐧𝐞 ou
fonction.

On prend ce bloque de notre programme :

SUBROUTINE MMC(n, X, Y, a, b, d)
IMPLICIT NONE
INTEGER, PARAMETER ∷ SIZE = 100
INTEGER ∷ n
REAL ∷ a, b, d, X(0: SIZE), Y(0: SIZE)
REAL ∷ a1, a2, b0, b1, d1
INTEGER: : m

On remarque qu’on a les mêmes instructions du début de programme c.-


à-d. le même nombre des données n, même taille d’échantillon « 𝐒𝐈𝐙𝐄 =
𝟏𝟎𝟎 », et les mêmes variables indépendantes et dépendantes X et Y,
même aussi indice (m) de chaque point.
La seule ajoute c’est les variables décimaux « 𝐚𝟏, 𝐚𝟐, 𝐛𝟎, 𝐛𝟏, 𝐝𝟏 », qu’ils
vont être manipulées pour calculer les paramètres 𝒂𝟏 et 𝒂𝟎 de notre
équation estimée.
Comme on a vue dans la partie1 du projet, pour estimer l’équation de la
ligne droite 𝒚 = 𝒂𝟏 𝒙 + 𝒂𝟎 on doit fait des calcules spéciaux aux données
X et Y.
Ces calculs sont les suivants :

(𝑎1 = ∑ 𝑥 ), (𝑎2 = ∑ 𝑥 ),( 𝑏0 = ∑ 𝑦 ),(𝑏1 = ∑ 𝑦 𝑥 )

Donc, on demande au programme de faire ces calcules en utilisant les


instructions suivantes :

𝐷𝑂 𝑚 = 0, 𝑛 − 1
𝑎1 = 𝑎1 + 𝑋(𝑚)
𝑎2 = 𝑎2 + 𝑋(𝑚) ∗∗ 2
𝑏0 = 𝑏0 + 𝑌(𝑚)
𝑏1 = 𝑏1 + 𝑌(𝑚) ∗ 𝑋(𝑚)
𝐸𝑁𝐷 𝐷𝑂

Ces calcules vont être effectuer pour toutes les points n de notre
échantillon de données.
C’est que reste est trouver les paramètres 𝒂𝟏 et 𝒂𝟎 pour l’équation
𝒚 = 𝒂𝟏 𝒙 + 𝒂𝟎 ,pour les calculer on utilise les instructions suivantes :

d = (n ∗ a2) + (a1 ∗∗ 2)
a = (n ∗ b1) − (a1 ∗ b0)
a =a d
b = b0 n − a ∗ a1 n
b = b

Calcule de 𝒂𝟏
On a l’expression mathématique de 𝒂𝟏 :
𝑴 ∑𝑴 𝑴 𝑴
𝟏 𝒚𝒎 𝒙𝒎 − ∑𝟏 𝒚𝒎 ∑𝟏 𝒙𝒎
𝒂𝟏 =
𝑴 ∑𝑴 𝟐 𝑴
𝟏 𝒙𝒎 + (∑𝟏 𝒙𝒎 )
𝟐

Dans le programme 𝐚 représente le numérateur de 𝒂𝟏 et 𝐝 représente le


dénominateur
Calcule de 𝒂𝟎
L’expression mathématique de 𝒂𝟎 : 𝒃𝟎 𝟏 𝑴
𝒏 = 𝒚𝒎𝒐𝒚 = 𝑴 𝒚𝒎
𝟏
𝒂𝟎 = 𝒚𝒎𝒐𝒚 − 𝒂𝟏 𝒙𝒎𝒐𝒚 Avec : 𝑴
𝒂𝟏 𝟏
𝒏 = 𝒙𝒎𝒐𝒚 = 𝑴 𝒙𝒎
𝟏
Calcule de l’écart type 𝐝 :

d = 0
DO m = 0, n − 1
d1 = Y(m) − a − b ∗ X(m)
d = d + d1 ∗ d1
END DO
d = SQRT d (𝑛 − 2)
RETURN
END

Le programme va prend chaque valeur d’équation estimée « 𝑦 =


a − b ∗ X(m)» puis il va la soustraire de chaque valeur donnée de Y(m)
d’ensemble des points n.
Dans l’expression mathématique d’écart type 𝐝 : 𝒅 = 𝟏 𝐌
(𝐲𝐢 − 𝐲)𝟐
(𝑴 − 𝟐) 𝟏
𝐝 : représente (𝐲𝐢 − 𝐲)𝟐

L'exécution de l’instruction « RETURN » met fin à la 𝐬𝐮𝐛𝐫𝐨𝐮𝐭𝐢𝐧𝐞 .


L'exécution d'une instruction 𝐑𝐄𝐓𝐔𝐑𝐍 dans un 𝐬𝐮𝐛𝐫𝐨𝐮𝐭𝐢𝐧𝐞 est équivalant
à l'exécution d'une instruction 𝐄𝐍𝐃.

On revient maintenant aux instructions finales de notre programme :

CALL MMC(n, X, Y, a, b, d)
! afficher les résultats a, b et d
print ∗, L′équation ajustée est:
write (∗ ,50) b, a
print ∗,
write (∗ ,60) d
STOP
25 FORMAT(′ , I2, )
50 FORMAT(′ Y = , F10.6, + , F10.6, X )
60 FORMAT(′ L′écart type d′ajustement: , F10.6)
END
On a d’abord l’instruction « CALL MMC(n, X, Y, a, b, d) » qui va nous permet
d’appeler les résultats de SUBROUTINE MMC(n, X, Y, a, b, d),et les utiliser
dans notre programme.
Le rôle de ces instructions est d’afficher l'équation ajustée 𝒚 = 𝒂𝟏 𝒙 + 𝒂𝟎
et l’écart type d’ajustement 𝐝 sur l’écran.

D’abord print ∗, L′équation ajustée est: affiche l’expression entre


guillemets, en suite write (∗ ,50) 𝐛, 𝐚 permet d’afficher la valeur de 𝐛 puis
la valeur de 𝐚 selon la forme et le format indiqués dans
l’instruction« 50 FORMAT(′ Y = , F10.6, + , F10.6, X ) » libellée par le
chiffre 50 dans le programme.
Plus précisément ce qu’on va voir sur l’écran :
L équation ajustée est:
Y = 𝐛 + 𝐚X

La notation 𝐅𝟏𝟎. 𝟔 permet d’afficher les variables réels 𝒃 et 𝒂 en virgule


flottante sur 10 caractères en tout avec 6 chiffres significatifs.
Même pour la valeur 𝐝 qui va être aussi affichée comme réel en virgule
flottante sur 10 caractères en tout avec 6 chiffres.
L’instruction « STOP » met fin à l'exécution du programme avant la fin de
l'unité de programme.

Résultat :
On utilise les données qu’on a pour l’exemple de la chute libre verticale
et on obtient l'équation ajustée :
Y = 4.043177 - 0.054313 X
Écart type d’ajustement : 18.49778
B) -Ce programme calcule un ajustement parabolique des moindres
carrés à un ensemble de données de l’expérience de la dilatation
thermique linéaire.

Program RLQ_par_MMC
implicit none
integer, parameter :: SIZE = 100
real:: x(0:SIZE), y(0:SIZE)
integer:: n,m
real:: a,b,c,d
PRINT*,' '
PRINT*,' Ce programme calcule l-ajustement'
PRINT*,' par les moindres carrés quadratique'
PRINT*,' à ensemble de données donné '
PRINT*,' '
PRINT*,' INSTRUCTIONS'
PRINT*,' ------------'
PRINT*,' Le nombre de données doit être '
PRINT*,' supérieur à quatre Sinon, une erreur'
PRINT*,' de division par zéro peut résulter.'
PRINT*,' '
Write(*,100,advance='no')
read *, n
do while (n < 4)
Write(*,200,advance='no')
read *, n
end do
PRINT*,' '
PRINT*,'Saisissez d-abord les valeurs '
PRINT*,'des variables indépendantes puis'
PRINT*,'saisissez les variables dépendantes'
PRINT*,' '
DO m = 0, n - 1
Write(*,300,advance='no') m+1
read *, x(m)
END DO
PRINT*,' '
DO m = 0, n - 1
Write(*,300,advance='no') m+1
read *, y(m)
END DO
!Appeller le subroutine des moindres carrés
paraboliques
Call S2000(n,x,y,a,b,c,d)
PRINT*,' '
PRINT*,' l-équation ajustée est::'
Write(*,400,advance='no')a,b,c
PRINT*,' '
PRINT*,' l-écart type d-ajustement:'
Write(*,500,advance='no')d
STOP
100 Format(' Le nombre de points de données: ')
200 Format(' Le nombre de coordonnées de données
fournies doit être supérieur à quatre.')
300 Format(' ',I2,' ')
400 Format(' Y = ',f18.9,'X^2'' + ',f18.9,'X'' +
',f18.9,'')
500 Format(' ',f18.9,' ')
END Program
!* le subroutine des moindres carrés paraboliques
Subroutine S2000(n,x,y,a,b,c,d)
implicit none
integer, parameter :: SIZE = 100
real:: x(0:SIZE), y(0:SIZE)
integer:: n,m
real:: a,b,c,d,a1,a2,a3,a4,b0,b1,b2,d1
a1 = 0
a2 = 0
a3 = 0
a4 = 0
b0 = 0
b1 = 0
b2 = 0
DO m = 0, n - 1
a1 = a1 + x(m)
a2 = a2 + x(m) * x(m)
a3 = a3 + x(m) * x(m) * x(m)
a4 = a4 + x(m) * x(m) * x(m) * x(m)
b0 = b0 + y(m)
b1 = b1 + y(m) * x(m)
b2 = b2 + y(m) * x(m) * x(m)
END DO
d = (a2 * a4) - (a3 * a3)
a = (b2 * a2) - (b1 * a3)
a = a / d
b = (b1 * a4) - (b1 * a3)
b = b / d
c = (b0/n) - (b * (a1/n)) - (a * (a2/n))
! l’évaluation de l'écart type d
d = 0
DO m = 0, n - 1
d1 = y(m) - c - b * x(m) - a * x(m) * x(m)
d = d + d1 * d1
END DO
d = SQRT(d / (n - 3))
Return
END

Résultat :
L'équation ajustée est :

𝒀 = 𝟎. 𝟎𝟎𝟎𝟏𝟗𝟗𝟓𝟗𝟒 𝑿𝟐 − 𝟎. 𝟏𝟒𝟒𝟓𝟗𝟔𝟐𝟔𝟒 𝑿 − 𝟕. 𝟑𝟕𝟖𝟕𝟗𝟑𝟕𝟏𝟔


Écart type d’ajustement : 18.536817551

Vous aimerez peut-être aussi