附录B 线性方程和马尔可夫链所相关的解析矩阵

    B.1 直接解算方法和收敛模式

    在计算机编程提供既定解决方案之前,诸如马尔可夫链之类的问题可以通过直接的方式且以代数方程的形式解决。相关的直接解算方法需要一个简单的矩阵运算过程,同时需要非常小心谨慎地对待那些正确的计算数字。现在的收敛方法已经变得很简单了,虽然它需要更多的计算:没有计算机,我们甚至不会考虑使用这种方法,而计算机问世之后,它是一个最好的选择。

    B.2 一般的矩阵形式

    一个矩阵是由矩形排列元素的行和列所构成的,矩阵Am×n所表示的是在矩阵A中,m是行,n是列:

    矩阵的某些属性使它成为一个有价值的工具,其可用于求解同步的线性方程组。这些基本的矩阵运算被称为转置,允许你改变行(这将代表方程),但不改变解。这里有三种基本的行计算所相关的模式,即

    (1)行中的每一项均乘以或除以一个任意值;

    (2)矩阵的任意两行可以互换(由此推介至所有行);

    (3)一行当中的元素可以和另一行的对应元素彼此相加或相减。

    我们将矩阵与同步线性方程组进行连接,考虑三个方程的范例情境,其中只有系数x是未知数,即

    现在,相应矩阵的三个基本行可以相对于简单的方程进行相关的操作,即

    (1)当一个等式两边乘以或除以相同的值时,则计算结果是相等的。

    (2)在联立方程中,任何两个方程互换,其解值相等。

    (3)当方程等式两边添加或减去相同的数值时,则结果是相等的。

    B.3 通过矩阵直接求解

    使用前述规则,将三个线性方程组的系数设置为3×4的矩阵,即

    将矩阵转化为下面的形式:

    这将意味着x1 =A1 ,x2 =A2 ,x3 =A3 ,如此:

    为了得出计算结果,第一个方程的所有项均除以a11 ,如此:

    然后,第一行所有项均乘以a21 ,使第一行第一项与第二行第一项数值相等:

    现在,以第二行的值减去第一行的值,从而得到:

    这就成功地从第二个等式中消除了第一项a21 ;然后,以式(B-1)乘以a31 ,再减去第三行,则a31 可从第三行被消除。现在,第一列如下:

    第二列或任何一列可以应用与第一列相同的方式进行操作,即

    (1)第n行可以除以第n项的数值(例如ann ),从而使ann =1;

    (2)当行i≠n时,行n乘以相应的数,这样ann ×ain =ain

    (3)行i减去行n,从而导致ain =0;如此,第n行的相应元素可以减去其他行的对应元素。

    在每一个i行持续运行上述的标准,直到所有元素变为:

    例如矩阵初始状态为:

    第一行除以2(a11 ),则

    第一行乘以6得到(6 12 24 102),第二行减去这一行:

    第一行乘以3得到(3 6 12 51),然后第三行减去这一行:

    第一列完成了,第二行除以-7,得到:

    第二行乘以2,从第一行减去(0 2 44/7 160/7),在第一行中消除元素2:

    因为在第三行第二列的元素是0,移动第三行,第三行除以-7得到:

    第三行乘以(-16/7),从第一行减去(0 0-16/7 -48/7),则生成:

    第三行乘以(+22/7),从第二行减去(0 0+22/7 +66/7),则生成:

    相关结果表示为:x1 =1,x2 =2,x3 =3。

    还有其他方法可以将矩阵生成至最简形式,而此种技术定义则便于计算机的编程。

    B.3.1 以天气概率的相关解生成马尔可夫链的形式

    现在,令:

    当收敛所有i元素的数值,使其等于第(i+1)个元素时,相关方程是:

    此外:

    使用矩阵来解决这个方程组,转换并将方程(3)添加到方程(4)中:

    如此,则生成矩阵:

    以下是求解的关键步骤。

    (1)简化第一行:

    使第二行和第三行的第一个元素为0:

    (2)简化第二行:

    使第一行和第三行的第二个元素为0:

    (3)简化第三行:

    使第一行和第二行的第三个元素为0:

    求得:A=0.4000,B=0.4250,C=0.1750。

    B.3.2 计算机程序所导出的直接解

    下述FORTRAN程序可以接收一个具有10个方程组、10个变量(未知数)的系统并应用矩阵的方法求解,此过程可以通过高斯消元法来完成,相应的编辑指令如下。

    B.3.3 计算机输出样本

    B.4 收敛方法

    此种方法可以执行一系列的矩阵乘法,直到新的矩阵和之前矩阵间的差值变得非常小。 [1] 根据第2章的相应程序、基本概念和计算方法,我们可以遵从其他时刻的上涨、下跌和中性的情境来创建一个3×3的矩阵,进而计算某一时间序列的上涨、下跌以及中性行情的区间步长。我们使所用的术语“中性”可以使很小的价格变化情境纳入相关的组合当中,而不是将其限制在只有零变化情境。对于相应的范例而言,我们将观察其上涨、下跌以及中性模式所相关的天数(跟踪以往5天的上涨、下降、中性的趋势),这里假设的结果如频率矩阵F所示。

    在矩阵F中的每一项都要除以总值(在相关行的末尾),同时矩阵转置至T,进而计算各种相关情境项下的概率值,即

    现在,我们有必要执行矩阵乘法,用矩阵A乘以矩阵B,即将矩阵A与矩阵B的相应元素相乘,用矩阵A的第i行乘以矩阵B的第j列;然后,我们将相乘的结果进行叠加,进而得到新矩阵C的第i行、第j列的值。如果我们有两个3×3的矩阵A和矩阵B,且我们想找到新矩阵C的第2行、第1列的元素值,那么,应用相乘叠加法即可导出:

    一般性的公式如下:

    对于表格用户来说,没有一般性的公式可以将一个表格复制到另一个表格。3行3列的矩阵A则标识为:A列、B列、C列,1行、2行、3行;矩阵B为:D列、E列、F列,1行、2行、3行;矩阵C为:G列、H列、I列,1行、2行、3行。如果我们要为单元格c11 输入单元格G1的公式,那相关的指令语言为:

    上述编辑程序虽然乏味,但是,至少在算法上它是正确的。

    迭代矩阵

    我们现在可以找到解决马尔可夫链和长期概率所相关的问题的方法,即通过执行一系列的矩阵乘法而实现(开始时用转置矩阵)。

    (1)用转置矩阵T得到第一迭代矩阵I1

    (2)迭代矩阵乘以转置矩阵得到下一个迭代矩阵:

    (3)持续以上一次迭代矩阵乘以转置矩阵,直到新的迭代矩阵不变或非常接近之前的迭代矩阵:

    当每个元素满足下列条件之时,即

    那么,此种迭代矩阵就可以拥有马尔可夫链项下的最终长期概率。

    [1] George R.Arrington,“Markov Chains,”Technical Analysis of Stocks & Commodities(December 1993).