Diagonaliser une matrice
Pour la matrice de lignes (2, 1) et (1, 2), vous obtenez les valeurs propres 3 et 1, la matrice diagonale D et la matrice P des vecteurs propres, de sorte que A = P·D·P⁻¹. Une matrice non diagonalisable est signalée clairement. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Tout se passe dans votre navigateur : gratuit, sans envoi de vos données.
Le calculateur de diagonalisation de matrices prend une matrice carrée et renvoie sa décomposition en valeurs propres complète : les valeurs propres, la matrice diagonale D construite à partir d'elles, et la matrice de passage P dont les colonnes sont les vecteurs propres correspondants, de sorte que A = P·D·P⁻¹. La diagonalisation transforme des problèmes difficiles en problèmes simples : puissances de matrices, exponentielles, équations différentielles et chaînes de Markov deviennent des opérations terme à terme une fois la matrice écrite dans sa base propre. Au lieu de calculer le polynôme caractéristique à la main ou d'installer une bibliothèque numérique, vous envoyez les coefficients et recevez la décomposition en un seul appel déterministe, avec chaque valeur arrondie à la précision que vous choisissez. Le même code s'exécute gratuitement dans votre navigateur sur cette page : vous pouvez vérifier une matrice en la collant et ne payer que lorsque vous automatisez le flux de travail.
Ce que signifie diagonaliser une matrice
Une matrice carrée A est diagonalisable lorsqu'elle possède suffisamment de vecteurs propres indépendants pour former une base — n d'entre eux pour une matrice n×n. Dans ce cas, vous pouvez écrire A = P·D·P⁻¹, où D est une matrice diagonale contenant les valeurs propres et P la matrice de passage dont les colonnes sont les vecteurs propres, dans le même ordre.
Cette décomposition est l'un des résultats centraux de l'algèbre linéaire, car les matrices diagonales sont triviales à manipuler : élever D à la puissance cinquante revient simplement à élever chaque coefficient diagonal à la puissance cinquante. Le calculateur de diagonalisation de matrices calcule cette factorisation directement à partir des coefficients que vous fournissez.
Il renvoie les valeurs propres triées de la plus grande à la plus petite, la matrice diagonale D et la matrice P complète, afin que vous puissiez vérifier vous-même l'identité A·P = P·D ou intégrer les éléments dans l'étape suivante de votre calcul. Si la matrice n'est pas carrée, la requête est rejetée, et si elle possède des valeurs propres complexes ou ne dispose pas d'un ensemble complet de vecteurs propres réels, l'outil l'indique clairement au lieu de renvoyer des nombres plausibles en apparence mais faux.
Comment fonctionne le calcul
L'algorithme est entièrement déterministe — aucun point de départ aléatoire, aucun nombre d'itérations variant d'une exécution à l'autre — de sorte qu'une même matrice produit toujours la même décomposition. Les matrices symétriques, omniprésentes en statistiques, en physique et en optimisation, sont traitées par des balayages de Jacobi cycliques : une suite de rotations planes qui annule les coefficients hors diagonale tout en accumulant les rotations dans la matrice des vecteurs propres.
Jacobi est lent en théorie pour les très grandes matrices, mais extrêmement précis pour les tailles petites et moyennes acceptées par cet outil, et il gère sans difficulté les valeurs propres répétées, là où d'autres méthodes peinent. Les matrices générales non symétriques sont traitées par une itération QR avec décalage de Wilkinson pour extraire les valeurs propres, suivie d'une itération inverse pour retrouver un vecteur propre pour chacune.
Avant de répondre, l'outil vérifie que la matrice des vecteurs propres P est inversible ; si les colonnes sont presque parallèles, la matrice est défectueuse — comme le classique [[1,1],[0,1]] — et ne peut pas être diagonalisée, donc la requête échoue avec une erreur explicite plutôt qu'une réponse silencieusement erronée. Chaque coefficient renvoyé est arrondi à la précision décimale demandée, de 0 à 15 chiffres, dix étant la valeur par défaut.
Où les équipes l'utilisent
La diagonalisation apparaît partout où un système linéaire évolue au fil du temps. Les ingénieurs qui étudient le comportement à long terme d'une chaîne de Markov ont besoin des valeurs propres pour savoir si la chaîne converge et à quelle vitesse ; la valeur propre dominante et son vecteur propre donnent directement l'état stationnaire. Les développeurs confrontés à des relations de récurrence ou à des équations aux différences couplées diagonalisent la matrice de transition pour obtenir une solution explicite au lieu d'itérer.
En graphisme et en géométrie, décomposer une transformation révèle les axes selon lesquels elle étire l'espace. Les équipes données l'utilisent comme brique de base : l'analyse en composantes principales est la décomposition en valeurs propres d'une matrice de covariance, et les méthodes spectrales de graphes partent des vecteurs propres d'un laplacien.
Cas d’usage
Calculer rapidement des puissances de matrices
Obtenez P et D une seule fois, puis calculez A^k comme P·D^k·P⁻¹ — chaque valeur propre est simplement élevée à la puissance k.
Analyser une chaîne de Markov
Extrayez la valeur propre dominante et son vecteur propre pour trouver la distribution stationnaire et la vitesse de convergence.
Vérifier devoirs et travaux de cours
Comparez une diagonalisation faite à la main avec une référence déterministe avant de la rendre.
Questions fréquentes
Combien cela coûte-t-il ?
L'exécution est également gratuite dans votre navigateur sur cette page, avec des résultats identiques.
Quelles matrices sont acceptées ?
Toute matrice carrée de nombres réels finis jusqu'à 50×50.
Et si ma matrice ne peut pas être diagonalisée ?
Les matrices à valeurs propres complexes, ou les matrices défectueuses sans n vecteurs propres réels indépendants, sont rejetées avec une erreur explicite plutôt qu'une réponse approximative.
Comment les résultats sont-ils ordonnés ?
Les valeurs propres sont renvoyées de la plus grande à la plus petite, et les colonnes de la matrice de passage P suivent le même ordre.
Comment vérifier la réponse ?
Multipliez A·P et P·D — ils doivent être égaux. Pour les matrices symétriques, les colonnes de P sont également orthonormées, donc P⁻¹ est égale à la transposée de P.
Ma matrice est-elle stockée quelque part ?
Non. Elle est traitée en mémoire puis supprimée ; seule la décomposition est renvoyée.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/math/diagonalize-matrix \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"matrix":[[2,1],[1,2]]}'const res = await fetch("https://api.kit.forhosting.com/math/diagonalize-matrix", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"matrix": [
[
2,
1
],
[
1,
2
]
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/diagonalize-matrix",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"matrix": [
[
2,
1
],
[
1,
2
]
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/diagonalize-matrix", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"matrix":[[2,1],[1,2]]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"matrix":[[2,1],[1,2]]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/diagonalize-matrix", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"matrix": [
[
2,
1
],
[
1,
2
]
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.diagonalize_matrix",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_n | 50 |
max_abs_entry | 1000000000000000 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Où les équipes l'utilisent
Comme la fonctionnalité s'exécute sur notre réseau mondial de périphérie sans rien conserver après la réponse, elle s'intègre aussi naturellement dans les pipelines automatisés — un script peut soumettre des matrices dans le cadre d'une tâche nocturne pour $0.002 par appel, tandis qu'une personne vérifie les mêmes matrices gratuitement dans le navigateur avec des résultats identiques à l'octet près. Cette parité entre l'outil web gratuit et l'API payante est voulue : le même module alimente les deux.