Les Éléments d'Euclide contenaient déjà une approche géométrique de la généralisation du théorème de Pythagore dans deux cas particuliers : ceux d'un triangle obtusangle et d'un triangle acutangle. Le développement, au Moyen Âge, de la trigonométrie arabo-musulmane permit au théorème d'évoluer dans sa forme et dans sa portée : l'astronome et mathématicien al-Battani généralisa le résultat d'Euclide à la géométrie sphérique au début du Xe siècle, et l'introduction des fonctions trigonométriques permit à Ghiyath al-Kashi, mathématicien de l'école de Samarcande, de mettre le théorème sous une forme utilisable pour la triangulation au cours du XVe siècle<ref>Modèle:Lien web.</ref>. La propriété a été popularisée en occident par François Viète qui l'a vraisemblablement redécouverte indépendamment.
En ce qui concerne la géométrie plane, cette loi est connue sous les noms de théorème d'Al-Kashi en France<ref name="scalaire"/>, ou encore théorème de Pythagore généralisé<ref>Modèle:Ouvrage.</ref>. Le nom francisé du mathématicienperse Ghiyath Al-Kashi (1380-1429) apparut dans les années 1990 dans les manuels scolaires édités en France, les appellations théorème de Pythagore généralisé ou loi des cosinus étant utilisées jusque-là<ref>Modèle:Lien web.</ref>.
Soit un triangle ABC, dans lequel on utilise les notations usuelles exposées sur la figure 1 : d'une part <math>\widehat A=\alpha</math>, <math>\widehat B=\beta</math> et <math>\widehat C=\gamma</math> pour les angles et, d'autre part, Modèle:Mvar, Modèle:Mvar et Modèle:Mvar pour les longueurs des côtés respectivement opposés à ces angles. Alors la loi des cosinus, ou relation d'Al-Kashi, s'écrit, concernant l'angle en C :
<math>c^2 = a^2 + b^2 - 2ab\ \cos\ \gamma.</math>
On obtient les relations concernant A et B par permutations.
Il faut attendre la trigonométrie arabo-musulmane au Moyen Âge pour voir le théorème évoluer dans sa forme et dans sa portée. Durant la même période sont établies les premières tables trigonométriques, pour les fonctions sinus et cosinus. En 1428, on trouve un énoncé du théorème, utilisant les cosinus, dans l'œuvre d'al-Kashi, Les clés de l'arithmétique<ref>Modèle:Article (Modèle:P.).</ref>.
C'est au début du Modèle:S mini- siècleModèle:Vérification siècle que les notations algébriques modernes permettent d'écrire le théorème sous sa forme actuelle et qu'il prend dans de nombreuses langues le nom de loi (ou théorème) des cosinus.
Ces formules sont instables numériquement dans le cas de triangles en épingle, c'est-à-dire lorsque Modèle:Mvar est petit devant Modèle:Mvar et Modèle:Mvar — ou, de façon équivalente, lorsque Modèle:Mvar est petit devant 1.
Il existe un corollaire de la loi des cosinus : pour deux triangles directement semblables ABC et A'B'C'
Tout comme le théorème de Pythagore, la loi des cosinus possède de nombreuses démonstrations, certaines utilisant des propriétés sur les aires comme celles d'Euclide ou la loi des cosinus, d'autres utilisant des propriétés trigonométriques ou liées au cercle. Enfin, la loi des cosinus peut être vue comme une application des propriétés sur le produit scalaire<ref name="scalaire">La Modèle:Citation, vue comme application du produit scalaire, était explicitement présente jusqu'en 2010 dans les programmes de mathématiques de première S de l'enseignement français (voir BO du 31 aout 2000). Elle ne figure plus qu'implicitement dans le programme de 2010, parmi les Modèle:Citation : Modèle:Cf. par exemple Modèle:Ouvrage.</ref>.
La démonstration d'Euclide<ref>Denis Henrion (trad.), Les quinze livres des éléments géométriques d'Euclide, 1632, Modèle:P..</ref> par la proposition 12 (angle obtus) et 13 (angle aigu) s'appuie sur le théorème de Pythagore et fait intervenir le point H pied de la hauteur issue de B. Pour Euclide cette propriété est une propriété sur des aires. Pour l'angle obtus (proposition 12), Euclide construit le carré extérieur au triangle AHB de côté [AH] et remarque que
Dans son livre Clé de l'arithmétique en 1429<ref>Selon Modèle:Harvsp, la démonstration se trouve dans KASHI (al) (1967): Miftam al-misab [Clé de l'Arithmétique], al-Damardache, A. S. & al-Manfi al-Shikh, M. M. (Edit.), Le Caire, Dar al-Kitab al-cArabi li at-tibaqa wa an-Nashr, Modèle:P..</ref>, Al-Kashi généralise le théorème de Pythagore et introduit dans l'égalité la trigonométrie.
Pour lui aussi, cette propriété est liée aux aires. Ainsi dans un triangle acutangle ABC, il mène par A, B et C les 3 hauteurs du triangle, qui découpent dans les carrés s'appuyant sur CB, CA et AB des rectangles.
Dans la figure ci-contre, on prouve l'égalité des aires des rectangles verts en prouvant l'égalité des aires des triangles
JAE et JAB par glissement d'un sommet parallèlement à une base ;
JAB et CAM par rotation d'angle droit ;
CAM et FAM par glissement d'un sommet parallèlement à une base<ref>Voir cette Modèle:Commons-inline.</ref>.
On fait de même pour les rectangles rouges.
Quant aux rectangles bleus, dont les côtés ont pour longueur CL (= CA) et CE (= CB cos C), pour l'un, et CI (= CB) et CD (= CA cos C) pour l'autre, ils ont même aire égale à CA × CB × cos C.
Un certain nombre des démonstrations du théorème font intervenir un calcul d'aires<ref>Voir par exemple Modèle:Ouvrage, et plus généralement l'article « Preuve sans mots ».</ref>. Il convient en effet de remarquer que
La figure 6a (ci-contre) découpe un heptagone de deux manières différentes de sorte à démontrer le théorème d'Al-Kashi dans le cas d'un angle aigu. Interviennent :
en bleu, le triangle ABC, à droite comme à gauche ;
en gris, quelques triangles supplémentaires, identiques au triangle ABC et en même nombre dans les deux découpages.
L'égalité des aires de droite et de gauche donne
<math>\,a^2+b^2 = c^2+2ab \cos\gamma</math>.
La figure 6b (ci-contre) découpe un hexagone de deux manières différentes de façon à démontrer le théorème d'Al-Kashi dans le cas d'un angle obtus. La figure montre
en bleu, deux fois le triangle ABC, à droite comme à gauche.
L'égalité des aires à droite et à gauche donne
<math>\,a^2+b^2-2ab\cos\gamma = c^2</math>.
Une démonstration rigoureuse nécessiterait de prouver que les deux découpages sont effectivement identiques, ce qui utilise principalement les cas d'égalité des triangles.
La figure 7 (ci-contre) indique la manière de procéder pour démontrer la loi des cosinus dans le cas d'un triangle à angles aigus en utilisant le théorème de Pythagore sur un sous-triangle rectangle formé en prenant le pied de la hauteur<ref>Modèle:Harvsp.</ref>. Seule la dernière étape n'est pas indiquée sur la figure : le théorème de Pythagore s'applique au triangle rectangle dont l'hypoténuse est le côté c :
Contrairement aux précédentes, pour cette démonstration, il n'est pas nécessaire de recourir à une étude par cas. En effet, les mesures algébriques permettent de traiter pareillement un angle aigu (Modèle:Surligner < 0) et un angle obtus (Modèle:Surligner > 0).
On trouve trace de l'utilisation de la puissance d'un point par rapport à un cercle pour déterminer tous les angles d'un triangle dont les longueurs sont connues, dans l'œuvre de Nicolas Copernic, Des révolutions des sphères célestes. Il présente ainsi deux algorithmes, l'un utilisant le théorème de Pythagore généralisé présent dans l'œuvre d'Euclide, l'autre utilisant la puissance d'un point par rapport à un cercle<ref>{{#invoke:Langue|indicationDeLangue}} N. Copernic, De revolutionibus orbium coelestium, Livre I, chap. XII, § VII, [[s:la:Pagina:Nicolai Copernici torinensis De revolutionibus orbium coelestium.djvu/54|Modèle:P.]] et [[s:la:Pagina:Nicolai Copernici torinensis De revolutionibus orbium coelestium.djvu/55|Modèle:P.]], respectivement.</ref>.
Ainsi dans une figure analogue à celle ci-contre, il fait remarquer que, Modèle:Mvar et Modèle:Mvar étant connus, la puissance du point A par rapport au cercle tracé est connue
Il en déduit que, puisque Modèle:Mvar est connu, AK est connu.
En effet <math>AK \times b = c^2-a^2</math> donc <math>AK=\frac{c^2-a^2}b.</math>
Puisque AK est connu, alors CK est connu.
En effet, dans la figure ci-contre, <math>CK= AK-b=\frac{c^2-a^2-b^2}{b}.</math>
Enfin, il fait remarquer que CK étant connu, l'angle KCB est connu.
En effet, <math>\cos(KCB)=\frac{CK}{2a}=\frac{c^2-a^2-b^2}{2ab}.</math>
Et puisque l'angle KCB est connu, il en est de même de l'angle ACB.
Ainsi, on retrouve la règle du cosinus : <math>\cos(\gamma)=\frac{a^2+b^2-c^2}{2ab}</math>
Ne manipulant pas les mesures algébriques, Nicolas Copernic présente deux cas de figure pour l'angle obtus et l'angle aigu, travaille sur un cercle dont le rayon correspond au plus petit côté, et ne présente pas de formule, mais un algorithme de calcul. Une utilisation analogue de la puissance d'un point par rapport à un cercle pour retrouver la règle du cosinus est faite par Pitiscus<ref>Modèle:Ouvrage.</ref>.
À l'aide du produit scalaire
En utilisant le calcul vectoriel, plus précisément le produit scalaire, il est possible de retrouver la loi des cosinus en quelques lignes<ref name="scalaire"/> :
Le développement de la trigonométrie sphérique dans le monde arabo-musulman et le travail d'al-Battani sur celle-ci, conduisent Delambre dans son Histoire de l'astronomie du Moyen Âge<ref>Op. cit., Modèle:P., Modèle:Google Livres.</ref> à attribuer à al-Battani, la première version de la loi des cosinus en trigonométrie sphérique. Cependant, pour Modèle:Lien<ref>Modèle:Ouvrage, note 1.</ref>, le travail d'al-Battani ne met pas en évidence de formule générale, et il faut attendre Regiomontanus, qui s'appuyant sur les travaux d'al-Battani, énonce et démontre la loi à l'aide des sinus verses<ref>Modèle:Harvsp.</ref>,<ref>Modèle:Lien web.</ref>.
Lorsque le rayon de courbure tend vers l'infini, c’est-à-dire lorsque Modèle:Mvar, Modèle:Mvar et Modèle:Mvar tendent vers 0, la loi des cosinus sphérique se simplifie pour donner la version euclidienne de la même loi. Pour le montrer, on utilise les développements limités suivants :
<math>\,\sin a = a + o(a^2),</math>
<math>\,\cos a = 1 - a^2/2 + o(a^2).</math>
et on identifie les coefficients du second ordre dans la relation Modèle:Math, ce qui donne :
<math>\cosh c = \cosh a\,\cosh b - \sinh a\,\sinh b\,\cos\gamma</math>.
Lorsque le rayon de courbure devient très grand devant les dimensions du triangle, on retrouve la loi des cosinus euclidienne à partir des développements limités
<math>\,\sinh a = a + O(a^3)</math>,
<math>\,\cosh a = 1 + a^2/2 + O(a^3).</math>
en identifiant les termes du second ordre.
Formule générale pour une surface de courbure constante
On considère un tétraèdre A1A2A3A4 de l'espace euclidien. La figure 10 ci-contre présente les notations concernant les sommets, faces et angles dans le tétraèdre :
<math>\mathrm S_k</math> la face opposée au sommet <math>\mathrm A_k\ </math>;
<math>s_k</math> la surface de <math>\mathrm S_k\ </math>;
<math>\Delta_k</math> le plan dans lequel <math>\mathrm S_k\ </math> est plongée ;