一点关于矩阵迭代的东西

  1. 引言
  2. 小公式推导
  3. 解法
  4. 差分迭代?
  5. 公式代码

引言

自小学第一次做Fibonacci找规律,就感受到森森恶意……高中第一次看见通项公式,也看不太懂。后来发现,二阶矩阵的迭代就可以表示。

通项公式:

$$
a_n=\frac{1}{\sqrt{5}}
\left[
\left(
\frac{1+\sqrt{5}}{2}
\right)^n -
\left(
\frac{1-\sqrt{5}}{2}
\right)^n
\right]
$$

当然,对于这一类迭代问题,更常用的解法是组合里的母函数法,但我仍旧觉得矩阵迭代是一种更优美的,合乎直觉的方案。本来这个文档只发布了草稿,但最近看到TIT上一篇做Polar码分析的论文Finite-Length Scaling for Polar Codes,作者在Part3 Heuristic Derivation for the BEC中的数值估计完全沿用了矩阵迭代的思路,结论很漂亮,于是把推导补充完整后发布了post。

直觉地考虑,如果一个东西可以表示为矩阵迭代,就可以用矩阵的特征根对原迭代行为进行分析。如果矩阵:

  • 最大根范数>1,那么无穷次迭代后体现出趋于无穷的不稳定行为;
  • 最大根范数=1,则构成一个稳定系统,无穷次迭代后仅由范数=1的根决定其行为;
  • 最大根范数<1,则无穷次迭代后收敛到0,不产生任何行为。

以信道编码为例,我们通常考虑的编码定理都是在码长n趋于无穷时的渐近结论,这对应着无穷次迭代;如果想要分析非渐近行为,那么可以对应分析矩阵范数<1的那些根。这是一种很有意思的数值估计方法。

至于Fibonacci,原理还是很简单的:通项公式记为矩阵A,将前两项记为列向量$v_0$,则每两项就可以看为前两项的,关于A的一个线性变换。把$v_0$拆成A特征向量的组合,不停乘以A就好了。很巧的是,Fibonacci的通项公式写成矩阵模式,刚好是个实对称矩阵,显然有两个线性无关的特征向量,那么随便给两个初项写成的列向量一定能被它俩表示,就一定有解。这个例子我印象里是在Gilbert Strang一本叫应用线性代数的书里读到的。

总而言之就是,太漂亮了!

小公式推导

image-20240502173118173

  • 就是迭代。利用矩阵的相似对角化,和$AX=kX$大批量化简迭代中的$P^{-1}P$部分,剩下的对角阵就会变得相当好看。

解法

image-20240502173205719

差分迭代?

btw,上次解了一下银行的某些利率问题——在观察银行的利率周期从一年逐渐向一个月,一天……递减时,利率的值实际上是增加了的——事实上是趋向于e。这个从离散利率到连续利率的过渡可以很容易从e的定义式里找出。e的指数函数似乎总是比较特殊的,例如它求导形式不变,只改变系数的这一特点,很容易让人联想到矩阵最根本的特征值与特征向量——事实上他们确实很相关。在将单阵对角化以后,一个只与特征值和特征向量(或许可以写为标准正交阵的形式)相关的迭代方程就出现了。

公式代码

博客上数学公式的显示寄了,代码贴在下面……

\begin{align}
&\color{blue}\textbf{Formula:}\\
&\text{if matrix }A=A_{n\times n}\text{ has n linearly independent eigenvecters }X_1,X_2\cdots X_n,\\
&\color{red}{\text{any vector U in the space is the linear combination of A's eigenvectors.}} \\
&\qquad U=m_1X_1 +m_2X_2 +\cdots+m_nX_n = 
    \left[\begin{matrix}
        \ &\ &\ \\
        X_1&X_2&\cdots&X_n\\
        \ &\ &\ \\
    \end{matrix}\right]
    \left[\begin{matrix}
        m_1&&&\\
        &m_2&&\\
        &&\ddots&\\
        &&&m_n
    \end{matrix}\right]=PM\\
&\qquad \qquad P=\left[\begin{matrix}
            \ &\ &\ \\
            X_1&X_2&\cdots&X_n\\
            \ &\ &\ \\
        \end{matrix}\right],\ 
    M = \left[\begin{matrix}
        m_1&&&\\
        &m_2&&\\
        &&\ddots&\\
        &&&m_n
    \end{matrix}\right] \text{(diagonal matrix) }\\
    
&\qquad A=P\Lambda P^{-1} 
        =P\left[\begin{matrix}
          \lambda_1&&&\\
          &\lambda_2&&\\
          &&\ddots&\\
          &&&\lambda_n
      \end{matrix}\right] P^{-1},\qquad\ 
      \Lambda = \left[\begin{matrix}
          \lambda_1&&&\\
          &\lambda_2&&\\
          &&\ddots&\\
          &&&\lambda_n
      \end{matrix}\right] \text{(diagonal matrix) }\\
      
&\qquad \qquad\Longrightarrow\ 
    AU\ =\ (P\Lambda P^{-1})(PM)
    \ =\ P\Lambda (P^{-1}P)M
    \ =\ P\Lambda M\\
&\qquad \qquad \Longrightarrow
    A^kU \ =\  (P\Lambda P^{-1})(P\Lambda P^{-1})\cdots(P\Lambda M)
    \ =\ P\Lambda^{k}M\\
    
&\qquad  
    \color{red}{\Lambda\ and\ M\text{ are both diagonal matrices, so }}
    \Lambda M=M\Lambda\\ 
&\qquad \qquad\Longrightarrow\ 
    \color{red}A^kU =P\Lambda^{k}M=(PM)\Lambda^{k}=U\Lambda^{k} 
    \qquad=m_1\lambda_1^{k}X_1+m_2\lambda_2^{k}X_2+\cdots+m_n\lambda_n^{k}X_n\\
    
&\\
\end{align}


\begin{align}

&\color{blue}Fibonacci:0,1,1,2,3,5,8,13,21\cdots\\
&recursion \ relation:F_{n+2}=F_{n+1}+F_{n}\\
&\qquad \text{we can add another equation to form a linear system:} 
\color{red}
\begin{cases}
    F_{n+2}=F_{n+1}+F_{n}\\
    F_{n+1}=F_{n+1}
\end{cases}\\
&\color{red}
U_n=\left[\begin{array}\\F_{n+1}\\F_{n}\end{array}\right],\ 
    U_{n+1}=\left[\begin{array}\\F_{n+2}\\F_{n+1}\end{array}\right],\ 
    U_{n+1} = \left[\begin{matrix}1&1\\1&0\end{matrix}\right]
    \left[\begin{array}\\F_{n+2}\\F_{n+1}\end{array}\right]
    =AU_n,\ 
    A=\left[\begin{matrix}1&1\\1&0\end{matrix}\right]\\
&\qquad \text{A is a symmetric matrix,which indicates that A has n linearly independent eigenvector.}\\
&\qquad \text{So any vector in the space is the linear combination of A's eigenvectors.}\\
&A=\left[\begin{matrix}1&1\\1&0\end{matrix}\right]
    \text{, we can get}
    \begin{cases}
        \lambda_1+\lambda_2=1=trace(A)\\
        \lambda_1\cdot\lambda_2=-1=det(A)
    \end{cases}\\
&\qquad T(A)=|\lambda I-A|=
    \left|\begin{matrix}
        \lambda-1&-1\\
        -1&\lambda\\
    \end{matrix}\right|
    =\lambda^2-\lambda-1
    \ \Longrightarrow\ 
    \begin{cases}
        \lambda_1=\frac{1+\sqrt{5}}{2}\qquad(\lambda_1>1) \\
        \lambda_2=\frac{1-\sqrt{5}}{2}\qquad(0>\lambda_2>-1)
    \end{cases}\\
    
&\qquad \text{While eigenvalue } \lambda_1 = \frac{1+\sqrt{5}}{2},\ \ 
    eigenvector\ X_1 = 
    \left[\begin{array}\\\lambda_1\\1\end{array}\right]
    =\left[\begin{array}\\\frac{1+\sqrt{5}}{2}\\1\end{array}\right]\\
    
&\qquad \text{While eigenvalue } \lambda_2 = \frac{1-\sqrt{5}}{2},\ \ 
    eigenvector\ X_2 = 
    \left[\begin{array}\\\lambda_2\\1\end{array}\right]
    =\left[\begin{array}\\\frac{1-\sqrt{5}}{2}\\1\end{array}\right]\\
    
&U_0=\left[\begin{array}\\1\\0\end{array}\right]
    \text{(write as the linear combination of A's eigenvectors)}=
    \frac{1}{\sqrt{5}} X_1 +(-\frac{1}{\sqrt{5}}) X_2
    =m_1X_1+m_2X_2\\

&\text{Use the upper formula }
    \color{red}A^kU=U\Lambda^{k}=m_1\lambda_1^{k}X_1+m_2\lambda_2^{k}X_2+\cdots+m_n\lambda_n^{k}X_n
\\

&U_k=A^kU_0=m_1\lambda_1^{k}X_1+m_2\lambda_2^{k}X_2=
    \frac{1}{\sqrt{5}} (\frac{1+\sqrt{5}}{2})^k X_1 
    +(-\frac{1}{\sqrt{5}}) (\frac{1-\sqrt{5}}{2})^k X_2
    
\\
&\qquad While\ \ k\rightarrow+\infty,\ (\frac{1-\sqrt{5}}{2})^k\rightarrow 0,
    \color{red} \qquad U_k\approx\frac{1}{\sqrt{5}} (\frac{1+\sqrt{5}}{2})^k X_1\\

&\text{As a result, we can find that the growing speed of the numbers is mainly depended on the eigenvalue.}\\

&\qquad \begin{cases}
    eigenvalue\rightarrow growing\ speed \\
    eigenvector\rightarrow direction
\end{cases}\\

    
    
\end{align}