Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - Русский -
Scilabヘルプ >> Elementary Functions > Complex > complex

complex

複素数を計算する.

呼び出し手順

c=complex(a)
c=complex(a,b)

引数

a

1行1列またはn行m列の倍精度実数行列, 実部. a が虚部を有する場合, エラーが発生します.

b

1行1列またはn行m列の倍精度実数行列, 虚部 (デフォルト b=0). b が虚部を有する場合, エラーが発生します.

c

n行m列の倍精度複素行列, 複素数.

説明

c=complex(a) は, aを実部, 0 を虚部とする複素数を作成します.

c=complex(a,b) は実部a , 虚部bの複素数を作成します.

この関数は, 特に複素数演算が%inf または%nan のような特定の浮動小数点数と競合する場合に, a+%i*bのような式の代替手段となります.

以下の例では,実部と虚部から複素数を生成します.

complex(1,2)
complex([1 2],[3 4])

a のみが指定された場合, 虚部は0に設定されます.

complex([1 2 3])

a がスカラーで b が 行列の場合, 結果 c は, bと同じ大きさとなります. 同様に, b がスカラーで a が行列の場合, 結果 caと同じ大きさになります.

c = complex([1 2 3], 4)
c = complex(1, [2 3 4])

ab が 異なる大きさの行列の場合,以下のセッションのような エラーが発生します.

 
-->complex(ones(2,3),ones(4,5))
 !--error 10000 
complex: Incompatible input arguments #1 and #2: Same sizes expected.
at line      33 of function complex called by :  
complex(ones(2,3),ones(4,5))
 

complex 関数の目的は,NaNや無限大のような IEEE 浮動小数点数を管理することです. 以下の例では,複素数演算を使用する場合, 実部と虚部が複合体となる複素数を作成するのは 容易ではないことを示します. これは,%i%infの積が (0+%i) * (%inf+%i*0)と評価されるためです. この結果は,中間式0*%inf,つまり, %nanとなります.

 
-->%inf+%i*%inf
 ans  =
    Nan + Inf 
 

この問題の解決策は complex関数を使用することです.

 
-->complex(%inf,%inf)
 ans  =
    Inf + Inf 
 

参照

  • imult — 虚数単位 i を乗じる
Scilab Enterprises
Copyright (c) 2011-2015 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Wed Jun 15 08:35:23 CEST 2016