Presentation is loading. Please wait.

Presentation is loading. Please wait.

Mathematica基础 及其应用 专题2:线性代数 1.

Similar presentations


Presentation on theme: "Mathematica基础 及其应用 专题2:线性代数 1."— Presentation transcript:

1 Mathematica基础 及其应用 专题2:线性代数 1

2 表及其操作 2

3 表的概念 表是由一些元素聚集成的一个整体 形式: {…,…, … } 3

4 表可以参与数学函数运算 函数作用到表中的每一个元素上 运算后还是一个表 【问题】 %5 * %5 = ? 4

5 数值表的生成 Range[n] 生成{1,2,…,n} Range[m,n] 生成{m,…,n} Range[m,n,] 步长
5

6 通用表的生成 Table[expr, { }] expr ——表元素的通项表示,可运算 { } —— 表的生成方式“循环描述”
一般 {var, num1, num2, di} {var, num1, num2} {var, num} {num} 6

7 Random[数型, {区间}] 产生一个0到1之间的随机实数 7

8 多重循环 非表! 8

9 特殊表的生成 Array[f, n] 表元素是函数f分别作用到1, 2, …, n上的值 Array[f, {n1, n2,… }]
9

10 Array[f, {n1,n2,…}, {ini1, ini2,…}] 生成一个n1n2  …表,其中inii为ni的初始值(缺省为1)
10

11 递归表的生成 NestList[函数f, 初值x, 递推次数n] 生成{x, f[x], f[f[x]], …}, 有n+1个元素 11

12 Nest[函数,表达式,n] 12

13 与Nest有关的函数 FixedPoint[f, x] Fold[f,x,{a,b,…}]给出f[f[x,a], b]
FoldList同样可以用来生成列表 Select[列表, 逻辑判断]可以从列表中选取满足逻辑判断的子列表 13

14 前缀(Prefix)@ f@x即f[x],f@g@x即f[g[x]] 后缀(Postfix)// x//f即f[x]
如果自变量为多个,利用Sequence函数 嵌入(Infix)~ x~f~y~f~z…即f[x, y, z,…] 14

15 考察表的性质 Length[list] 表list的长度 Count[list, patt] list中patt出现的次数
Position[list, patt] list中patt出现的位置 MemberQ[list, patt] 测试patt 是否是list中的 元素 VectorQ[list] 测试list是否有向量结构 MatrixQ[list] 测试list是否有矩阵结构 15

16 16

17 取出表的部分 Frist[list] 取出list的第一个元素 Last[list] 取出list的最后一个元素
list[[n]] 取出list中的第n个元素 list[[-n]] 取出list中倒数第n个元素 17

18 深层次和组合提取 18

19 取出一部分的操作: Take[list,n] 从list中拿出前n个元素做成的 一表
Take[list,{m,n}] 从list中拿出第m到第n个元 素做成的一表 Rest[list] 从list去掉第一个元素后的表 Drop[list,n] 得到的表比原表少前n个元素 19

20 表的改造函数 Prepend[list,expr] 把expr放在list最前
Append[list,expr] 把expr放在list最后 Insert[list,expr,n] 把expr插入list中的第n个 位置 20

21 表的运算 Plus[a1,…,an] 把a1,…, an全部相加 Times[a1,…,an] 把a1,…, an全部相乘 等效命令:
Plus[a1,…, an]=Apply[Plus, list] Times[a1,…, an]= Apply[Times, list] 其中list={a1,…, an} 21

22 表的应用 排列组合、集合的交、并、余等运算 向量和矩阵的表示 例 求500以内既形如3k+7,又形如5k+2的数字集合 22

23 InterSection(ESC+inter+ESC) 交集 Union(ESC+un+ESC) 并集 Complement 余
Join 合并 InterSection(ESC+inter+ESC) 交集 Union(ESC+un+ESC) 并集 Complement 余 Tally 统计元素个数 Sort 排序 Entropy 熵 Mean 平均值 23

24 表作为向量和矩阵 一层表作为向量 两层表作为矩阵——行向量的向量 1. 矩阵的生成 Array[a, {m,n}]
Table[ a, {i,m} , {j,n}] 生成一个mn 的矩阵,矩阵元为aij 24

25  两个特殊矩阵的生成 2. 输出格式 IdentityMatrix [n] n阶单位阵
DiagonalMatrix [list] 生成一n阶对角阵, 对角元依次为表的元素 2. 输出格式 MatrixForm[mat] 把mat输出一矩阵 形式 ColumnForm[vec] 把vec输出一列 25

26 3. 矩阵内部元素的提取 a[[i,j]] 矩阵a的矩阵元aij a[[i]] 矩阵a的第i行
Transpose[a][[j]] 矩阵a的第j列 Take[a,{i1,i2},{j1,j2}]矩阵a的第i1到i2行, 第j1到 j2列的子矩阵 a[[Range[i1,i2], Range[j1,j2]]] 26

27 【问题】 B[[3,2]] =? 27

28 线性代数中的一般问题 28

29 向量和矩阵的输入 快捷键: 加行 Ctrl+Enter 加列 Ctrl+, 29

30 30

31 31

32 矩阵的表示形式 1. 矩阵的集合形式 如 {{a,b},{c,d}} 2. 矩阵的常规形式 32

33 3. 矩阵形式的转换 Input[m] 矩阵m的输入形式(默认) Output[m] 矩阵m的输出形式(默认)
MatrixForm[m] 矩阵m的常规形式 TableForm[m] 矩阵m的表形式 CForm[m] 矩阵m的C语言形式 FortranForm[m] 矩阵m的Fortran形式 TexForm[m] 矩阵m的Tex形式 33

34 向量的基本运算 k a 数k与向量a的数乘 a.b 或 Dot[a, b] 向量a和b的点积
Sqrt[Apply[plus, a^2]] 向量a的模 Cross[a, b] 向量a和b的叉积 Dot[a, Cross[ b, c]] 混合积 Dot[a, b]=Inner[Times, a, b] 内积 Cross[a, b]=Outer[Times, a, b] 外积 KroneckerProduct[a, b] 直积 34

35 35

36 利用直积构造密度矩阵 36

37 Calculus`VectorAnalysis`
可以方便的计算梯度、散度、旋度等矢量分析 可以方便改变坐标系统 37

38 矩阵的运算 Det[m] 矩阵的行列式 Inverse[m] 矩阵的逆 Transpose[m] 矩阵的转置 Tr[m] 矩阵的迹
Dimensions[m] 矩阵的维数 MatrixPower[m]矩阵的n次幂 MatrixExp[m] 矩阵的指数 MatrixRank[m] 矩阵的秩 38

39 SingularValueList 奇异值 Norm[m, p] 范数
PseudoInverse 广义逆 SingularValueList 奇异值 Norm[m, p] 范数 39

40 注意:“ . ” 或 Dot[ , ]也是矩阵和矢量的乘积运算
加法 “ +” 减法 “ –” 数乘矩阵 k A或k*A 乘法 “ . ” 或 Dot[ , ] 注意:“ . ” 或 Dot[ , ]也是矩阵和矢量的乘积运算 【问题】 如何区分行向量和列向量 ? 40

41 增加行 增加列 41

42 42

43 放在运算命令最后,会给出结果的矩阵形式 43

44 例 求矩阵A的伴随矩阵 输入 coA=Det[A]*Inverse[A] 即可! 44

45 coA=Det[yA]*Inverse[yA]/.y->0
问题:如果Det[A]=0,怎么办? 输入: yA= A + y Identity[n] coA=Det[yA]*Inverse[yA]/.y->0 n为A的阶 使得 Det[yA]≠0 45

46 46

47 注:对符号矩阵,不必采用这种方法,直接计算
47

48 求解线性方程组 NullSpace[A] 求Ax=0的基础解系 LinearSolve[A,a] 求Ax=a的特解 Inverse[A].a
RowReduce[A] 将A化为最简形式 48

49 49

50 50

51 51

52 52

53 53

54 对比Solve、 LinearSolve、Inverse 当方程存在唯一解时,三种方法等价
系数矩阵不是方阵即使方程有解,Inverse失效,Solve给出通解,LinearSolve给出特解 当方程无解时,Solve给出空集解, LinearSolve指出无解, Inverse失效 54

55 RowReduce[A] 将A化为最简形,从而判定构成矩阵;A的向量组的线性相关性、求出向量组的最大无关组、向量在基下的坐标等
系数矩阵为 {{2, 3, -9}, {3, 6, -1}} 55

56 化简后的方程与原方程等价,但更简单——RowReduce的优势所在
【问题】 对比RowReduce和NullSpace 56

57 结论:A的最简形中非零行的个数为3,知向量组是线性无关的
57

58 58

59 特征值问题的计算 Eigenvalues[A] 求矩阵A的特征值 Eigenvectors[A] 求矩阵A的特征向量
Eigensystem[A] 同时给出矩阵A的所有特征 值与特征向量 59

60 60

61 61

62  因A的线性无关特征向量个数等于其阶数,故矩阵A相似于对角矩阵
62

63 二次型的标准形,判定是否正定  f 的标准形为f =-y12-y22+2y32.由于f的特征值不都大于零,故f不正定 63

64 随游问题  一个粒子放在平面上的某一点(这点可作为原点)。设该粒子单位时间随机移动一步,这一步在x, y两个方向上分解的值都在-1和1之间,作一个图显示该粒子的轨迹。 64

65 65

66 66


Download ppt "Mathematica基础 及其应用 专题2:线性代数 1."

Similar presentations


Ads by Google