2017年4月18日 星期二

octave 解線性變換

% 代表註解符號
%mirror X (對x軸的鏡射變換矩陣)
mirX=[1 0; 0 -1]


在octave提示字元 > 下打入  mirX=[1 0; 0 -1],即會出現下面結果
 octave:> mirX=[1 0; 0 -1]
mirX =

   1   0
   0  -1

 

%mirror Y (對y軸的鏡射變換矩陣) 
 mirY=[-1 0; 0 1]

octave:> mirY=[-1 0; 0 1]
mirY =

  -1   0
   0   1


 

%mirror O (對原點的鏡射變換矩陣)
mirO=[-1 0 ; 0 -1]



octave:> p=[1 2]
p =

   1   2


%p的轉置 p'
 octave:> p=[1 2]'
p =

   1
   2


% p mirror X
mirX*p

%p mirror Y
mirY*p

%p mirror O
mirO*p

% mirror Y *(mirror X *p) 先對x軸鏡射 , 再對y軸鏡射
mirY*(mirX*p)

mirY*mirX*p

檢驗交換性                        
                                          ?
先對x軸鏡射 , 再對y軸鏡射= 先對y軸鏡射 , 再對x軸鏡射
                                            ?
先對x軸鏡射 , 再對原點鏡射= 
先對原點鏡射 , 再對x軸鏡射
                                          ?
先對x軸鏡射 , 再對y軸鏡射=對原點鏡射



%mirX*mirY=mirY*mirX(有交換性)
mirX*mirY
mirY*mirX

%mirX*mirO=mirO*mirX(有交換性)
mirX*mirO
mirO*mirX

%mirX*mirY=mirO
mirX*mirY

%mirX*mirO=mirY
mirX*mirO

%mirY*mirO=mirX
mirY*mirO

%求線性變換矩陣M,N,P,Q; T
%         M          N          P          Q
%[1  1]-->[ 6 6]-->[9 6]-->[9 9]-->[-9 9]
%                      T=QPNM
%[1  1]---------------------------->[-9 9]
M=[6 0; 0 6]
N=[1 1/2; 0 1]
P=[1 0; 1/3 1]
Q=[-1 0;0 1]
T=Q*P*N*M

x=[1 1]'
Mx=M*x
Nx=N*Mx
Px=P*Nx
Qx=Q*Px

T*x


單位矩陣Identity

octave:> eye(2)
ans =

Diagonal Matrix

   1   0
   0   1

octave:> eye(3)
ans =

Diagonal Matrix

   1   0   0
   0   1   0
   0   0   1


零矩陣
octave:> zeros(2)
ans =

   0   0
   0   0

octave:> zeros(3)
ans =

   0   0   0
   0   0   0
   0   0   0

octave:> zeros(3,2)
ans =

   0   0
   0   0
   0   0



元素為1
octave:> ones(2)
ans =

   1   1
   1   1

octave:> ones(3)
ans =

   1   1   1
   1   1   1
   1   1   1

octave:> ones(3,2)
ans =

   1   1
   1   1
   1   1




行列式(determinat), det()
 A=[1 2;3 4]
 B=[4 3; 2 1]

octave:> det(A)
ans = -2


octave:> det(B)
ans = -2


det(AB)=det(BA)=det(A)det(B)

octave:> det(A*B)
ans =  4
octave:> det(B*A)
ans =  4
octave:> det(A)*det(B)
ans =  4



轉置矩陣transpose, A的轉置矩陣,寫為A'
det(A')=det(A)

octave:> A'
ans=

   1   3
   2   4

octave:> det(A')
ans = -2


(AB)'=B'A'

A=[1 2;3 4]
B=[4 3; 2 1]
A'
B'
(A*B)'
B'*A'


反矩陣(inverse)
A=[3 2; 2 -3]
inv(A)


求[3 2; 2 -3]x=[1 ;31]
即3x+2y=1
  2x-3y=31
其中
A=[3 2; 2 -3]
x=[x;y]
b=[1;31]

即,我們可用矩陣的表示法來解聯立方程式

A=[3 2; 2 -3]
b=[1;31]
x=inv(A)*b


驗證Ax=b ?
A*x