Comment calculer le déterminant d'une matrice NxN C#?Calcul d'un déterminant matriciel NxN en C#
Répondre
Réduisez à la forme triangulaire supérieure, puis créez une boucle imbriquée où vous multipliez toutes les valeurs à la position i == j ensemble. Voilà.
Il n'a même pas besoin d'être une boucle imbriquée, parce que si vous le faites pour les positions (i, j) où i == j vous pouvez le faire pour toutes les positions (i, i). – JAB
Bon point, +1. – Brandi
Le résultat que vous calculez peut être le négatif du déterminant. Vous devez prendre le produit de la diagonale primaire, puis multiplier par (-1)^[nombre de permutations de lignes utilisées pour obtenir la forme triangulaire supérieure] – Kevin
L'OP a posté another question demandant spécifiquement des matrices 4x4, qui a été fermé en tant que copie exacte de cette question. Eh bien, si vous n'êtes pas à la recherche d'une solution générale mais sont contraints à des matrices 4x4 seul, vous pouvez utiliser cette laide à la recherche, mais essayé et vrai code:
public double GetDeterminant() {
var m = _values;
return
m[12] * m[9] * m[6] * m[3] - m[8] * m[13] * m[6] * m[3] -
m[12] * m[5] * m[10] * m[3] + m[4] * m[13] * m[10] * m[3] +
m[8] * m[5] * m[14] * m[3] - m[4] * m[9] * m[14] * m[3] -
m[12] * m[9] * m[2] * m[7] + m[8] * m[13] * m[2] * m[7] +
m[12] * m[1] * m[10] * m[7] - m[0] * m[13] * m[10] * m[7] -
m[8] * m[1] * m[14] * m[7] + m[0] * m[9] * m[14] * m[7] +
m[12] * m[5] * m[2] * m[11] - m[4] * m[13] * m[2] * m[11] -
m[12] * m[1] * m[6] * m[11] + m[0] * m[13] * m[6] * m[11] +
m[4] * m[1] * m[14] * m[11] - m[0] * m[5] * m[14] * m[11] -
m[8] * m[5] * m[2] * m[15] + m[4] * m[9] * m[2] * m[15] +
m[8] * m[1] * m[6] * m[15] - m[0] * m[9] * m[6] * m[15] -
m[4] * m[1] * m[10] * m[15] + m[0] * m[5] * m[10] * m[15];
}
Il suppose que vous stocker vos données vectorielles dans un réseau de 16 élément appelé _values
(de double
dans ce cas, mais float
fonctionnerait aussi), dans l'ordre suivant:
0, 1, 2, 3,
4, 5, 6, 7,
8, 9, 10, 11,
12, 13, 14, 15
la méthode standard est LU decomposition. Vous pouvez utiliser une bibliothèque au lieu de la coder vous-même. Je ne sais pas sur C#, mais la norme de 40 ans est LAPACK.
- 1. Puis-je obtenir le déterminant matriciel en utilisant Numpy?
- 2. Déterminant de calcul d'une matrice
- 3. Calcul matriciel 4D, problème de codage Matlab
- 4. Code pour résoudre déterminant en utilisant Python sans utiliser scipy.linalg.det
- 5. Cadre de calcul distribué en c/C++
- 6. pour tous les arrangements possibles de la matrice nxn donnant somme unique en c
- 7. Remplir par programme une matrice nxn avec un filtre gaussien en C++
- 8. Afficher les données au format matriciel?
- 9. Calcul de grands factoriels en C++
- 10. Calcul d'une solution d'équation en C++
- 11. Calcul de date simple en C#
- 12. Calcul des coordonnées d'un sprite en C++
- 13. question factice pour le calcul en C#
- 14. Déterminant d'une matrice complexe dans R
- 15. déterminant de 3 points dans java
- 16. déterminant le codage de réponse du serveur
- 17. C# et le calcul scientifique
- 18. Calcul rapide de crc32 C#:
- 19. Calcul de matrice inverse Java
- 20. Calcul de bord triangulaire C++
- 21. Calcul de coordonnées Objective-C
- 22. Segfault dans un code matriciel utilisant le nouveau
- 23. calcul factoriel en Python
- 24. Calcul parallèle en Perl
- 25. calcul d'âge en Flex
- 26. Calcul parallèle en Java
- 27. Appel SQL avec une clause de calcul en C#
- 28. Produire plusieurs feuilles de calcul dans Excel en utilisant C#
- 29. Coulée implicite Calcul de l'entier pour flotter en C++
- 30. Ouverture MS Excel feuille de calcul en C#
Est-ce que ce sont les devoirs? –
La définition n'est-elle pas suffisante: http://en.wikipedia.org/wiki/Determinant? Lorsque vous avez essayé de l'implémenter sur C#, avez-vous rencontré des problèmes particuliers? –
Donnez-nous le code que vous avez fait jusqu'à présent et nous vous aiderons. Mais nous ne le coderons pas pour vous. –