第六节 用 mathematica 作向量、矩阵运算

20
第第第 第 Mathematica 第第第 第第 第第 第 Mathematic 第 第第第第第第第“第” list “第”第第第第第第第 第第第第第第第第第第第 第第第第第第第第第第第第第 ,。。 6.1 向向向向向向向向 6.2 向向向向向向 6.3 向向向向向向 向向 6.4 向向向向向向向向 6.5 向向向向向向向向向向向

Upload: whitby

Post on 17-Jan-2016

341 views

Category:

Documents


0 download

DESCRIPTION

第六节 用 Mathematica 作向量、矩阵运算. 在 Mathematic 中,有序数组被称为 “ 表 ” ( list ) “ 表 ” 既可以表示集合,又可以表示向量和矩阵。许多函数都可以作用在表上。 6.1 向量和矩阵的输入 6.2 获得表的元素 6.3 表的维数和加、减法 6.4 向量和矩阵的乘法 6.5 关于矩阵的几个常用函数. 6.1 向量和矩阵的输入. 从键盘输入一个表,用 { } 将表的元素括起,元素之间用逗号分隔。 例 1 输入数据列 0 , 16 , 64 , 144 , 256 。定义为变量 data - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第六节 用 Mathematica 作向量、矩阵运算

第六节 用 Mathematica 作向量、矩阵运算

在 Mathematic 中,有序数组被称为“表”( list )“表”既可以表示集合,又可以表示向量和矩阵。许多函数都可以作用在表上。

6.1 向量和矩阵的输入 6.2 获得表的元素 6.3 表的维数和加、减法 6.4 向量和矩阵的乘法 6.5 关于矩阵的几个常用函数

Page 2: 第六节 用 Mathematica 作向量、矩阵运算

6.1 向量和矩阵的输入 从键盘输入一个表,用 { } 将表的元素括

起,元素之间用逗号分隔。例 1 输入数据列 0 , 16 , 64 , 144 , 2

56 。定义为变量 data data={0,16,64,144,256}例 2 输入矩阵 M=

221

310

152

Page 3: 第六节 用 Mathematica 作向量、矩阵运算

M={{2,5,-1} , {0,-1,3} , {1,2,-2}}矩阵的每一行用 { } 括起。

对于某些有规律的表 Mathematica 提供了函数 Table[ ],Nestlist[ ] 。

例 3 已知数列通项 ,给出前 10 项。

例 4 给出 30以内的奇数。

2nxn Table@n^2,8n, 1, 10<D81, 4, 9, 16, 25, 36, 49, 64, 81, 100<Table@n,8n, 1, 30, 2<D81, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29<

Page 4: 第六节 用 Mathematica 作向量、矩阵运算

例 5 给出

特殊矩阵的输入命令有 Table[f[i,j],{i,m}.{j,n}] 生成以 f 的计算值为元素的 m 行列矩阵 Array[a,{m,n}] 生成以 a[i,j] 为元素的 m 行 n 列矩阵。 IdentityMatrix[n] 生成 n 阶单位阵。 DiagonaMatrix[List] 生成以表中元素为对角元的对角矩阵。

,5,,5,5,5,5 284 n81, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29<NestListSqrt, 5, 20N5., 2.23607, 1.49535, 1.22284, 1.10582, 1.05158,1.02547, 1.01265, 1.00631, 1.00315, 1.00157, 1.00079, 1.00039,

1.0002, 1.0001, 1.00005, 1.00002, 1.00001, 1.00001, 1., 1.

Page 5: 第六节 用 Mathematica 作向量、矩阵运算

例 6 生成三阶 Hilbert 矩阵

得到

例 7 生成四阶单位阵

Table@1Hi+j - 1L,8i, 3<,8j, 3<DMatrixForm@%Dik1 1

213

12

13

14

13

14

15

y{

IdentityMatrix@4D881, 0, 0, 0<,80, 1, 0, 0<,80, 0, 1, 0<,80, 0, 0, 1<<

Page 6: 第六节 用 Mathematica 作向量、矩阵运算

例 8 生成一个以 {1 , 2 , 3 , 4 , 5} 为对角元的对角矩阵,并用矩阵形式表示

得到

DiagonalMatrix@81, 2, 3, 4, 5<D;MatrixForm@%Dik1 0 0 0 00 2 0 0 00 0 3 0 00 0 0 4 00 0 0 0 5

y{

Page 7: 第六节 用 Mathematica 作向量、矩阵运算

6.2 获得表的元素 A 是一个向量,则 A[i] 表示向量的第 i 个元素。M 是一个 m 行 n 列矩阵,则用 M[[i]] 表示矩阵

的第 i 行;M[[i,j]] 表示第 i 行 , 第 j 列交 叉点处的元素。Transpose[m][[j]] 表示 M 的第 j 列 .M[[{i1,i2},{j1,j2}]] 取 M 的第 i1 、 i2 行 , j1 、 j2 列构成子矩阵。

Page 8: 第六节 用 Mathematica 作向量、矩阵运算

例 9 构造一个 3*3 矩阵 , 再取出它的元素 。

M=Array@a,83, 3<D;MatrixForm@%DM@@2DDM@@3, 2DDTranspose@MD@@3DDM@@81, 3<,82, 3<DD

Page 9: 第六节 用 Mathematica 作向量、矩阵运算

取出第 2 行 取出第 3 行、第 2 列的元素 取出第 3列 取出由 1 、 3 行, 2 、 3 列构成子矩阵

ika@1, 1Da@1, 2Da@1, 3Da@2, 1Da@2, 2Da@2, 3Da@3, 1Da@3, 2Da@3, 3Dy{8a@2, 1D, a@2, 2D, a@2, 3D<a@3, 2D8a@1, 3D, a@2, 3D, a@3, 3D88a@1, 2D, a@1, 3D<,8a@3, 2D, a@3, 3D<<

Page 10: 第六节 用 Mathematica 作向量、矩阵运算

6.3 表的维数和加、减法 6.3.1 Dimensions[list] 给出向量或矩阵

的维数。例 10 求下列向量和矩阵的维数

T =81, 2, 3, 4<m=881, 2, 3<,84, 5, 6<<Di mens i ons@TDDi mens i ons@mD84<82, 3<

运行得出 向量的维数为 4 矩阵是 2 行3 列的

Page 11: 第六节 用 Mathematica 作向量、矩阵运算

6.3.2 矩阵的加、减法 相同维数的表可以相加,它的和是对应元

素的相加所得的同维的表 a1, a2, a3b1, b2, b3a1 b1, a2 b2, a3 b3m1=Array@a,83, 2<D;m2=Array@b,83, 2<D;MatrixForm@m1+m2Dika@1, 1D+b@1, 1Da@1, 2D+b@1, 2Da@2, 1D+b@2, 1Da@2, 2D+b@2, 2Da@3, 1D+b@3, 1Da@3, 2D+b@3, 2Dy{

Page 12: 第六节 用 Mathematica 作向量、矩阵运算

6.4 向量和矩阵的乘法 6.4.1 向量的内积

6.4.2 矩阵乘矩阵

计算下列矩阵的乘积

8a1, a2, a3<.8b1, b2, b3<a1b1+a2 b2+a3b3

Ja1 a2 a3b1 b2 b3

N.ikc1 c2d1 d2e1 e2

y{

Page 13: 第六节 用 Mathematica 作向量、矩阵运算

注意 : 这里乘法使用” ·” 是 Mathematica 特有的 , 这种乘法不满足交换律 . 当向量与矩阵相乘用“ ·” 能自动把向量看作行向量或列向量。

例如矩阵 m 左乘向量 v 时, v 被看作列向量,而矩阵右乘向量 v 时, v 被看作行向量。

m1 a1, a2, a3,b1, b2, b3m2 c1, c2,d1, d2,e1, e2m1.m2Ja1c1 +a2 d1+a3e1 a1c2 +a2 d2+a3e2b1c1 +b2 d1+b3e1 b1c2 +b2 d2+b3e2

N

Page 14: 第六节 用 Mathematica 作向量、矩阵运算

6.5 关于矩阵的几个常用函数

Inverse[M] 求 M 的逆矩阵Transpose[M] 求 M 的转置矩阵Det[M] 方阵 M 的行列式Eigenvalues[M] 求矩阵 M 的特征值

Page 15: 第六节 用 Mathematica 作向量、矩阵运算

例 12

求转置矩阵

0 该矩阵行列式为 0

Inverse@88a, b<,8c, d<<D:: d

- bc+ad, -

b

- bc+ad>,:- c

- bc+ad,

a

- bc+ad>>

m=881, 2, 3<,84, 5, 6<,87, 8, 9<<;m1=Transpose@mD881, 4, 7<,82, 5, 8<,83, 6, 9<<Det@mD

Page 16: 第六节 用 Mathematica 作向量、矩阵运算

系统给出提示,所计算矩阵是奇异的。

Inverse@mDInverse::sing :

Matrix 881, 2, 3<,84, 5, 6<,87, 8, 9<<is singular.

Inverse@881, 2, 3<,84, 5, 6<,87, 8, 9<<D

Page 17: 第六节 用 Mathematica 作向量、矩阵运算

例 13 计算非奇异矩阵 m2 的逆

例 14 求上例中矩阵的特征值

运行得到矩阵m2的三个特征值为 -2、 1、 4。

m2=882, -2, 0<,8-2, 1, - 2<,80, - 2, 0<<;Inverse@m2D::1

2, 0, -

1

2>,:0, 0, -

1

2>,:- 1

2, -

1

2,1

4>>

Eigenvalues@m2D8- 2, 1, 4<

Page 18: 第六节 用 Mathematica 作向量、矩阵运算

例 15 求方程组 的解

0674

522

963

852

4321

432

421

4321

xxxx

xxx

xxx

xxxx

A=882, 1, - 5, 1<,81, - 3, 0, - 6<,80, 2, - 1, 2<,81, 4, - 7, 6<<b=88, 9, - 5, 0<[email protected]., - 4., - 1., 1.<

Page 19: 第六节 用 Mathematica 作向量、矩阵运算

习题 1-6

1. 构造一个以 {1,-2,3,1} 为对角元的对角矩阵;

2. 生成矩阵 并用矩阵形式给出;

3 .取出上例中矩阵的第 2 行、第 3 行第 2列交叉点元素、第 1 列、以及由 1 、 2行, 2 、 3 列构造的子矩阵;

130

321

011

Page 20: 第六节 用 Mathematica 作向量、矩阵运算

4 .计算矩阵的乘积

5 .求矩阵的逆

6 .假设矩阵满足如下关系

其中 , 求 。

321

011

324

331

212

321

331

212

321

BAAB 2

321

011

324

A B