Maison > développement back-end > Tutoriel C#.Net > Explication détaillée des opérations sur les nombres complexes en langage C

Explication détaillée des opérations sur les nombres complexes en langage C

烟雨青岚
Libérer: 2020-06-19 13:30:07
original
6208 Les gens l'ont consulté

Explication détaillée des opérations sur les nombres complexes en langage C

Explication détaillée des opérations sur les nombres complexes en langage C

Remarque : le type complexe a été introduit à partir de la norme c99, mais l'implémentation spécifique ne fait pas partie de la norme et est implémentée par chaque compilateur Les normes peuvent être différentes. Pour des informations spécifiques, veuillez vérifier les normes de mise en œuvre des compilateurs concernés. Cet article concerne le compilateur gcc.

Les nombres complexes sont très importants dans les opérations mathématiques. Lors de l'écriture d'opérations numériques ou d'algorithmes, nous utiliserons le concept de nombres complexes. Alors, comment les nombres complexes sont-ils représentés dans le langage C/C++ ? Nous les présenterons ensuite un par un.

Nombres complexes en langage C

En mathématiques, un nombre complexe peut être défini comme (z=a + bi). C La langue a introduit les types pluriels avec ISO C99. Il est défini via complex.h. Nous pouvons utiliser des symboles de type complex , __complex__ ou _ComplexI pour le représenter. Il existe trois types de pluriels en langage C, à savoir float complex, double complex, long double complex. La différence entre eux est que les types de données représentant la partie réelle et l'étape imaginaire des nombres complexes sont différents. complex Il s'agit en fait d'un tableau. Il y a deux éléments dans le tableau, un représentant la partie réelle du nombre complexe et un représentant la partie imaginaire du nombre complexe.

Définir un pluriel

Dans le fichier d'en-tête complex.h, deux macros _Complex_I et I sont définies pour créer un pluriel.

Macro: const float complex _Complex_I;
Macro: const float complex  I;
Copier après la connexion

Ces deux macros représentent des nombres complexes (0+1i). Nous pouvons utiliser ce nombre complexe unitaire pour créer n'importe quel nombre complexe.

#include <stdio.h>
#include <complex.h>

int main(int argc, char *argv[])
{
  complex  double  a = 3.0 + 4.0 * _Complex_I;
  __complex__ double b = 4.0 + 5.0 * _Complex_I;
  _Complex  double c = 5.0 + 6.0 * _Complex_I;

  printf("a=%f+%fi\n", creal(a),cimag(a));
  printf("b=%f+%fi\n", creal(b), cimag(b));
  printf("c=%f+%fi\n", creal(c), cimag(c));



  printf("the arg of a is %d", carg(a));

  return 0;
}
Copier après la connexion
rrree

Fonctions d'opération de base pour les nombres complexes

Dans le fichier d'en-tête complex.h, certaines fonctions pour les opérations de base sur les nombres complexes sont définies.

函数功能
creal获取复数的实部
cimag获取复数的虚部
conj获取复数的共轭
carg获取,复平面上穿过原点和复数在复平面表示的点,的直线和实数轴之间的夹角
cproj返回复数在黎曼球面上的投影

Les opérations numériques sur les nombres complexes

Les types de nombres complexes peuvent également être effectués comme les types numériques ordinaires, ~int, double, long~ en utilisant directement l'opération numérique symboles.

a=3.000000+4.000000i
b=4.000000+5.000000i
c=5.000000+6.000000i
the arg of a is 176
Copier après la connexion
rrree

Merci à tous d'avoir lu. L'avez-vous appris ?

Cet article est reproduit à partir de : https://blog.csdn.net/duandianR/article/details/70846638

Tutoriel recommandé : "Langage C"

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!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal