2.1 向量与线性方程组

该博客聚焦线性代数中线性方程组的求解。介绍了行图像与列图像,以不同未知数和方程数量的方程组为例,展示如何通过图像找解。阐述了方程组的矩阵形式,包括系数矩阵、矩阵 - 向量乘法的行乘和列乘理解。还提及矩阵表示法、MATLAB 中矩阵乘法的实现及相关例题。

一、行图像与列图像

线性代数的中心问题是求解线性方程组。线性的意思是这些方程的未知数是一次的,即每个未知数只会乘数字,而不会出现 xxxyyy 相乘的项。下面是一个由两个未知数组成的方程组:两个方程两个未知数{x−2y=13x+2y=11(2.1.1)\begin{matrix}\textbf{两个方程}\kern 11pt\\\textbf{两个未知数}\end{matrix}\kern 15pt\left\{\begin{matrix}x-2y=1\\3x+2y=11\end{matrix}\right.\kern 20pt(2.1.1)两个方程两个未知数{x2y=13x+2y=11(2.1.1)我们首先一次处理一行。将这两个方程的图像在 xyxyxy 平面上画出来,如Figrure 2.1所示。行图像中第一条直线是 x−2y=1x-2y=1x2y=1,第二条直线是 3x+2y=113x+2y=113x+2y=11,它们的交点是 x=3,y=1x=3,y=1x=3,y=1,点 (3,1)(3,1)(3,1) 同时落在两条直线上,也是两个方程的解。

在这里插入图片描述
行:行图像显示两条直线交于一点(解)。

下面考虑列图像,将上述方程组写成 “向量方程式”,我们要观察的是向量而不是数字。向量方程式表示列的组合:列的组合等于 bx[13]+y[−22]=[111]=b(2.1.2)\textbf{列的组合等于}\,\boldsymbol b\kern 15ptx\begin{bmatrix}1\\3\end{bmatrix}+y\begin{bmatrix}-2\\\kern 7pt2\end{bmatrix}=\begin{bmatrix}1\\11\end{bmatrix}=\boldsymbol b\kern 20pt(2.1.2)列的组合等于bx[13]+y[22]=[111]=b(2.1.2)左侧有两个列向量,问题是找到这些向量正确的组合使得它们与右侧的向量相等。第一列乘 xxx,第二列乘 yyy,然后将它们相加。正确的组合是 x=3x=3x=3y=1y=1y=1(与行图像得到的结果相同),3(列1)+1(列2)=b3(\textbf{列1})+1(\textbf{列2})=\boldsymbol b3(1)+1(2)=b
在这里插入图片描述
列:列图像组合左侧的列向量产生右侧的向量 b\boldsymbol bb
Figure 2.2 是两个方程两个未知数的列图像,第一个图是两个不同的列,然后第一列乘 333,数乘是线性代数中两个基本运算之一:数乘3[13]=[39]\textbf{数乘}\kern 20pt3\begin{bmatrix}1\\3\end{bmatrix}=\begin{bmatrix}3\\9\end{bmatrix}数乘3[13]=[39]如果向量 v\boldsymbol vv 的分量是 v1v_1v1v2v_2v2,则 cvc\boldsymbol vcv 的分量是 cv1cv_1cv1cv2cv_2cv2
另一个基本运算是向量的加法,分别将两个向量的第一分量和第二分量相加,其和是 (1,11)(1,11)(1,11),即 b\boldsymbol bb向量加法[39]+[−22]=[111]\textbf{向量加法}\kern 20pt\begin{bmatrix}3\\9\end{bmatrix}+\begin{bmatrix}-2\\\kern 7pt2\end{bmatrix}=\begin{bmatrix}1\\11\end{bmatrix}向量加法[39]+[22]=[111]Figure 2.2 中的第二个图表示上述的向量加法。黑线表示两个向量,其对角线表示两个向量的和,也就是线性方程组右侧的向量 b=(1,11)\boldsymbol b=(1,11)b=(1,11)
重复一遍:向量方程式的左侧是列的线性组合,问题是找到正确的系数 x=3,y=1x=3,y=1x=3,y=1。将数乘和向量的加法合成一个步骤,这个步骤非常重要,因为它包含了两个基本运算:向量的两列分别乘 333111,然后相加。线性组合3[13]+[−22]=[111]\textbf{线性组合}\kern 20pt3\begin{bmatrix}1\\3\end{bmatrix}+\begin{bmatrix}-2\\\kern 7pt2\end{bmatrix}=\begin{bmatrix}1\\11\end{bmatrix}线性组合3[13]+[22]=[111]方程组左侧的系数矩阵是一个 2×22×22×2 的矩阵 AAA系数矩阵A=[1−232]\textbf{系数矩阵}\kern 20ptA=\begin{bmatrix}1&-2\\3&\kern 7pt2\end{bmatrix}系数矩阵A=[1322]我们可以从行或者列来观察矩阵,行可以得到行图像,列可以得到列图像。相同的方程组,可以通过不同的图像来观察。方程组写成矩阵方程式 Ax=bA\boldsymbol x=\boldsymbol bAx=b矩阵方程式 Ax=b[1−232][xy]=[111]\textbf{矩阵方程式}\,A\boldsymbol x=\boldsymbol b\kern 20pt\begin{bmatrix}1&-2\\3&\kern 7pt2\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}1\\11\end{bmatrix}矩阵方程式Ax=b[1322][xy]=[111]行图像处理两行,列图像组合两列。将 x=3,y=1x=3,y=1x=3,y=1 代入 x\boldsymbol xx,即矩阵-向量的乘法:{行的点积列的组合Ax=b[1−232][31]=[111]\left\{\begin{matrix}\textbf{行的点积}\\\textbf{列的组合}\end{matrix}\right.\kern 10ptA\boldsymbol x=\boldsymbol b\kern 10pt\begin{bmatrix}1&-2\\3&\kern 7pt2\end{bmatrix}\begin{bmatrix}3\\1\end{bmatrix}=\begin{bmatrix}1\\11\end{bmatrix}{行的点积列的组合Ax=b[1322][31]=[111]

二、三个未知数三个方程

下面讨论三个未知数,三个方程的情况,未知数是 x,y,zx,y,zx,y,z,线性方程如下:Ax=b{x+2y+3z=62x+5y+2z=46x−3y+z=2(2.1.3)A\boldsymbol x=\boldsymbol b\kern 20pt\left\{\begin{matrix}x+2y+3z=6\\2x+5y+2z=4\\6x-3y+z=2\end{matrix}\right.\kern 20pt(2.1.3)Ax=bx+2y+3z=62x+5y+2z=46x3y+z=2(2.1.3)方程组的解可能存在也可能不存在,本例中是有解的。一般情况下,当未知数的个数等于方程的个数时(例如本例中),通常会有一个解。
我们首先从两个方面来观察本例:
行: 行图像显示三个平面相交于一点。
列: 列图像三个列的组合产生 b=(6,4,2)\boldsymbol b=(6,4,2)b=(6,4,2)

在行图像中,每个方程表示一个三维空间中的平面,Figure 2.3 中的第一个平面表示 x+2y+3z=6x+2y+3z=6x+2y+3z=6,该平面与 x,y,zx,y,zx,y,z 轴的交点分别是 (6,0,0)(6,0,0)(6,0,0)(0,3,0)(0,3,0)(0,3,0)(0,0,2)(0,0,2)(0,0,2),这三个点都满足这个方程,且确定一个平面。
由于向量 (x,y,z)=(0,0,0)(x,y,z)=(0,0,0)(x,y,z)=(0,0,0) 不是 x+2y+3z=6x+2y+3z=6x+2y+3z=6 的解,所该平面不过原点。平面 x+2y+3z=0x+2y+3z=0x+2y+3z=0 过原点,且平行于 x+2y+3z=6x+2y+3z=6x+2y+3z=6
第二个平面表示 2x+5y+2z=42x+5y+2z=42x+5y+2z=4,它与第一个平面交于一条直线 LLL。一般来说三个未知数两个方程的通解是一条直线,如本例的直线 LLL。(但是方程 x+2y+3z=6x+2y+3z=6x+2y+3z=6x+2y+3z=0x+2y+3z=0x+2y+3z=0 没用通解,它们在空间中表示的两个平面平行。)
第三个平面表示 6x−3y+z=26x-3y+z=26x3y+z=2,它与直线 LLL 相交于一点,这个点落在全部三个平面上,就是三个方程的解。它们的交点是 (0,0,2)(0,0,2)(0,0,2),这个在行图像中很难看出。

在这里插入图片描述
列图像我们写成向量的形式 Ax=bA\boldsymbol x=\boldsymbol bAx=b列的组合x[126]+y[25−3]+z[321]=[642]=b(2.1.4)\textbf{列的组合}\kern 12ptx\begin{bmatrix}1\\2\\6\end{bmatrix}+y\begin{bmatrix}\kern 7pt2\\\kern 7pt5\\-3\end{bmatrix}+z\begin{bmatrix}3\\2\\1\end{bmatrix}=\begin{bmatrix}6\\4\\2\end{bmatrix}=\boldsymbol b\kern 15pt(2.1.4)列的组合x126+y253+z321=642=b(2.1.4)未知数是系数 x,y,zx,y,zx,y,z,我们需要对三个列向量进行正确的组合,产生 b=(6,4,2)\boldsymbol b=(6,4,2)b=(6,4,2)
Figure 2.4 是本例的列图像,这些列向量的线性组合可以产生任意的 b\boldsymbol bb !当 b=(6,4,2)\boldsymbol b=(6,4,2)b=(6,4,2) 时,需要的组合是第三列乘 222,系数为 x=0,y=0,z=2x=0,y=0,z=2x=0,y=0,z=2

在这里插入图片描述
行图像中的三个平面也是相交于这一点 (0,0,2)(0,0,2)(0,0,2),这个点就是列的正确组合:正确组合(x,y,z)=(0,0,2)0[126]+0[25−3]+2[321]=[642]正确组合(x,y,z)=(0,0,2)\kern 16pt0\begin{bmatrix}1\\2\\6\end{bmatrix}+0\begin{bmatrix}\kern 7pt2\\\kern 7pt5\\-3\end{bmatrix}+2\begin{bmatrix}3\\2\\1\end{bmatrix}=\begin{bmatrix}6\\4\\2\end{bmatrix}正确组合(x,y,z)=(0,0,2)0126+0253+2321=642
注: 对于 mmm 个方程 nnn 个未知数的 Ax=bA\boldsymbol x=\boldsymbol bAx=b,其行图像是在 nnn 维空间,列的线性组合在 mmm 维空间。

三、方程组的矩阵形式

行图像中有三行,列图像中有三列,三行三列有 999 个数字,它们形成一个 3×33\times33×3 的矩阵 AAAAx=b 的系数矩阵A=[1232526−31]A\boldsymbol x=\boldsymbol b\,的系数矩阵\kern 15ptA=\begin{bmatrix}1&2&3\\2&5&2\\6&-3&1\end{bmatrix}Ax=b的系数矩阵A=126253321大写字母 AAA 代表这 999 个数,它们形成一个方阵,字母 b\boldsymbol bb 表示列向量,它的分量是 6,4,26,4,26,4,2。未知数 x\boldsymbol xx 也是一个列向量,它的分量是 x,y,zx,y,zx,y,z。(我们用粗体字母表示向量)。对于方程组,我们可以以三种形式来看,式(2.1.3)是行形式;式(2.1.4)是列形式;式(2.1.5)是矩阵形式:矩阵方程 Ax=b[1232526−31][xyz]=[642](2.1.5)矩阵方程\,A\boldsymbol x=\boldsymbol b\kern 15pt\begin{bmatrix}1&2&3\\2&5&2\\6&-3&1\end{bmatrix}\begin{bmatrix}x\\y\\z\end{bmatrix}=\begin{bmatrix}6\\4\\2\end{bmatrix}\kern 10pt(2.1.5)矩阵方程Ax=b126253321xyz=642(2.1.5)下面讨论一个问题:AAAx\boldsymbol xx 的意义?
x\boldsymbol xx 可以被行乘,也可以被列乘,它们是同样东西以不同形式来理解。
被行乘:Ax 代表点积,每个行乘列 xAx=[(row 1)⋅x(row 2)⋅x(row3)⋅x](2.1.6)A\boldsymbol x\,代表\textbf{点积},每个行乘列\,\boldsymbol x\kern 15ptA\boldsymbol x=\begin{bmatrix}(row\,1)\cdot\boldsymbol x\\(row\,2)\cdot\boldsymbol x\\(row3)\cdot\boldsymbol x\end{bmatrix}\kern 10pt(2.1.6)Ax代表点积,每个行乘列xAx=(row1)x(row2)x(row3)x(2.1.6)
被列乘:Ax 是列向量的线性组合Ax=x(column 1)+y(column 2)+z(column 3)(2.1.7)A\boldsymbol x\,是\textbf{列向量的线性组合}\kern 11ptA\boldsymbol x=x(column\,1)+y(column\,2)+z(column\,3)\kern 11pt(2.1.7)Ax列向量的线性组合Ax=x(column1)+y(column2)+z(column3)(2.1.7)将解 x=(0,0,2)\boldsymbol x=(0,0,2)x=(0,0,2) 代入 AxA\boldsymbol xAx 将产生 b\boldsymbol bb[1232526−31][002]=2×(column 3)=[642]\begin{bmatrix}1&2&3\\2&5&2\\6&-3&1\end{bmatrix}\begin{bmatrix}0\\0\\2\end{bmatrix}=2\times(column\,3)=\begin{bmatrix}6\\4\\2\end{bmatrix}126253321002=2×(column3)=642用行形式来解释,则第一行的点积 (1,2,3)⋅(0,0,2)=6(1,2,3)\cdot(0,0,2)=6(1,2,3)(0,0,2)=6,第二行的点积 (2,5,2)⋅(0,0,2)=4(2,5,2)\cdot(0,0,2)=4(2,5,2)(0,0,2)=4,第三行的点积 (6,−3,1)⋅(0,0,2)=2(6,-3,1)\cdot(0,0,2)=2(6,3,1)(0,0,2)=2。用列形式来解释,则 b\boldsymbol bb 为第三列的 222 倍。今后主要将 AxA\boldsymbol xAx 当做是 AAA 列的组合。

例13×33\times33×3 的矩阵 AAA 和单位矩阵 IIIAx=[100100100][456]=[444]Ix=[100010001][456]=[456]A\boldsymbol x=\begin{bmatrix}1&0&0\\1&0&0\\1&0&0\end{bmatrix}\begin{bmatrix}4\\5\\6\end{bmatrix}=\begin{bmatrix}4\\4\\4\end{bmatrix}\kern 10ptI\boldsymbol x=\begin{bmatrix}1&0&0\\0&1&0\\0&0&1\end{bmatrix}\begin{bmatrix}4\\5\\6\end{bmatrix}=\begin{bmatrix}4\\5\\6\end{bmatrix}Ax=111000000456=444Ix=100010001456=456通过行形式和列形式都可以得出结果。
单位矩阵 III主对角线都是 111,这个矩阵乘任何向量都是原来的向量,就像 111 乘上任何数一样,不同的是现在是矩阵乘向量。本例中的 III3×33\times33×3单位矩阵I=[100010001]Ix=x 总成立I=\begin{bmatrix}1&0&0\\0&1&0\\0&0&1\end{bmatrix}\kern 10ptI\boldsymbol x=\boldsymbol x\,总成立I=100010001Ix=x总成立

四、矩阵表示法

一个 2×22\times22×2 的矩阵的第一行是 a11a_{11}a11a12a_{12}a12,第二行是 a21a_{21}a21a22a_{22}a22。第一个下标表示行数,第二个下标表示列数,所以 aija_{ij}aij 是第 iii 行第 jjj 列的单元。由于下标不方便打出来,所以 aija_{ij}aij 也可以用 A(i,j)A(i,j)A(i,j) 来表示。例如单元 a57=A(5,7)a_{57}=A(5,7)a57=A(5,7) 就在第 555 行,第 777 列。A=[a11a12a21a22]=[A(1,1)A(1,2)A(2,1)A(2,2)]A=\begin{bmatrix}a_{11}&a_{12}\\a_{21}&a_{22}\end{bmatrix}=\begin{bmatrix}A(1,1)&A(1,2)\\A(2,1)&A(2,2)\end{bmatrix}A=[a11a21a12a22]=[A(1,1)A(2,1)A(1,2)A(2,2)]对于 m×nm\times nm×n 的矩阵,行的下标 iii111mmm,列的下表 jjj111nnn,它共有 mnmnmn 个单元 aij=A(i,j)a_{ij}=A(i,j)aij=A(i,j),一个 nnn 阶的方形矩阵有 n2n^2n2 个单元。

五、MATLAB 中的矩阵乘法

定义矩阵 AAA 和 列向量 x\boldsymbol xx,其中 RnR^nRnnnn 维空间)中的向量 x\boldsymbol xx 表示一个 n×1n\times1n×1 的矩阵,输入矩阵时每次输入一行,用分号 ; 表示一行的结束。输入列向量 x\boldsymbol xx 可以直接以列形式输入,也可以用行形式输入,然后用 ’ 表示转置:

在这里插入图片描述
在 MATLAB 中有三种方法可以得到AxA\boldsymbol xAx
(1)可以直接使用 MATLAB 语言得到矩阵乘法

b=A∗xb=A*xb=Ax

(2)一次处理一行,即点积的形式:选出 AAA 的每一行,将其视为 1×31\times31×3 的矩阵,可以表示为 A(1,:)A(1,:)A(1,:)。在这里冒号 : 代表一行的全部列。

b=[A(1,:)∗x; A(2,:)∗x; A(3,:)∗x]b=[A(1,:)*x;\,A(2,:)*x;\,A(3,:)*x]b=[A(1,:)x;A(2,:)x;A(3,:)x]

(3)一次处理一列,即列的线性组合。第一列是 3×13\times13×1 的子矩阵 A(:,1)A(:,1)A(:,1),这里冒号 : 代表一列的全部行。

b=A(:,1)∗x(1)+A(:,2)∗x(2)+A(:,3)∗x(3)b=A(:,1)*x(1)+A(:,2)*x(2)+A(:,3)*x(3)b=A(:,1)x(1)+A(:,2)x(2)+A(:,3)x(3)

MATLAB 中 A∗xA*xAx 是用列的形式来实现的。

在这里插入图片描述

六、主要内容总结

  1. 向量的基本运算是数乘 cvc\boldsymbol vcv 和向量的加法 v+w\boldsymbol v+\boldsymbol wv+w
  2. 将向量的数乘与加法相结合可以得到线性组合 cv+dwc\boldsymbol v+d\boldsymbol wcv+dw
  3. 矩阵 – 向量的乘法 AxA\boldsymbol xAx 可以由点积得到,一次处理一行;也可以由 AAA 的列的线性组合得到,一次处理一列。
  4. 列图像:Ax=bA\boldsymbol x=\boldsymbol bAx=b 是找到列的线性组合产生 b\boldsymbol bb
  5. 行图形:Ax=bA\boldsymbol x=\boldsymbol bAx=b 的每个方程会得到一条直线(n=2n=2n=2),或一个平面(n=3n=3n=3)或一个超平面(n>3n>3n>3)。如果仅有一个解会相交于一点,若有很多解,会相交成直线、平面、或超平面。

七、例题

例2】描述三个方程 Ax=bA\boldsymbol x=\boldsymbol bAx=b 的列图像,仔细观察列(不使用消元法)求解:{x+3y+2z=−32x+2y+2z=−23x+5y+6z=−5[132222356]=[xyz]=[−3−2−5]\left\{\begin{matrix}x+3y+2z=-3\\2x+2y+2z=-2\\3x+5y+6z=-5\end{matrix}\right.\kern 15pt\begin{bmatrix}1&3&2\\2&2&2\\3&5&6\end{bmatrix}=\begin{bmatrix}x\\y\\z\end{bmatrix}=\begin{bmatrix}-3\\-2\\-5\end{bmatrix}x+3y+2z=32x+2y+2z=23x+5y+6z=5123325226=xyz=325解: 列图像是寻找 AAA 三个列正确的线性组合产生 b\boldsymbol bb。通过观察可以发现,b\boldsymbol bb 是第二列的相反数,所以可得 x=0,y=−1,z=0x=0,y=-1,z=0x=0,y=1,z=0。若是要证明 (0,−1,0)(0,-1,0)(0,1,0) 是唯一解,需要确认 AAA 可逆,三个列之间是无关的,行列式不为 000

例3】下面的系统无解。行图像中的平面并没有相交于一点。即并不存在三个列的线性组合可以产生 b\boldsymbol bb{x+3y+5z=4x+2y−3z=52x+5y+2z=8[13512−3252][xyz]=[458]=b\left\{\begin{matrix}x+3y+5z=4\\x+2y-3z=5\\2x+5y+2z=8\end{matrix}\right.\kern 15pt\begin{bmatrix}1&3&5\\1&2&-3\\2&5&2\end{bmatrix}\begin{bmatrix}x\\y\\z\end{bmatrix}=\begin{bmatrix}4\\5\\8\end{bmatrix}=\boldsymbol bx+3y+5z=4x+2y3z=52x+5y+2z=8112325532xyz=458=b(方程111)+(方程2)-(方程3)可得 0=10=10=1,所以该系统无解。向量 (1,1,−1)(1,1,-1)(1,1,1)AAA 的三个列均正交(orthogonal),但是与 b\boldsymbol bb 不正交。
(1)三个平面中存在两个互相平行的平面吗?什么方程与平面 x+3y+5z=4x+3y+5z=4x+3y+5z=4 平行?
(2)计算 AAA 每一列与 y=(1,1,−1)\boldsymbol y=(1,1,-1)y=(1,1,1) 的点积,b\boldsymbol bby\boldsymbol yy 的点积。这些点积如何能表明 AAA 列的线性组合无法产生 b\boldsymbol bb
(3)求出右侧三个不同的向量 b∗,b∗∗,b∗∗∗\boldsymbol b^*,\boldsymbol b^{**},\boldsymbol b^{***}b,b∗∗,b∗∗∗,使得方程有解。
解:(1)这三个平面中没有两个平行的平面,它们也没有相交于一点(如下图)。将 444 改成任意实数都可以得到与 x+3y+5z=4x+3y+5z=4x+3y+5z=4 平行的平面,例如 x+3y+5z=0x+3y+5z=0x+3y+5z=0 是一个过原点 (0,0,0)(0,0,0)(0,0,0) 的平面。

在这里插入图片描述
(2)AAA 的每一列与 y\boldsymbol yy 的点积都为 000y⋅b=(1,1,−1)⋅(4,5,8)=1\boldsymbol y\cdot\boldsymbol b=(1,1,-1)\cdot(4,5,8)=1yb=(1,1,1)(4,5,8)=1 不为 000,代入 Ax=bA\boldsymbol x=\boldsymbol bAx=b 可得 0=10=10=1,这是不可能的,所以无解,也就表明 AAA 列的线性组合无法产生 b\boldsymbol bb
(3)当 b\boldsymbol bbAAA 列的线性组合时,则有解。当对应的解 x∗=(1,0,0)\boldsymbol x^{*}=(1,0,0)x=(1,0,0)x∗∗=(1,1,1)\boldsymbol x^{**}=(1,1,1)x∗∗=(1,1,1)x∗∗∗=(0,0,0)\boldsymbol x^{***}=(0,0,0)x∗∗∗=(0,0,0) 时可以得到:b∗=[112]b∗∗=[909]b∗∗∗=[000]\boldsymbol b^*=\begin{bmatrix}1\\1\\2\end{bmatrix}\kern 10pt\boldsymbol b^{**}=\begin{bmatrix}9\\0\\9\end{bmatrix}\kern 10pt\boldsymbol b^{***}=\begin{bmatrix}0\\0\\0\end{bmatrix}b=112b∗∗=909b∗∗∗=000

例4】使用 MATLAB 的命令写出定义矩阵 AAA 和 列向量 x\boldsymbol xxb\boldsymbol bb 的指令,什么样的命令可以测试 Ax=bA\boldsymbol x=\boldsymbol bAx=bA=[1234]x=[5−2]b=[17]A=\begin{bmatrix}1&2\\3&4\end{bmatrix}\kern 10pt\boldsymbol x=\begin{bmatrix}5\\-2\end{bmatrix}\kern 10pt\boldsymbol b=\begin{bmatrix}1\\7\end{bmatrix}A=[1324]x=[52]b=[17]解: MATLAB 程序:

A = [1 2; 3 4]; % 定义 2×2 矩阵 A
x = [5 -2]';	% 定义列向量 x
b = [1 7]';		% 定义列向量 b
r = b - A*x		% 验证 A*x = b

允许结果如图所示:

在这里插入图片描述
例5】MATLAB 的命令 A = eye(3) 和 v = [3:5]’ 可以得到 3×3 的单位矩阵和列向量 (3,4,5)。A*v 和 v’*v 的输出是什么?如果是 v*A 呢?
解: MATLAB 程序:

A = eye(3); % 定义一个 3×3 的单位矩阵
v = [3:5]'; % 定义一个 3到5 的列向量
A*v			% A*v = v
v'*v		% v'*v = 3^2+4^2+5^2=50
v*A			% 错误

运行结果:

在这里插入图片描述
例6】若 4×44×44×4 矩阵 AAA 的单元全都是 111,A = ones(4),列向量 v= ones(4,1),A*v 是什么?若 B = eye(4) + ones(4),w = zeros(4,1) + 2*ones(4,1),则 B*w 是什么?
解: MATLAB 程序:

A = ones(4);	 				% 定义一个单元全为 1 的 4×4 的矩阵 A
v = ones(4, 1);	 			    % 取 ones(4) 的第一列作为列向量 v
A * v			 				% 计算 A*v
B = eye(4)+ones(4);				% 定义矩阵 B
w = zeros(4, 1) + 2*ones(4,1);  % 定义向量 w;zeros(4,1) 是取 4×4 的全 0 矩阵的第一列的列向量
B*w								% 计算 B*w

运行结果:

在这里插入图片描述
例7】(1)从向量 u0=(1,0)\boldsymbol u_0=(1,0)u0=(1,0) 开始,每次都在左侧乘相同的 “马可夫(Markov)矩阵” A=[0.80.30.20.7]A=\begin{bmatrix}0.8&0.3\\0.2&0.7\end{bmatrix}A=[0.80.20.30.7],一直到向量 u7\boldsymbol u_7u7
(2)从向量 v0=(0,1)\boldsymbol v_0=(0,1)v0=(0,1) 开始,执行(1)中相同的操作,一直到 v7\boldsymbol v_7v7
观察 u7\boldsymbol u_7u7v7\boldsymbol v_7v7 有什么特征?u\boldsymbol uuv\boldsymbol vv 会趋向于一个稳定的向量 s\boldsymbol ss,猜测一下 s\boldsymbol ss,并验证 As=sA\boldsymbol s=\boldsymbol sAs=s。使用 MATLAB 语言。

解:(1)从 u0\boldsymbol u_0u0 开始的 MATLAB 程序:

u = [1;0];				 % 定义列向量 u
A = [0.8 0.3; 0.2 0.7];	 % 定义马可夫矩阵 A
x = u;
k = [0:7];				 % 定义一个 0~7 的行向量
while size(x, 2) <= 7	 % size(x, 2) 为得到矩阵 x 的行数
	u = A*u;			 
	x = [x u];			 % 得到新的矩阵 x,在矩阵 x 后面加上一列 u
end
plot(k, x)				 % 画出矩阵 x 的图像,k 为横轴,x 的每一行作为纵轴

运行结果如下:

在这里插入图片描述
(2)从 v0\boldsymbol v_0v0 开始的 MATLAB 程序:

v = [0; 1]; 
A = [0.8 0.3; 0.2 0.7];
x = v; 
k = [0:7];
for j = 1:7		% for 循环,每次循环默认 j 自动加 1 
    v = A*v; 
    x = [x v];
end
plot(k, x)

运行结果:

在这里插入图片描述
向量 u7\boldsymbol u_7u7v7\boldsymbol v_7v7 它们分量的和都为 111s=(0.6,0.4)\boldsymbol s=(0.6,0.4)s=(0.6,0.4),且 [0.80.30.20.7][0.60.4]=[0.60.4]\begin{bmatrix}0.8&0.3\\0.2&0.7\end{bmatrix}\begin{bmatrix}0.6\\0.4\end{bmatrix}=\begin{bmatrix}0.6\\0.4\end{bmatrix}[0.80.20.30.7][0.60.4]=[0.60.4]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值