三階矩陣乘法

程式編寫日期: 2006年3月17日 修改日期: 2008年1月3日

第一個程式可以計算一個 3 × 3 整數矩陣及另一個 3 × n矩陣的乘積,其中 n是正整數。 第二個及第三個程式沒有整數的限制,第二個程式較短,但準確度低一點,第三個程式準確度很高,但程式較長一點。

程式需要在 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。

 

第一個程式(整數版,128 byes)

Stat clear: ?→M: ³√(M-1 DT: ?→X: ?→Y: 1 , X + Y10x-6 DT:

?→M: 0 , M - Σy DT: ?→A: ?→B: ?→C: ?→D: ?→M: M ; 0 DT:

Lbl 0: ?→X: ?→Y: ?→M: Fix 0: Σxy: Rnd: Norm 1:

XΣx³ + YAns + M10x6(Σxy - Ans◢ XΣy + YA + MB◢ ; 0 DT:

XC + YD + MAns◢ Goto 0

程式限制: 第一個矩陣第二及第三個輸入的數據,絶對值必須為小於100000的整數。

 

第二個程式(小數精簡版,137 byes)

Stat clear: ?→M: ³√(M-1 DT: ?→M: 1 , M DT: ?→M:

?→A: 0 , A - Σy DT: ?→B: ?→C: ?→D: ?→X: ?→A:

³√M , X ; 0 DT: Lbl 0: ?→X: ?→Y: ?→M:

XΣx³ + YΣxy + MAns³◢ XΣy + YB + MC◢

DX + MA→X: Σy→M: ; 1 DT: Σy - M→M: ; -1 DT:

MY + X◢  ; 0 DT: Goto 0

程式限制: 程式雖然可以接受小數,但可能存在計算誤差,為了被免誤差出現,所以輸入的數值的絶對值不宜太大或太小,建議最大的絶對值小於106, 除了輸入0外,最小的位值為10-5

 

第三個程式(小數及有效數字準確版,156 byes)

Stat clear: -1 DT: ?→M: 1 , M DT: ?→M: ³√M , 0 DT: ?→M:

0 , M - Σy DT: ?→A: ?→B: ?→M: ?→X: ?→C: ?→D: D10x60→D:

M10x-60 , X ; 0 DT: Lbl 0: ?→X: ?→Y: ?→M:

XΣxy + YΣx³ +MΣy; 0 DT: XA + YB + AnsM10x60◢

YC + DM10x-60→Y: Σy→M: ; 1 DT: Σy - M→M:

MX +Y◢ ; -1 DT: Goto 0

程式限制: 無特別限制。

 

例題: 計算下列矩陣的乘積:

按 Prog 1  再按 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,這三個數值為答案的第三欄)

所以:

 

註1: 若果輸入的乘數矩陣大於或等於 3×4 矩陣時,執行程式有可能出現"Data Full",只要再按 AC 1 (即選用Edit OFF),程式可回復正常執行

註2: 第二個程式輸入第四個數值時,不可以直接輸入分數,否則會出現Math ERROR,若要輸入分數請以除號代替分號輸入即可。

 

返回 fx-3650P及SC-185程式集

Free Web Hosting