introduction
Aujourd'hui, nous allons nous occuper du fléau des étudiants en première année d'algèbre linéaire: la précision de la matrice! Apparemment, cela n'a pas encore de défi, alors c'est parti:
Contribution
- Une matrice symétrique dans n'importe quel format pratique (vous pouvez bien sûr également ne prendre que la partie supérieure ou inférieure de la matrice)
- Facultativement: la taille de la matrice
Que faire?
Le défi est simple: étant donné une matrice à valeur réelle matrice décide si elle est définie positive en émettant une valeur véridique dans l'affirmative et une valeur de Falsey dans le cas contraire.
Vous pouvez supposer que vos éléments intégrés fonctionnent réellement avec précision et ne doivent donc pas prendre en compte les problèmes numériques qui pourraient conduire à un comportement incorrect si la stratégie / le code "de manière prouvable" devait donner le résultat correct.
Qui gagne?
C'est le code-golf , donc le code le plus court en octets (par langue) gagne!
Qu'est-ce qu'une matrice positive définie de toute façon?
Il existe apparemment 6 formulations équivalentes lorsqu'une matrice symétrique est définie positivement. Je vais reproduire les trois plus faciles et vous référer à Wikipedia pour les plus complexes.
- Si alors est défini positif. Cela peut être reformulé comme suit: Si pour chaque vecteur non nul, le produit scalaire (standard) de et est positif, alors est défini positif.
- Soit les valeurs propres de , si maintenant (c'est tout les valeurs propres sont positives) alors est défini de façon positive. Si vous ne savez pas quelles sont les valeurs propres, je vous suggère d'utiliser votre moteur de recherche préféré pour le découvrir, car l'explication (et les stratégies de calcul nécessaires) est trop longue pour être contenue dans cet article.A ∀ i ∈ { 1 , … , n } : λ i > 0 A
- Si la décomposition de Cholesky de existe, c'est-à-dire qu'il existe une matrice triangulaire inférieure telle que alors est défini positif. Notez que cela équivaut à un retour précoce "faux" si à tout moment le calcul de la racine pendant l'algorithme échoue en raison d'un argument négatif.
Exemples
Pour une sortie fidèle
Pour sortie falsey
(au moins une valeur propre est 0 / semi-définie positive)
(les valeurs propres ont des signes différents / indéfinis)
(toutes les valeurs propres inférieures à 0 / définie négative)
(toutes valeurs propres inférieures à 0 / définies négatives)
(toutes les valeurs propres inférieures à 0 / définies négatives)
(trois valeurs propres positives, une négative / indéfinie)