三階伴隨矩陣/逆矩陣/行列式及矩陣乘法
這個程式將兩個程式(三階矩陣乘法及三階隨矩陣/逆矩陣及行列式(I)合併為一,所以可以節省一個程式位置,特別適合增大程式容量後使用,合併後程式總長度亦略為節省一些。若果不用計算伴隨矩陣,又想直接得出逆矩陣的數值,可以改用附錄的第二個及第三個程式,但程式長度會長一點。
程式編寫日期: 2007年2月7日
程式需要在 REG Quad 模式下執行,因此在輸入程式前請先按 Mode Mode 2 → 3 進入REG Quad模式。
注意: 藍色的英文字為統計模式中的變數(Σx³ 按 Shift 1 → → 1,Σy 按 Shift 1 → 2,Σxy Shift 1 →3),而 ³√是按shift x³,10x是按shift log。
第一個程式(222 bytes)
Stat clear: ?→M: ?→A: ³√(A-1 DT: ?→B: 1 , B DT:
?→C: 0 , C - Σy DT: ?→A: ?→B: ?→C: ?→D: ?→X:
?→Y: M => Goto 0: B + C10x - 6→B: Y ; 0 DT: Lbl 1:
?→C: ?→Y: ?→M: Σx³C + ΣxyY + ΣyM◢ Fix 0: B:
Rnd: Norm 1: CA + Y Ans + M10x6(B - Ans◢ ; 0 DT:
DC + YX + M Ans◢ Goto 1: Lbl 0: Σx³BY + AXΣy +
DΣxyC - BDΣy - XCΣx³ - ΣxyAY◢ BY - CX◢
ΣyX - ΣxyY◢ ΣxyC - ΣyB◢ CD - AY◢ Σx³Y - ΣyD◢
ΣyA - Σx³C◢ AX - BD◢ ΣxyD - Σx³X◢ Σx³B - ΣxyA
例題1: 計算下列矩陣的乘積:
按 Prog 1 再按 0 EXE (0代表計算三階矩陣乘法)
1 EXE 2 EXE 3 EXE 3 EXE 2 EXE 1 EXE 4 EXE 5 EXE 6 EXE
(第一個矩陣,由左至右,上至下輸入)
1 EXE 3 EXE 2 EXE (輸入第二個矩陣,第一欄的數據)
(顯示13) EXE (顯示11) EXE (顯示31,這三個數值為答案的第一欄)
EXE 2 EXE 1 EXE 1 EXE (輸入第二個矩陣,第二欄的數據)
(顯示7) EXE (顯示9) EXE (顯示19,這三個數值為答案的第二欄)
EXE 1 EXE 3 EXE 3 EXE (輸入第二個矩陣,第三欄的數據)
(顯示16) EXE (顯示12) EXE (顯示37,這三個數值為答案的第三欄)
所以:
計算完結後,請按Mode 1返回正常模式。
例題2: 計算下列矩陣的伴隨矩陣及逆矩陣。
按 Prog 1 再按 1 EXE (1代表計算三階伴隨矩陣及行列式)
2 EXE 1 EXE 3 EXE 7 EXE 4 EXE 6 EXE 8 EXE 9 EXE 7 EXE (顯示行列式的值為40)
EXE (顯示 -26) EXE (顯示 20) EXE (顯示 -6)
EXE (顯示 -1) EXE (顯示 -10) EXE (顯示 9)
EXE (顯示 31) EXE (顯示 -10) EXE (顯示 1)
因此,
計算完結後,請按Mode 1返回正常模式。
程式限制:不可以直接輸入分數,否則可能出現MATH ERROR,若要輸入分數,請用除號代替分號。計算矩陣乘法時,輸入的數據絶對值必須為小於100000的整數,若果望計算矩陣乘法(準確版)可以輸入小數,請使附錄3的第四個程式,但程式會較長。
附錄1: 第二個程式(可直接顯示逆矩陣(不顯示分數),251 bytes)
Stat clear: ?→M: ?→A: ³√(A-1 DT: ?→B: 1 , B DT:
?→C: 0 , C - Σy DT: ?→A: ?→B: ?→C: ?→D: ?→X:
?→Y: M => Goto 0: B + C10x - 6→B: Y ; 0 DT: Lbl 1:
?→C: ?→Y: ?→M: Σx³C + ΣxyY + ΣyM◢ Fix 0: B:
Rnd: Norm 1: CA + Y Ans + M10x6(B - Ans◢ ; 0 DT:
DC + YX + M Ans◢ Goto 1: Lbl 0: Σx³BY + AXΣy +
DΣxyC - BDΣy - XCΣx³ - ΣxyAY→M◢ M-1(BY - CX◢
M-1(ΣyX - ΣxyY◢ M-1(ΣxyC - ΣyB◢ M-1(CD - AY◢
M-1(Σx³Y - ΣyD◢ M-1(ΣyA - Σx³C◢ M-1(AX - BD◢
M-1(ΣxyD - Σx³X◢ M-1(Σx³B - ΣxyA
附錄2: 第三個程式(可直接顯示逆矩陣(顯示分數),260 bytes)
Stat clear: ?→M: ?→A: ³√(A-1 DT: ?→B: 1 , B DT:
?→C: 0 , C - Σy DT: ?→A: ?→B: ?→C: ?→D: ?→X:
?→Y: M => Goto 0: B + C10x - 6→B: Y ; 0 DT: Lbl 1:
?→C: ?→Y: ?→M: Σx³C + ΣxyY + ΣyM◢ Fix 0: B:
Rnd: Norm 1: CA + Y Ans + M10x6(B - Ans◢ ; 0 DT:
DC + YX + M Ans◢ Goto 1: Lbl 0: Σx³BY + AXΣy +
DΣxyC - BDΣy - XCΣx³ - ΣxyAY→M◢ (BY - CX)┘M◢
(ΣyX - ΣxyY)┘M◢ (ΣxyC - ΣyB)┘M◢ (CD - AY)┘M◢
(Σx³Y - ΣyD)┘M◢ (ΣyA - Σx³C)┘M◢ (AX - BD)┘M◢
(ΣxyD - Σx³X)┘M◢ (Σx³B - ΣxyA)┘M
附錄3: 第四個程式(計算矩陣乘法時可輸入小數,246 bytes)
Stat clear: ?→M: -1 DT: ?→A: 1 , A DT: ?→B: ³√B , 0 DT: ?→C:
0 , C - Σy DT: ?→A: ?→B: ?→Y: ?→X: ?→C: ?→D: M => Goto 0:
E 60D→D: E - 60Y , X ; 0 DT: Lbl 1: ?→X: ?→M: ?→Y:
XΣxy + MΣx³ +YΣy◢ ; 0 DT: XA + MB + E 60AnsY◢
MC + E - 60DY→M: Σy→Y: ; 1 DT: Σy - Y→Y: YX +M◢ ; -1 DT:
Goto 1: Lbl 0: ΣxyBD - CYΣxy + ACΣy + YΣx³X - BXΣy - ADΣx³◢
BD - YC◢ ΣyC - Σx³D◢ Σx³Y - ΣyB◢ XY - AD◢ ΣxyD - ΣyX◢
ΣyA - ΣxyY◢ AC - BX◢ Σx³X - ΣxyC◢ ΣxyB - Σx³A