Maison  >  Article  >  développement back-end  >  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

烟雨青岚
烟雨青岚original
2020-06-19 13:30:076178parcourir

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;

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;
}
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
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!

Déclaration:
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