7
votes

Comment calculer le déterminant de la matrice? n * n ou seulement 5 * 5

tout le monde. J'ai besoin de trouver matrix n * n (ou 5 * 5 ) déterminant. J'ai une fonction traduite de Pascal, mais il y a index hors de portée d'exception . Quelqu'un pourrait-il m'aider?

Voici mon code: xxx

theX pour toute aide.


1 commentaires

Vous pouvez ajouter une correction suggérée à cette même question de votre part sur l'autre forum: ce pour (j = i + 1; j devrait être comme celui-ci pour ( j = i + 1; j


5 Réponses :


3
votes
for (j = i + 1; j < n + 1; j++)
Last J value will be bigger than array size. So you must to recheck array sizes and all how was all indexes translated from pascal.

2 commentaires

Merci, mais qu'est-ce que signifie "récupérer des tailles de réseau et tout comment tous les index ont été traduits de Pascal".


@Daria, il veut dire que vous devriez vérifier la traduction en particulier les critères de début et de fin de la boucle.





0
votes

Je pense que cet algorithme n'est pas bon, du moins pour le calcul des matrices 5x5. Même si nous corrigeons ce

pour (j = i + 1; j

être comme celui-ci

pour (j = i + 1; j

puis écrivez un code complet tel que: xxx

résultat est: déterminant est: -8 déterminant est: -142 Le déterminant est: -Nan

Nan se produit à cause de la division par zéro (je l'ai débogué) Il pourrait être possible que, pour une entrée très spécifique, cela fonctionne correctement, mais en général, ce n'est pas un bon algorithme.

donc, cela fonctionne pour 3x3 et 4x4 mais pas pour 5x5

J'ai écrit ceci à quiconque pourrait rencontrer cette question pour éviter de perdre quelques heures en essayant de mettre en œuvre ou de réparer quelque chose qui a un mauvais algorithme en premier lieu.


0 commentaires

4
votes

Solution de travail pour calculer N * N déterminant ressemble à: xxx


1 commentaires

Celui-ci fonctionne réellement et n'a pas de fracture par erreur zéro