Programme C++ pour trouver des vecteurs et des traces normales
Les tableaux ou matrices bidimensionnels sont très utiles dans plusieurs applications. Une matrice comporte des lignes et des colonnes et y stocke des nombres. En C++, nous pouvons également utiliser des tableaux multidimensionnels pour définir des matrices bidimensionnelles. Dans cet article, nous verrons comment calculer la norme et la trace d'une matrice donnée en utilisant C++.
Normal est la racine carrée de la somme de tous les éléments de la matrice. La trace est la somme des éléments présents dans la diagonale principale. Regardons l'algorithme et la représentation du code C++.
Matrice normale
$commencer{bmatrix} 5 & 1 & 8 caractères de nouvelle ligne 4, 3 et 9 caractères de nouvelle ligne 2&7&3 fin{bmatrix},$
Sum of all elements: (5 + 1 + 8 + 4 + 3 + 9 + 2 + 7 + 3) = 42 Normal: (Square root of the sum of all elements) = √42 = 6.48
Dans l'exemple ci-dessus, nous avons pris une matrice 3 x 3, ici nous obtenons la somme de tous les éléments puis en prenons la racine carrée. Voyons l'algorithme pour une meilleure compréhension.
Algorithme
- Lire la matrice M en entrée
- Considérez M avec n lignes et n colonnes
- Somme : = 0
- Pour i de 1 à n, fais
- Pour j de 1 à n, procédez comme suit
- somme := somme + M[ i ][ j ]
- Fin de la boucle
- Pour j de 1 à n, procédez comme suit
- Fin de la boucle
- res := somme des racines carrées
- Retour des résultats
Exemple
#include <iostream> #include <cmath> #define N 5 using namespace std; float solve( int M[ N ][ N ] ){ int sum = 0; for ( int i = 0; i < N; i++ ) { for ( int j = 0; j < N; j++ ) { sum = sum + M[ i ][ j ]; } } return sqrt( sum ); } int main(){ int mat1[ N ][ N ] = { {5, 8, 74, 21, 69}, {48, 2, 98, 6, 63}, {85, 12, 10, 6, 9}, {6, 12, 18, 32, 5}, {8, 45, 74, 69, 1}, }; cout << "Normal of the first matrix is: " << solve( mat1 ) << endl; int mat2[ N ][ N ] = { {6, 8, 35, 21, 87}, {99, 2, 36, 326, 25}, {15, 215, 3, 157, 8}, {96, 115, 17, 5, 3}, {56, 4, 78, 5, 10}, }; cout << "Normal of the second matrix is: " << solve( mat2 ) << endl; }
Sortie
Normal of the first matrix is: 28.0357 Normal of the second matrix is: 37.8418
Trace matricielle
$commencer{bmatrix} 5 & 1 & 8 caractères de nouvelle ligne 4, 3 et 9 caractères de nouvelle ligne 2&7&3 fin{bmatrix},$
Sum of all elements in main diagonal: (5 + 3 + 3) = 11 which is the trace of given matrix
Dans l'exemple ci-dessus, nous avons pris une matrice 3 x 3 et nous avons ici la somme de tous les éléments de la diagonale principale. Cette somme est la trace de la matrice. Jetons un coup d'œil à l'algorithme pour une meilleure compréhension.
Algorithme
- Lire la matrice M en entrée
- Considérez M avec n lignes et n colonnes
- Somme : = 0
- Pour i de 1 à n, fais
- somme := somme + M[ je ][ je ]
- Fin de la boucle
- Rendre la somme
Exemple
#include <iostream> #include <cmath> #define N 5 using namespace std; float solve( int M[ N ][ N ] ){ int sum = 0; for ( int i = 0; i < N; i++ ) { sum = sum + M[ i ][ i ]; } return sum; } int main(){ int mat1[ N ][ N ] = { {5, 8, 74, 21, 69}, {48, 2, 98, 6, 63}, {85, 12, 10, 6, 9}, {6, 12, 18, 32, 5}, {8, 45, 74, 69, 1}, }; cout << "Trace of the first matrix is: " << solve( mat1 ) << endl; int mat2[ N ][ N ] = { {6, 8, 35, 21, 87}, {99, 2, 36, 326, 25}, {15, 215, 3, 157, 8}, {96, 115, 17, 5, 3}, {56, 4, 78, 5, 10}, }; cout << "Trace of the second matrix is: " << solve( mat2 ) << endl; }
Sortie
Trace of the first matrix is: 50 Trace of the second matrix is: 26
Conclusion
Les normales et les traces sont toutes deux des opérations matricielles. Afin d'effectuer ces deux opérations, nous avons besoin d'une matrice carrée (car une matrice de traces carrée est nécessaire). La normale est simplement la racine carrée de la somme de tous les éléments présents dans la matrice, et la trace est la somme des éléments présents sur la diagonale principale de la matrice. Cette matrice peut être représentée à l'aide d'un tableau bidimensionnel en C++. Nous donnons ici deux exemples de matrices à 5 lignes et 5 colonnes (25 éléments au total). L'accès à la matrice nécessite une instruction de boucle avec des opérations d'indexation. Pour les calculs normaux, nous devons parcourir chaque élément, donc deux boucles imbriquées sont nécessaires. La complexité de ce programme est O(n2). Pour le traçage, puisqu'il suffit de regarder la diagonale principale, l'index de ligne et l'index de colonne seront les mêmes. Donc une seule boucle for suffit. Peut être calculé en temps O(n).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Vous trouverez ci-dessous un algorithme en langage C pour convertir les chiffres romains en nombres décimaux : Algorithme Étape 1 - Démarrer Étape 2 - Lire les chiffres romains au moment de l'exécution Étape 3 - Longueur : = strlen (roman) Étape 4 - Pour i = 0 à Longueur-1 Étape 4.1-switch(roman[i]) Étape 4.1.1-case'm' : &nbs

La comparaison de chaînes lexicographiques signifie que les chaînes sont comparées dans l’ordre du dictionnaire. Par exemple, s'il y a deux chaînes « pomme » et « appel », la première chaîne viendra en dernier car les trois premiers caractères de « application » sont identiques. Ensuite, pour la première chaîne, le caractère est « l » et dans la deuxième chaîne, le quatrième caractère est « e ». Puisque « e » est plus court que « l », il viendra en premier si nous trions lexicographiquement. Les chaînes sont comparées lexicographiquement avant d'être arrangées. Dans cet article, nous verrons différentes techniques pour comparer lexicographiquement deux chaînes en utilisant C++. Utilisation de la fonction compare() dans les chaînes C++ L'objet C++string a une fonction compare()

Les fonctions hyperboliques sont définies à l'aide d'hyperboles au lieu de cercles et sont équivalentes aux fonctions trigonométriques ordinaires. Il renvoie le paramètre de rapport dans la fonction sinus hyperbolique à partir de l'angle fourni en radians. Mais faites le contraire, ou en d’autres termes. Si nous voulons calculer un angle à partir d’un sinus hyperbolique, nous avons besoin d’une opération trigonométrique hyperbolique inverse comme l’opération sinus hyperbolique inverse. Ce cours montrera comment utiliser la fonction sinus hyperbolique inverse (asinh) en C++ pour calculer des angles en utilisant la valeur du sinus hyperbolique en radians. L'opération arc sinus hyperbolique suit la formule suivante -$$\mathrm{sinh^{-1}x\:=\:In(x\:+\:\sqrt{x^2\:+\:1})}, Où\:In\:is\:logarithme naturel\:(log_e\:k)

Les listes chaînées utilisent l’allocation dynamique de mémoire, c’est-à-dire qu’elles grandissent et diminuent en conséquence. Ils sont définis comme des collections de nœuds. Ici, un nœud comporte deux parties, des données et des liens. Les données, liens et listes chaînées sont représentés comme suit - Types de listes chaînées Il existe quatre types de listes chaînées, comme suit : - Liste chaînée simple / Liste chaînée simple Liste chaînée double / Double Liste chaînée simple circulaire Liste chaînée double circulaire Nous utilisons le méthode récursive pour trouver la longueur de la liste chaînée La logique est -intlength(node *temp){ if(temp==NULL) returnl{&n

Une carte est un type spécial de conteneur en C++ où chaque élément est une paire de deux valeurs, à savoir une valeur clé et une valeur mappée. La valeur clé est utilisée pour indexer chaque élément et la valeur mappée est la valeur associée à la clé. Que la valeur mappée soit unique ou non, la clé est toujours unique. Pour imprimer des éléments de carte en C++, nous devons utiliser un itérateur. Un élément dans un ensemble d’éléments est indiqué par un objet itérateur. Les itérateurs sont principalement utilisés avec des tableaux et d'autres types de conteneurs (tels que des vecteurs), et ils disposent d'un ensemble spécifique d'opérations qui peuvent être utilisées pour identifier des éléments spécifiques dans une plage spécifique. Les itérateurs peuvent être incrémentés ou décrémentés pour référencer différents éléments présents dans une plage ou un conteneur. L'itérateur pointe vers l'emplacement mémoire d'un élément spécifique dans la plage. Imprimer une carte en C++ à l'aide d'itérateurs Voyons d'abord comment définir

La fonction renommer modifie un fichier ou un répertoire de son ancien nom à son nouveau nom. Cette opération est similaire à l’opération de déplacement. Nous pouvons donc également utiliser cette fonction de renommage pour déplacer des fichiers. Cette fonction existe dans le fichier d'en-tête de la bibliothèque stdio.h. La syntaxe de la fonction rename est la suivante : intrename(constchar*oldname,constchar*newname); La fonction rename() accepte deux paramètres. L’un est l’ancien nom et l’autre le nouveau nom. Les deux paramètres sont des pointeurs vers des caractères constants qui définissent l'ancien et le nouveau nom du fichier. Renvoie zéro si le fichier a été renommé avec succès ; sinon, renvoie un entier différent de zéro. Lors d'une opération de changement de nom

La science moderne s'appuie fortement sur le concept de nombres pluriels, qui a été établi pour la première fois au début du XVIIe siècle par Girolamo Cardano, qui l'a introduit au XVIe siècle. La formule pour les nombres complexes est a+ib, où a contient le code HTML et b est un nombre réel. Un nombre complexe est dit avoir deux parties : la partie réelle <a> et la partie imaginaire (<ib>). La valeur de i ou iota est √-1. La classe plurielle en C++ est une classe utilisée pour représenter des nombres complexes. La classe complexe en C++ peut représenter et contrôler plusieurs opérations sur les nombres complexes. Voyons comment représenter et contrôler l'affichage de nombres pluriels. Fonction membre imag() Comme mentionné ci-dessus, les nombres complexes sont composés d'une partie réelle et d'une partie imaginaire. Pour afficher la partie réelle, nous utilisons real()

Strncmp est une fonction de bibliothèque prédéfinie, présente dans le fichier string.h, qui est utilisée pour comparer deux chaînes et afficher quelle chaîne est la plus grande. Fonction strcmp (comparaison de chaînes) Cette fonction compare deux chaînes. Il renvoie la différence ASCII du premier caractère non correspondant dans les deux chaînes. Syntaxe intstrcmp(string1,string2); Si la différence est égale à zéro, alors string1=string2. Si la différence est positive, string1>string2. Si la différence est négative, string1<string2. Exemple de fonction strncmp Cette fonction est utilisée pour comparer les n premiers caractères de deux chaînes. chaîne de syntaxe
