ホームページ  >  記事  >  バックエンド開発  >  プログラミングを学ぶときにC言語の複素数演算について知っておくべきこと

プログラミングを学ぶときにC言語の複素数演算について知っておくべきこと

烟雨青岚
烟雨青岚転載
2020-06-17 12:01:214139ブラウズ

プログラミングを学ぶときにC言語の複素数演算について知っておくべきこと

#プログラミングを学ぶときに C 言語の複素数演算について知っておくべきこと

複素数は C 言語で非常に重要です。数学的演算: 数値演算やアルゴリズムを記述するときは、複素数の概念を使用します。では、C/C言語では複素数はどのように表現されるのでしょうか?次からは一つずつ紹介していきます。

C 言語の複素数

数学では、複素数は (z=a bi) の形式で定義できます。 C 言語は ISO C99 で複数の型を導入しました。これはcomplex.hで定義されています。これを表すには、 complex 、 __complex__ 、または _ComplexI 型のシンボルを使用できます。 C 言語には、float 複素数、double 複素数、long double 複素数という 3 つの複素数型があります。両者の違いは、複素数の実数部と虚数部を表すデータ型が異なることです。 Complex は実際には配列であり、配列には 2 つの要素があり、1 つは複素数の実数部を表し、もう 1 つは複素数の虚数部を表します。

複素数を定義する

複素数を作成するために、complex.h ヘッダー ファイルで 2 つのマクロ _Complex_I と I が定義されています。

Macro: const float complex _Complex_I;
Macro: const float complex  I;

これら 2 つのマクロは複素数 (0 1i) を表します。この単位複素数を使用して任意の複素数を作成できます。

#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;
}
a=3.000000+4.000000i
b=4.000000+5.000000i
c=5.000000+6.000000i
the arg of a is 176

複素数の基本演算関数

complex.h ヘッダー ファイルで、複素数の基本演算のための関数をいくつか定義します。

Function function

creal 複素数の実数部を取得します。

cimag 複素数の虚数部を取得します。

conj 複素数の共役を取得します。複素数

carg 原点を通る複素平面上の直線と複素平面上の複素数で表される点と実軸との間の角度を取得します

cproj を返します。リーマン球面への複素数の投影

複素数の数値演算 #複素数型は、通常の数値型と同様に数値演算を実行するために直接使用することもできます。 int、double、long~、数値演算記号を使用します。

#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;
  complex double d =a + b;
  complex double f = a *b ;
  complex double g = a/b;
  printf ("d=a+b=%f+%fi\n",creal(d),cimag(d));
  printf ("f=a*b=%f+%fi\n",creal(f),cimag(f));
  printf("g=a/b=%f+%fi\n",creal(g),cimag(g));
  return 0;
}
d=a+b=7.000000+9.000000i
f=a*b=-8.000000+31.000000i
g=a/b=0.780488+0.024390i

皆さん、読んでいただきありがとうございます。多くの利益が得られることを願っています。

この記事は以下から転載しています: https://blog.csdn.net/duandianR/article/details/70846638

推奨チュートリアル: 「

C 言語

以上がプログラミングを学ぶときにC言語の複素数演算について知っておくべきことの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。