Download presentation
Presentation is loading. Please wait.
1
第五章 线性代数运算命令与例题 北京交通大学
2
5.1向量与矩阵的定义 数学上矩阵是这样定义的: 由个数排成m行n列的数表: 称为m行n列矩阵,特别,当m=1时就是线性代数中的向量。
记作: 两个矩阵称为同型矩阵。
3
命令形式1:Table[f[i,j],{i,m},{j,n}] 功能: 输入矩阵,其中f是关于i和j的函数,给出[i, j]项的值.
5.1.1输入一个矩阵 命令形式1:Table[f[i,j],{i,m},{j,n}] 功能: 输入矩阵,其中f是关于i和j的函数,给出[i, j]项的值. 命令形式2:直接用表的形式来输入 功能:用于矩阵元素表达式规律不易找到的矩阵的输入。 注意: 1. 要看通常的矩阵形式可以用命令: MatrixForm[%] 2. 对应上述命令形式,输入一个向量的命令为 Table[f[j],{j,n}]或直接输入一个一维表{a1,a2,…,an},这里a1,a2,…,an是数或字母。
4
例1.输入矩阵A= , 向量b={1,4,7,-3}。 解:Mathematica命令
In[1]:= a={{12,-3,0,2,1},{56,-8,-45,21,91},{3,6,81,13,4}} Out[1]:= {{12,-3,0,2,1},{56,-8,-45,21,91},{3,6,81,13,4}} In[2]:=b={1, 4, 7, -3} Out[2]:= {1, 4, 7, -3}
5
例2. 输入一个矩阵 解:Mathematica命令 In[3]:=Table[Sin[i+j],{i,5},{j,3}]
Out[3]:={{Sin[2],Sin[3],Sin[4]},{Sin[3],Sin[4],Sin[5]},{Sin[4],Sin[5],Sin[6]}, {Sin[5],Sin[6],Sin[7]},{Sin[6],Sin[7],Sin[8]}} In[4]:=MatrixForm[%] Out[4]:= Sin[2] Sin[3] Sin[4] Sin[3] Sin[4] Sin[5] Sin[4] Sin[5] Sin[6] Sin[5] Sin[6] Sin[7] Sin[6] Sin[7] Sin[8]
6
5.1.2 几个特殊矩阵的输入 1. 生成0矩阵 命令形式: Table[0,{m},{n}] 功能:产生一个的0矩阵 2. 生成随机数矩阵
命令形式: Table[Random[ ],{m},{n}] 功能: 产生一个的随机数矩阵 3.生成上三角矩阵 命令形式: Table[If[i<=j,a,0],{i,m},{j,n}] 功能: 产生一个非0元全为数a的上三角矩阵 4.生成下三角矩阵 命令形式: Table[If[i>=j, a, 0], {i,m},{j,n}] 功能: 产生一个非0元全为数a的下三角矩阵
7
5.生成三对角矩阵 命令形式: Table[Switch[i-j,-1,a[[i]],0,b[[i]],1, c[[i-1]],-,0],{i,m},{j,n}] 功能: 产生一个的三对角矩阵 6.生成对角矩阵 命令形式:DiagonalMatrix[list] 功能:使用列表中的元素生成一个对角矩阵. 7.生成单位矩阵 命令形式:IdentityMatrix[n] 功能:生成n阶单位阵
8
例3. 构造的0矩阵。 例4. 构造一个的随机数矩阵。 解: Mathematica命令 In[5]:=Table[0,{4},{3}]
Out[5]:= {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}} In[6]:= MatrixForm[%] Out[6]:= 例4. 构造一个的随机数矩阵。 In[7]:=Table[Random[ ],{2},{5}] Out[7]:={{ , , , , }, { , , , , }}
9
例5. 构造非0元全为2的45上三角矩阵。 例6. 构造非0元全为1的44下三角方阵。 解:Mathematica命令
In[8]:=Table[If[i<=j,2,0],{i,4},{j,5}] Out[8]={{2,2,2,2,2},{0,2,2,2,2},{0,0,2,2,2},{0,0,0,2,2}} In[9]:=MatrixForm[%] Out[9]= 例6. 构造非0元全为1的44下三角方阵。 In[10]:=Table[If[i>=j,1,0],{i,4},{j,4}] Out[10]={{1,0,0,0},{1,1,0,0},{1,1,1,0},{1,1,1,1}} In[11]:=MatrixForm[%] Out[11]=
10
例7. 生成三对角矩阵 例8. 生成对角矩阵 解:Mathematica命令
In[12]:=Table[Switch[i-j,-1,a,0,b,1,c,_,0],{i,6},{j,6}] Out[12]={{b,a,0,0,0,0},{c,b,a,0,0,0},{0,c,b,a,0,0}, {0,0,c,b,a,0},{0,0,0,c,b,a},{0,0,0,0,c,b}} 例8. 生成对角矩阵 In[13]:=DiagonalMatrix[{a,b,c,d}] Out[13]={{a,0,0,0},{0,b,0,0},{0,0,c,0}, {0,0,0,d}}
11
例9.生成5阶单位矩阵。 解:Mathematica命令 In[14]:=a=IdentityMatrix[5]
Out[14]={{1,0,0,0,0},{0,1,0,0,0},{0,0,1,0 0}, {0,0,0,1,0},{0,0,0,0,1} } In[15]:=MatrixForm[%] Out[15]=
12
5.2向量与矩阵的运算 5.2.1基本运算 运算 功能 命令形式 矩阵加法和减法 将两个同型矩阵相加(减) AB 数乘 将数与矩阵做乘法
5.2向量与矩阵的运算 基本运算 运算 功能 命令形式 矩阵加法和减法 将两个同型矩阵相加(减) AB 数乘 将数与矩阵做乘法 kA 其中k是一个数,A是一个矩阵 矩阵的乘法 将两个矩阵进行矩阵相乘 B 其中乘号"."使用键盘上的小数点 矩阵的求逆 求方阵的逆 Inverse[A] A必须为方阵 矩阵的转置 . 求矩阵的转置 Transpose[A] A可以是任意矩阵 向量的数量积(点积) 求同维向量的数量积 v1.v2
13
例10. 计算 例11. 计算 解:Mathematica命令
In[16]:= {{1,3,7},{-3,9,-1}}+{{2,3,-2},{-1,6,-7}} Out[16]={{3, 6, 5},{-4, 15, -8}} 例11. 计算 In[17]:=5{{1,2,3},{3,5,1}} Out[17]={{5, 10, 15}, {15, 25, 5}}
14
In[18]:= {a, b, c}.{e, f, g} Out[18]= a e + b f + c g
例12. 求向量 与 的点积。 解:Mathematica命令 In[18]:= {a, b, c}.{e, f, g} Out[18]= a e + b f + c g 例13. 求向量{a,b,c}与矩阵 的乘积。 In[19]:= {a, b, c}.{{1, 2},{3, 4},{5, 6}} Out[19]={a + 3 b + 5 c, 2 a + 4 b + 6 c}
15
例14. 求矩阵 与向量{a,b}的乘积。 例15:求矩阵 与 的乘积。 解:Mathematica命令
In[20]:={{1,2},{3,4},{5,6}}.{a, b} Out[20]:={a + 2 b, 3 a + 4 b, 5 a + 6 b} 例15:求矩阵 与 的乘积。 In[21]:= a={{1,3,0},{-2,-1,1}} In[22]:=b={{1,3,-1,0},{0,-1,2,1},{2,4,0,1}} In[23]:=a.b Out[23]:={{1, 0, 5, 3}, {0, -1, 0, 0}}
16
例16. 求矩阵 的逆。 解:Mathematica命令
例16. 求矩阵 的逆。 解:Mathematica命令 In[24]:=A={{1,2,3,4},{2,3,1,2},{1,1,1,-1},{1,0,-2,-6}} Out[24]={{1,2,3,4},{2,3,1,2},{1,1,1,-1},{1,0,-2,-6}} In[25]:=Inverse[A] Out[25]={{22,-6,-26,17},{-17,5,20,-13},{-1,0,2,-1},{4,-1,-5,3}}
17
In[26]:= Inverse[{{a,b},{c,d}}] Out[26]:=
例17. 求矩阵 的逆。 解:Mathematica命令 In[26]:= Inverse[{{a,b},{c,d}}] Out[26]:= 例18. 求矩阵 的转置。 In[27]:=A={{1,2,3,4},{2,3,4,5},{3,4,5,6}} Out[27]:={{1, 2, 3, 4}, {2, 3, 4, 5}, {3, 4, 5, 6}} In[28]:=Transpose[A] Out[28]:={{1, 2, 3}, {2, 3, 4}, {3, 4, 5}, {4, 5, 6}}
18
5.2.2. 方阵的运算 求行列式 命令形式:Det[A] 功能:计算方阵A的行列式 求方阵的幂 命令形式:MatrixPower[A,n]
求矩阵的k阶子式 命令形式:Minors[A,k] 功能:求出矩阵A的所有可能的k阶子式的值。
19
例 ,求A的行列式 解:Mathematica命令 In[29]:=Det[{{a,b},{c,d}}] Out[29]:=-bc+ad 例20. 求矩阵 的2次幂。 In[30]:=MatrixPower[{{1,2},{3,4}},2] Out[30]:={{7, 10}, {15, 22}}
20
例21. 求矩阵 的所有2阶子式的值。 解:Mathematica命令 In[31]:=Minors[{{1,2,3},{2,3,4}},2] Out[31]:={{-1, -2, -1}}
21
例22. 某农场饲养的动物所能达到的最大年龄为15岁,将其分为三个年龄组:第一组,0——5岁;第二组6——10岁;第三组成11——15岁。动物从第二年龄组起开始繁殖后代,经过长期统计,第二年龄组的动物在其年龄段平均繁殖4个后代,第三组在其年龄段平均繁殖3个后代,第一年龄组和第二年龄组的动物能顺利进入下一个年龄组的存活率分别是1/2和1/4。假设农场现有三个年龄段的动物各1000头,问15年后农场饲养的动物总数及农场三个年龄段的动物各将达到多少头?指出15年间,动物总增长多少头及总增长率。
22
In[32]:=L={{0,4,3}.{1/2,0,0},{0,1/4,0}}; x0={1000,1000,1000};
解:年龄组为5岁一段,故将时间周期也取5年。15年经过3个周期。用k=1,2,3分别表示第一、二、三个周期,xi(k)表示第i个年龄组在第k个周期的数量。由题意,有如下矩阵递推关系: 即 利用Mathematica计算有: In[32]:=L={{0,4,3}.{1/2,0,0},{0,1/4,0}}; x0={1000,1000,1000}; In[33]:= Do[x0=L.x0;Print[x0], {3}] Out[33]:= {7000, 500, 250} {2750, 3500, 125} {14375, 1375, 875} 结果分析: 15年后,农场饲养的动物总数将达到16625头,其中0——5岁的有14375头,占总数的86.47%,6——10岁的有1375头,占8.27%,11——15岁的有875头,占5.226%,15年间,动物总增长13625头,总增长率为13625/3000=454.16%。
23
5.3解线性方程组 命令形式: Solve[eqns,{x1,x2,…}] 功能:求解以{x1,x2,…}为未知量的方程或纺方程组。
例23. 求方程组 的解。 解:Mathematica命令 In[34]:=Solve[{2x+3y= =4,x-y= =1},{x,y}] Out[34]:=
24
例24. 求齐次方程 的解。 解:Mathematica命令 In[35]:=Solve[5x1+4x2+3x3+2x4+x5==0,x1] Out[35]= In[36]:=Solve[5x1+4x2+3x3+2x4+x5==0,x5] Out[36]={{x5 -> -5 x1 - 4 x2 - 3 x3 - 2 x4}}
25
例25. 求非齐次方程 的解。 解:Mathematica命令 In[37]:=Solve[{2x1+7x2+3x3+x4==6,3x1+5x2+2x3+2x4==4,9x1+4x2+x3+7x4==2}, {x1,x2,x3,x4}] Out[37]=
26
5.4求矩阵特征值和特征向量 命令形式1:Eigenvalues[A] 功能:求出方阵A的全部特征值。
命令形式2:Eigenvalues[N[A]] 功能: 求出方阵A的全部特征值的数值解。 注意:命令1有时不能求出特征值,而命令2总能求出特征值的近似值 例26. 求矩阵 的特征值。 解:Mathematica命令 In[38]:=A={{2.,1.,1.},{1.,2.,1.},{1.,1.,2.}} Out[38]={{2., 1., 1.}, {1., 2., 1.}, {1., 1., 2.}} In[39]:=Eigenvalues[A] Out[39]={4., 1., 1.}
27
例27. 求矩阵 的特征值。 解:Mathematica命令 In[40]:=A={{2,1,1},{1,2,1},{1,3,2}}; In[41]=Eigenvalues[N[A]] Out[41]={ , 1., } 得三个特征值 , 1.,
28
例28. 求矩阵 的特征值。 解: Mathematica命令 In[43]:=A={{3,7,-3},{-2,-5,2},{-4,-10,3}}; In[44]:=Eigenvalues[N[A]] Out[44]={1., I, I} 得三个特征值1., I, I
29
5.4.2 求矩阵特征向量命令 命令形式1:Eigenvectors[A] 功能:求方阵A全部特征向量。
求矩阵特征向量命令 命令形式1:Eigenvectors[A] 功能:求方阵A全部特征向量。 命令形式2: Eigenvectors[N[A]] 功能:求方阵A全部特征向量的数值解。 例29. 求矩阵的特征向量。 解:Mathematica命令 In[47]:=A={{2.,1.,1.},{1.,2.,1.},{1.,1.,2.}} Out[47]={{2., 1., 1.}, {1., 2., 1.}, {1., 1., 2.}} In[48]=Eigenvectors[A] Out[48]={{ , , }, {0., , }, { , , }} 得三个特征向量为: { , , }, {0., , }, { , , }
30
例30.求矩阵的特征向量。 In[49]:=Eigenvectors[N[A]] Out[49]:={{ , , }, { I, I, I}, { I, I, I}}
31
例31. 求矩阵 的特征值和特征向量。 解:Mathematica命令 In[53]:=A={{2.,1.,1.},{1.,2.,1.},{1.,1.,2.}} Out[53]={{2.,1., 1.}, {1., 2., 1.}, {1., 1., 2.}} In[54]:=Eigensystem[A] Out[54]={{4., 1., 1.}, {{ , , },{0., , },{ , , }}} 其中,第一个表是三个特征值,第二个2维表是三个特征向量
32
例32:综合应用:
33
第五章结束 谢谢!
Similar presentations