HP Prime and Casio
Prizm: Orthogonal Matrix Test
For the
square matrix M, it is orthogonal when either of the following conditions are
met:
(I)
M *
M^T = M^T * M = I
(II)
M^1
= M^T
The program presented
on this blog entry will use the first test.
Since matrices, unfortunately, cannot be directly compared on the Casio
graphing calculators, a work around with two FOR loops is implemented.
HP Prime Program ORTHOG
EXPORT ORTHOG(m)
BEGIN
// 20161101 EWS
// orthogonal test
LOCAL n,p,s;
s≔SIZE(m);
s≔s(1);
n≔TRN(m)*m;
p≔IDENMAT(s);
IF n==p THEN
RETURN 1;
ELSE
RETURN 0;
END;
END;
Casio Prizm Program ORTH
1 → A
“MATRIX:”? → Mat
Z
Dim Mat Z → List
26
List 26[1] → S
(Trn Mat Z * Mat
Z) – Identity S → Mat Y
For 1 → R To S
For 1 → C To S
If Mat Y[R,C] ≠ 0
Then
0 → A
Break
IfEnd
Next
Next
A
Results: 0 for a nonorthogonal matrix, 1 for an
orthogonal matrix
Example of
an orthogonal matrix takes the form of a two dimension rotate matrix:
cos θ

sin θ

sin θ

cos θ

For example,
let θ = 0.2 rad.
This blog is
property of Edward Shore, 2016.
No comments:
Post a Comment