[ 更新 ]更好的方法见[用抽象代数讨论仿射变换和仿射空间中的坐标变换] ,以下是之前的内容。
以下的推导 结论是正确的,可是过程有点懵。
以下使用行向量:
e1=(1,0,0)
e2=(0,1,0)
e3=(0,0,1)
i, j, k是三个线性无关的向量。它们在e1,e2,e3坐标系下的坐标也记作i,j,k
i’, j’, k’是三个线性无关的向量,它们在e1,e2,e3坐标系下的坐标也记作i’, j’, k’
denote???ijk???=A,???i′j′k′???=B
<script type="math/tex; mode=display" id="MathJax-Element-32">denote \quad \begin{bmatrix}i\\j\\k\end{bmatrix}=A,\begin{bmatrix}i‘\\j‘\\k‘\end{bmatrix}=B</script>
已知点P相对于Oijk的坐标是(x,y,z)
则点P相对于O’i’j’k’的坐标:
(x′,y′,z′)=((x,y,z)A+(O?O′))B?1
<script type="math/tex; mode=display" id="MathJax-Element-33">(x‘,y‘,z‘)=((x,y,z)A+(O-O‘))B^{-1}</script>
若B是正交矩阵。就不用求逆了,求转置就是。
特别地,
若O=(0,0,0),i=e1,j=e2,k=e3,则
(x′,y′,z′)=((x,y,z)?O′))B?1
<script type="math/tex; mode=display" id="MathJax-Element-34">(x‘,y‘,z‘)=((x,y,z)-O‘))B^{-1}</script>
推导
设点P相对于O’i’j’k’的坐标是(x’,y’,z’)
∵P=O+(x,y,z)A=O′+(x′,y′,z′)B
<script type="math/tex; mode=display" id="MathJax-Element-4">\because P =O+(x,y,z)A=O‘+(x‘,y‘,z‘)B</script>
∴(x′,y′,z′)=((x,y,z)A+(O?O′))B?1
<script type="math/tex; mode=display" id="MathJax-Element-5">\therefore(x‘,y‘,z‘)=((x,y,z)A+(O-O‘))B^{-1}</script>
补充
记 B=AM(M=A?1B)<script type="math/tex" id="MathJax-Element-6">B=AM\quad (M=A^{-1}B)</script>,即M是把i,j,k变换到i’,j’,k’的变换矩阵,
∴(x′,y′,z′)=((x,y,z)A+(O?O′))M?1A?1
<script type="math/tex; mode=display" id="MathJax-Element-7">\therefore(x‘,y‘,z‘)=((x,y,z)A+(O-O‘))M^{-1}A^{-1}</script>
特别地。
若O=(0,0,0),i=e1,j=e2,k=e3,则
(x′,y′,z′)=((x,y,z)?O′))M?1andM=B
<script type="math/tex; mode=display" id="MathJax-Element-8">(x‘,y‘,z‘)=((x,y,z)-O‘))M^{-1}\quad and \quad M=B</script>
应用
实际应用中,用到的一般都是O=(0,0,0),i=e1,j=e2,k=e3的特殊情况。
这是由于:问题在描写叙述O’i’j’k’坐标的时候一般都是相对于Oikj而言的;
这里没有绝对的坐标系,仿射空间中不论什么一个点都看以看成(0,0,…0),随意一组基都能够看成{(1,0,…0), (0,1,…0), (0,0,…1)}。
(x,y,z,1)[M?1?O′M?101]=(x′,y′,z′,1)
<script type="math/tex; mode=display" id="MathJax-Element-9">(x,y,z,1)\begin{bmatrix}
M^{-1}& 0\ -O‘M^{-1}& 1 \\end{bmatrix}=(x‘,y‘,z‘,1)</script>
[M?1?O′M?101]=[MO′01]?1
<script type="math/tex; mode=display" id="MathJax-Element-10">\begin{bmatrix}
M^{-1}& 0\ -O‘M^{-1}& 1 \\end{bmatrix}=\begin{bmatrix}
M& 0\ O‘& 1 \\end{bmatrix}^{-1}</script>
换个角度理解
点P不动。把坐标架O,i,j,k变换到O’,i’,j’,k’,则变换矩阵是(MO′01)<script type="math/tex" id="MathJax-Element-11">\bigl( \begin{smallmatrix} M & 0 \\ O‘ & 1 \end{smallmatrix} \bigr)</script>, M=B,
就相当于 坐标架不动,点P逆着上述变换,变换到新坐标。
变换的两种方式
①先原地变换坐标架,再平移坐标架
[B001][IO′01]=[BO′01]
<script type="math/tex; mode=display" id="MathJax-Element-12">\begin{bmatrix}
B &0 \ 0&1 \\end{bmatrix}
\begin{bmatrix}
I &0 \O‘ & 1 \\end{bmatrix}
=\begin{bmatrix}
B &0 \O‘ &1 \\end{bmatrix}</script>
②先平移坐标架。再
相对平移之后的原点
变换坐标架
[IO′01]X=[BO′01]X=[BO′?O′B01]
<script type="math/tex; mode=display" id="MathJax-Element-13">\begin{bmatrix}
I &0 \O‘ & 1 \\end{bmatrix}X=\begin{bmatrix}
B &0 \O‘ &1 \\end{bmatrix}\qquad X=\begin{bmatrix}
B &0 \O‘-O‘B &1 \\end{bmatrix}</script>
X能够看成先平移回原点,相对原点 原地变换 坐标架,再平移过去:
X=[B?O′B01][IO′01]
<script type="math/tex; mode=display" id="MathJax-Element-14">X=\begin{bmatrix}
B &0 \-O‘B &1 \\end{bmatrix}\begin{bmatrix}
I &0 \O‘&1 \\end{bmatrix}</script>
[B?O′B01]=[I?O′01][B001]
<script type="math/tex; mode=display" id="MathJax-Element-15">\begin{bmatrix}
B &0 \-O‘B &1 \\end{bmatrix}=\begin{bmatrix}
I &0 \-O‘ &1 \\end{bmatrix}\begin{bmatrix}
B &0 \0&1 \\end{bmatrix}</script>
注意到 X 与 [B001]<script type="math/tex" id="MathJax-Element-16">\bigl[ \begin{smallmatrix} B & 0 \\ 0 & 1 \end{smallmatrix} \bigr]</script> 是类似矩阵,正是同一(4维的)线性变换在不同基下的坐标表示。1
- http://blog.csdn.net/u010476094/article/details/50551014 ?
<script type="text/javascript"> $(function () { $(‘pre.prettyprint code‘).each(function () { var lines = $(this).text().split(‘\n‘).length; var $numbering = $(‘
‘).addClass(‘pre-numbering‘).hide(); $(this).addClass(‘has-numbering‘).parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($(‘
‘).text(i)); }; $numbering.fadeIn(1700); }); }); </script>