十進BASIC 第2掲示板 過去ログ
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にはまりそうです。
中山様 有難うございました。
戻る
mat命令と複素数表示
投稿日:2008年11月18日(火)11時28分38秒所で、電気関係では、4端子網をマトリクス[A,B,C,D]表示します。10進BASICのMAT文に複素表示の値を入れて計算させるには、どうしたら よいでしょうか。A=5+3i B=4-6i C=7+2i D=2-3iなどと入れたら[実数でないと駄目]と拒否されました。また複素数表示のMATの積や逆行列、等もどうするのでしょうか。