前回 NO95 NOの御回答有難うございました。山中さんを中山さんと間違えて投稿しました。失礼を御許しください。
その後だいぶ10進BASICを進めてますが、下記の不具合でストップしてます。
MAT T=INV(A) が出来ないのです。
OPTION ARITHMETIC COMPLEX
LET j=SQR(-1)
LET R1=5000
LET R2=5000
LET C1=0.1*10^( -6 )
LET C2=0.1*10^( -6 )
LET F=100
LET SZ=0.001
LET NP=4
LET ZC1=1/(2*PI*F*C1)
LET ZC2=1/(2*PI*F*C2)
OPTION BASE 1
PRINT "ZCI=";ZC1
DIM A(NP,NP),B(NP,NP),T(NP,NP),E1(NP)
LET A(1,2)=1/R1+SZ*j
LET A(2,3)=1/R2+SZ*j
LET A(2,4)=SZ+1/ZC1*j
LET A(3,4)=SZ+1/ZC2*j
MAT PRINT A
LET E1(1)=1
LET E1(4)=0
PRINT"下記のごとくMAT PRINT E1とやると横に一文字になる。"
MAT PRINT E1
PRINT"下記のごとくMAT PRINT USING REPEAT$RIで縦に一文字並び良
好。"
MAT PRINT USING REPEAT$(" #.#### ",1):E1
MAT T=INV(A)
STOP
早速ですが、上記の文を作り、マトリクス[A]を作り実行すると、最後の MAT T=INV(A)で
「EXTYPE 3009 引数が定義外の値」となり、ストップします。
どこが不良の原因でしょうか。
また、一列のE(5)などを作り、PRINT E をやると、横一列に表示します。
四端子網の A*E 等は大丈夫でしょうか。縦に変更してT=TRAN(E) そしてA*T でしょうか。
> 早速ですが、上記の文を作り、マトリクス[A]を作り実行すると、最後の MAT T=INV(A)で
> 「EXTYPE 3009 引数が定義外の値」となり、ストップします。
> どこが不良の原因でしょうか。
行列Aが、逆行列を持たない行列だからです。
Aは筆算で逆行列は存在しますか?
> また、一列のE(5)などを作り、PRINT E をやると、横一列に表示します。
> 四端子網の A*E 等は大丈夫でしょうか。縦に変更してT=TRAN(E) そしてA*T でしょうか。
DIM A(3,3)
DIM X(3),B(3)
MAT B=A*X !(3行,3列)(3行,1列)=(3行,1列)として計算される
MAT PRINT B !横へ
MAT B=X*A !(1行,3列)(3行,3列)=(1行,3列)として計算される
MAT PRINT B !横へ
END
この場合、X,Bはベクトル扱いになります。
X,Bを行列として扱う場合は、(X,Bに対してTRNを適用する場合)
行または列のみの行列は、たとえば
3行1列なら DIM B(3,1)
1行3列なら DIM B(1,3)
としてください。
mat命令と複素数計算
投稿日:2008年11月21日(金)15時11分26秒前回 NO95 NOの御回答有難うございました。山中さんを中山さんと間違えて投稿しました。失礼を御許しください。
その後だいぶ10進BASICを進めてますが、下記の不具合でストップしてます。
MAT T=INV(A) が出来ないのです。
OPTION ARITHMETIC COMPLEX
LET j=SQR(-1)
LET R1=5000
LET R2=5000
LET C1=0.1*10^( -6 )
LET C2=0.1*10^( -6 )
LET F=100
LET SZ=0.001
LET NP=4
LET ZC1=1/(2*PI*F*C1)
LET ZC2=1/(2*PI*F*C2)
OPTION BASE 1
PRINT "ZCI=";ZC1
DIM A(NP,NP),B(NP,NP),T(NP,NP),E1(NP)
LET A(1,2)=1/R1+SZ*j
LET A(2,3)=1/R2+SZ*j
LET A(2,4)=SZ+1/ZC1*j
LET A(3,4)=SZ+1/ZC2*j
MAT PRINT A
LET E1(1)=1
LET E1(4)=0
PRINT"下記のごとくMAT PRINT E1とやると横に一文字になる。"
MAT PRINT E1
PRINT"下記のごとくMAT PRINT USING REPEAT$RIで縦に一文字並び良
好。"
MAT PRINT USING REPEAT$(" #.#### ",1):E1
MAT T=INV(A)
STOP
早速ですが、上記の文を作り、マトリクス[A]を作り実行すると、最後の MAT T=INV(A)で
「EXTYPE 3009 引数が定義外の値」となり、ストップします。
どこが不良の原因でしょうか。
また、一列のE(5)などを作り、PRINT E をやると、横一列に表示します。
四端子網の A*E 等は大丈夫でしょうか。縦に変更してT=TRAN(E) そしてA*T でしょうか。