ホームページ  >  記事  >  バックエンド開発  >  C言語による複素数演算を詳しく解説

C言語による複素数演算を詳しく解説

烟雨青岚
烟雨青岚オリジナル
2020-06-19 13:30:076163ブラウズ

C言語による複素数演算を詳しく解説

##C 言語での複素数演算の詳細な説明

注: 複合型は c99 標準から導入されましたが、特定の実装は標準の一部ではなく、各コンパイラによって実装されます。詳細については、関連するコンパイラの実装規格を確認してください。

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

C 言語の複素数

数学では、複素数は (z=a bi) の形式で定義できます。

C

言語は、ISO C99 で複数の型を導入しました。これは complex.h で定義されています。これを表すには、 complex__complex__ 、または _ComplexI 型表記を使用できます。 C 言語には、float complexdouble complexlong double complex という 3 つの複素数型があります。両者の違いは、複素数の実数部と虚数部を表すデータ型が異なることです。 complex これは実際には配列です。配列には 2 つの要素があり、1 つは複素数の実数部を表し、もう 1 つは複素数の虚数部を表します。

複素数の定義

2 つのマクロ

_Complex_I

complex.h ヘッダー ファイルで定義されていますI で複数の番号を作成します。 <pre class="brush:php;toolbar:false;">Macro: const float complex _Complex_I; Macro: const float complex I;</pre>これら 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##creal複数形を取得する数値 実数部cimag複素数の虚数部を取得しますconj複素数の共通部分を取得します Yokecarg原点を通る複素平面上の直線と複素数が表す点との間の角度を取得します複素平面と実軸の数値cprojリーマン球上の複素数の射影を返します複素数の数値演算
Function

複素数型では、通常の数値型 ~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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。