mat命令と複素数表示

 投稿日:2008年11月18日(火)11時28分38秒
  最近10進BASICのブルーバックスの本を購入、その虜になってます。
所で、電気関係では、4端子網をマトリクス[A,B,C,D]表示します。10進BASICのMAT文に複素表示の値を入れて計算させるには、どうしたら よいでしょうか。A=5+3i B=4-6i C=7+2i D=2-3iなどと入れたら[実数でないと駄目]と拒否されました。また複素数表示のMATの積や逆行列、等もどうするのでしょうか。
 

Re: mat命令と複素数表示

 投稿者:山中和義  投稿日:2008年11月18日(火)11時55分10秒
  > No.95[元記事へ]

大熊 正さんへのお返事です。


BASICの編集画面に「複素数」ボタンがあります。オンの状態で複素数の計算が可能です。
通常は、下記のようにプログラムに記述します。

2×2正方行列の各要素に値を設定するプログラム

●例1

OPTION ARITHMETIC COMPLEX !複素数を扱う

LET j=SQR(-1) !虚数単位 ※電気系はjを使う

!M=(a b)
!  (c d)
DIM M(2,2) !2×2の正方行列

LET M(1,1)=5+3*j !a
LET M(1,2)=4-6*j !b
LET M(2,1)=7+2*j !c
LET M(2,2)=2-3*j !d

MAT PRINT M;

END


●例2 ※この場合はjは必要ない

OPTION ARITHMETIC COMPLEX !複素数を扱う

!M=(a b)
!  (c d)
DIM M(2,2) !2×2の正方行列

LET M(1,1)=COMPLEX(5,3) !a
LET M(1,2)=COMPLEX(4,-6) !b
LET M(2,1)=COMPLEX(7,2) !c
LET M(2,2)=COMPLEX(2,-3) !d

MAT PRINT M;

END

複素数は、括弧付きの数字の組(実部、虚部)で表示されます。


掛け算は
  DIM A(2,2),B(2,2),C(2,2),T(2,2)
  MAT T=A*B !T=AB

  MAT T=A*B !T=ABC
  MAT T=T*C
と記述します。
加減乗は2項の演算のみですから、3項以上は2項ずつに分解した記述してください。


定数倍は、MAT T=(2)*A !T=2A
逆行列は、MAT T=INV(A) !T=A^-1
転置行列は、MAT T=TRN(A) !T=tA
行列式は、LET p=DET(A) !p=|A|
これらは1項のみです。

行列の計算には実行列と複素行列の区別はありません。
 

> No.95[元記事へ]

 投稿日:2008年11月18日(火)19時03分13秒
  早速の御回答有難うございます。
早速明日から、色々やって見ます。
こんなに簡単に複素数のMATガできるなら、ますます10進BASICにはまりそうです。
中山様 有難うございました。
 

戻る