主要内容

矩阵代数复习

简介

下面各节中的解释应该有助于刷新您使用矩阵代数和MATLAB的技能®功能。

此外,Macro-Investment分析William Sharpe还提供了一个使用MATLAB的矩阵代数操作的优秀解释。可在以下网址下载:

提示

当您设置一个问题时,它有助于“讨论”与每个输入和输出矩阵相关的单位和维度。在下面的例子中矩阵乘法,一个输入矩阵是三个股票五天的收盘价,另一个输入矩阵是两个投资组合中三个股票的股票,因此输出矩阵是两个投资组合五天的收盘价。使用描述性术语命名变量也有帮助。

矩阵加法和减法

矩阵加法和减法逐个元素运算。两个输入矩阵必须具有相同的维数。其结果是一个具有相同维数的新矩阵,其中每个元素是每个相应输入元素的和或差。例如,考虑组合不同数量相同股票的投资组合(“投资组合P和Q中股票A、B和C的股份(行)加上投资组合R和S中股票A、B和C的股份”)。

Portfolios_PQ = [100 200 500 400 300 150];Portfolios_RS = [175 125 200 200 100 500];新组合= Portfolios_PQ + Portfolios_RS
新投资组合= 275 325 700 600 400 650

可以添加或减去标量和矩阵,也可以逐元素操作。

SmallerPortf = newportfolio -10
SmallerPortf = 265.00 315.00 690.00 590.00 390.00 640.00

矩阵乘法

矩阵乘法中的元素进行操作。它根据线性代数的规则运算。在矩阵乘法中,记住这个关键规则是有帮助的:内部维数必须相同。也就是说,如果第一个矩阵是——- - - - - -3.,其次必须是3.——- - - - - -n.得到的矩阵为——- - - - - -n.它还有助于“讨论”每个矩阵的单位,如中所提到的使用矩阵函数分析数字集

矩阵乘法也是可交换的;也就是说,它与顺序无关。A * B并等于B *。维数规则说明了这个属性。如果A是1——- - - - - -3.矩阵,B为3.——- - - - - -1矩阵,A*B产生一个标量(1——- - - - - -1)矩阵,但B*A得到A3.——- - - - - -3.矩阵。

向量相乘

向量乘法遵循相同的规则,并有助于说明原理。例如,一个股票投资组合有三只不同的股票,它们今天的收盘价是:

ClosePrices = [42.5 15 78.875]

投资组合包含这些数量的每只股票。

NumShares = [100 500 300]

为了求出投资组合的价值,将向量相乘

PortfValue = ClosePrices * NumShares

收益率:

PortfValue = 3.5413e+004

向量是1——- - - - - -3.而且3.——- - - - - -1;得到的向量是1——- - - - - -1,一个标量。因此,将这些向量相乘意味着将每个收盘价乘以其各自的股票数量,并将结果相加。

为了说明顺序相关性,切换向量的顺序

价值= NumShares * ClosePrices
数值= 1.0e+004 * 0.4250 0.1500 0.7887 2.1250 0.7500 3.9438 1.2750 0.4500 2.3663

它显示了每只股票的100股、500股和300股的收盘价,而不是投资组合的价值,这在这个例子中是没有意义的。

计算向量的点积下载188bet金宝搏

在矩阵代数中,如果X而且Y向量长度相同吗

Y y 1 y 2 ... y n X x 1 x 2 ... x n

然后点积

X · Y x 1 y 1 + x 2 y 2 + ... + x n y n

是这两个向量的标量积。它是交换律的一个例外。要在MATLAB中计算点积,请使用总和(x .* y)求和(Y .* X).确保这两个向量有相同的维数。为了说明,使用前面的向量。

Value = sum(NumShares .* ClosePrices')
值= 3.5413e+004
Value = sum(ClosePrices .* NumShares')
值= 3.5413e+004

与预期的一样,这些情况下的值与PortfValue计算。

向量与矩阵相乘

向量与矩阵的乘法遵循矩阵乘法的规则和过程。例如,一个投资组合矩阵包含一周的收盘价。第二个矩阵(向量)包含投资组合中的股票数量。

WeekClosePr = [42.5 15 78.875 42.125 15.5 78.75 42.125 15.125 79 42.625 15.25 78.875 43 15.25 78.625];PortQuan = [100 500 300];

要查看每天的投资组合收盘价值,只需将其相乘

WeekPortValue = WeekClosePr * PortQuan
WeekPortValue = 1.0e+004 * 3.5412 3.5587 3.5475 3.5550 3.5513

价格矩阵是5——- - - - - -3.,则量矩阵(向量)为3.——- - - - - -1,则得到的矩阵(向量)为5——- - - - - -1

两个矩阵相乘

矩阵乘法也遵循矩阵代数的规则。在矩阵代数符号中,如果一个是一个——- - - - - -n矩阵和B是一个n——- - - - - -p矩阵

一个 一个 11 一个 12 一个 1 n 一个 1 一个 2 一个 n 一个 1 一个 2 一个 n B b 11 b 1 j b 1 p b 21 b 2 j b 2 p b n 1 b n j b n p

然后C = aB是一个——- - - - - -p矩阵;还有元素cij第Th行和j的第Th列C

c j 一个 1 b 1 j + 一个 2 b 12 + ... + 一个 n b n j

为了说明这一点,假设前面提到的三只股票有两个投资组合,但数量不同。

投资组合= [100 200 500 400 300 150];

乘的5——- - - - - -3.周收盘价矩阵由3.——- - - - - -2投资组合矩阵收益率为5——- - - - - -2显示两个投资组合每天收盘价的矩阵。

投资组合值= WeekClosePr *投资组合
PortfolioValues = 1.0e+004 * 3.5412 2.6331 3.5587 2.6437 3.5475 2.6325 3.5550 2.6456 3.5513 2.6494

周一的价值是通过将每个周一的收盘价乘以各自的股票数量,然后对第一个投资组合的结果求和,然后对第二个投资组合做同样的事情。周二的价值是通过将每个周二的收盘价乘以各自的股票数量,然后对第一个投资组合的结果求和,然后对第二个投资组合做同样的事情。以此类推,一直持续到本周。通过一个简单的命令,MATLAB可以快速执行许多计算。

矩阵乘以标量

矩阵乘以标量是维数和交换规则的一个例外。它只是一个元素一个元素地操作。

投资组合= [100 200 500 400 300 150];DoublePort =组合* 2
DoublePort = 200 400 1000 800 600 300

划分矩阵

矩阵除法主要用于求解方程,特别是求解联立线性方程(参见解联立线性方程).比如,你想解X一个XB。

在普通代数中,方程两边都除以一个,X就等于B / A.然而,由于矩阵代数不是可交换的(一个XX一),应用不同的流程。在形式矩阵代数中,解涉及到矩阵逆。然而,MATLAB通过提供两个矩阵除法符号(左和右)简化了这一过程(而且/).一般来说,

X = a \ b解决了的X一个X = b而且

X = b / a解决了的XXA = b

一般来说,矩阵一个必须是一个非奇异方阵;也就是说,它必须是可逆的而且行数和列数必须相同。(一般来说,如果一个矩阵乘以它的逆等于单位矩阵,那么这个矩阵就是可逆的。要理解理论和证明,请查阅线性代数的教科书,如初级线性代数由希尔在参考书目)。MATLAB给出一个警告信息,如果矩阵是奇异的或接近。

解联立线性方程

矩阵除法在解联立线性方程时特别有用。考虑一下这个问题:给定两个抵押贷款工具投资组合,每个投资组合的收益率都取决于优惠利率,你如何加权投资组合以实现特定的年度现金流?答案包括解两个线性方程。

线性方程是任何形式的方程

一个 1 x + 一个 2 y b

在哪里一个1一个2,b都是常量(一个1而且一个2不是同时0)和x而且y是变量。(这是一个线性方程,因为它描述了方程中的一条直线xy飞机。例如,方程2x+y= 8描述了一行,如果x= 2,则y= 4)。

线性方程组是一组线性方程组你通常想同时求解;这是同时发生的。解联立线性方程的精确答案的一个基本原则是方程的个数与未知量的个数相等。来得到确切的答案x而且y,必然有两个方程。例如,求x而且y在线性方程组中

2 x + y 13 x 3. y 18

肯定有两个方程,确实有。矩阵代数将该系统表示为包含三个矩阵的方程:一个对于左边的常数,X对于变量,和B对于右边的常数

一个 2 1 1 3. X x y B 13 18

在哪里一个XB

同时解方程组意味着解X.使用MATLAB,

A = [2 1 1 -3];B = [13 -18];
X = a \ b

解决了的XA * x = b

X = [3 7]

所以x= 3和y本例中= 7。一般来说,你可以用矩阵代数来解任意线性方程组,比如

一个 11 x 1 + 一个 12 x 2 + ... + 一个 1 n x n b 1 一个 21 x 1 + 一个 22 x 2 + ... + 一个 2 n x n b 2 一个 1 x 1 + 一个 2 x 2 + ... + 一个 n x n b

把它们表示成矩阵

一个 一个 11 一个 12 一个 1 n 一个 21 一个 22 一个 2 n 一个 1 一个 2 一个 n X x 1 x 2 x n B b 1 b 2 b

并求解X一个XB

为了说明这一点,考虑一下这种情况。有两种基于抵押贷款的投资组合,M1和M2。根据目前的优惠利率,他们目前每年的现金支付分别为每单位100美元和70美元。如果优惠利率下降一个百分点,他们的还款将分别为80美元和40美元。投资者持有10单位M1和20单位M2。投资者的收入等于现金支付乘以单位,或R = C * U,在每种优惠利率情况下。作为单词方程:

M1

平方米

主要平面:

$100 * 10单位

+ $70 * 20单位= $2400收据

':

$80 * 10单位

+ $40 * 20单位= $1600收据

作为MATLAB矩阵:

现金= [100 70 80 40];单位= [10 20];收入=现金*单位
收据= 2400 1600

现在投资者问这样一个问题:考虑到这两个投资组合及其特点,如果优惠利率保持不变,他们应该持有多少单位才能获得7000美元,如果优惠利率下降一个百分点,他们应该持有多少单位才能获得5000美元?通过解两个线性方程来求答案。

M1

平方米

主要平面:

100美元*x单位

+ $70 *y单位= $7000收据

':

80美元*x单位

+ $40 *y单位= 5000美元的收据

换句话说,用公式R(收入)= C(现金)* U(单位)来求解U(单位)。MATLAB左除法

现金= [100 70 80 40];收据= [7000 5000];单位=现金\收据
单位= 43.7500 37.5000

投资者应持有43.75单位的投资组合M1和37.5单位的投资组合M2,以实现预期的年度收益。

逐元素操作

最后,逐元素的算术运算称为运算。若要指示MATLAB数组运算,请在运算符前加上句点().加和减,矩阵乘和除标量,已经是数组操作,所以不需要句号。当对两个矩阵使用数组操作时,矩阵的维数必须相同。例如,给定股票股息和收盘价的向量

股息= [1.90 0.40 1.56 4.50];价格= [25.625 17.75 26.125 60.50];收益率=股息/价格
收益率= 0.0741 0.0225 0.0597 0.0744

相关的话题