精华内容
下载资源
问答
  • 在线代里面起到“定”什么的作用,与各章均有紧密的练习,你知道相应的关系吗,会写出对应的语言吗?在此给出的一些问题,请自行查阅资料或者直接检测作答,并梳理其内在逻辑,自学复习文档。封面问题1.请复述...

    仅开个头,不做深层次的分析,因为暂时没时间,谁让官方催更呢?当然仔细思考,也定会有所收获的。秩在线代里面起到“定”什么的作用,与各章均有紧密的练习,你知道相应的关系吗,会写出对应的秩语言吗?

    在此给出秩的一些问题,请自行查阅资料或者直接检测作答,并梳理其内在逻辑,自学复习文档。

    7b5c7ea115b632c811628f8b927eeaad.png

    封面

    问题1.请复述:秩的2种定义分别是什么?提示:矩阵行列式,向量

    { ①如何理解其中“最高为r阶”非零子式中的最高为r的含义

    →提示:一个说大,一个说小,大小夹。

    ②区分理解:“有一个”和“每一个”}

    ec9d824397b701d5f5716fa5aa1f339f.png

    以上图片分别为说大和说小

    问题2.判断下面三个命题是否正确?(3个重要的命题)

    c90bbcb99883e2ec847bcaba60bc7fa8.png

    请牢记清楚

    问题3.填空题

    (1) 矩阵的性质,常见的等式与不等式

    3dda31aed170c5e1403db421e21652e2.png

    填空题1

    d814bfde82a4a7e119002f08bd04089c.png

    填空题2

    4a5ca5ee0a7ba46c61b3865d2704be4c.png

    填空题3

    9294abd0f09a45fd36aea64f52c539a8.png

    填空题4

    (2)线性方程组中与秩相关的命题填空

    1.Am*n阶,AX=0通解中:基础解析所含线性无关的解向量个数为:[ ]

    2.解的判定

    2dccb07732c632a04c47483d109ff0ad.png

    秩与方程组

    (3).如何利用秩,判断向量组相关无关,

    核心定理:→关键看:向量组的秩与向量组个数的关系,相等无关,不等相关

    -矩阵的秩=它行向量组的秩=它列向量组的秩,故判别 :矩阵的秩 与 所对应的向量组个数的关系

    分析:Am*n 本来判别A列向量组的向量是否相关无关,是去看A的列向量组的秩,与A列向量所含向量个数n之间的关系,但是由于“3秩相等”A列向量组的秩=矩阵的秩R(A)相等,故只需要看矩阵A的秩R(A)和列向量组所含向量个数n的关系即可,相等则列向量组线性无关,不等则相关。

    50f70013b18e7b0871be4832ea04f2d0.png

    秩与相关无关

    (4).若A~B 等价,相似,合同,则R(A)=R(B);要会区分:相似,合同,等价的概念

    重要命题:

    若A可相似对角化,则R(A)=非零特征值的个数,重根按重数算 (请判别正确与否)

    判别A可相似对角化的秩语言又是什么?

    K重根(设重根为Ω)有K个线性无关的特征向量,秩语言即:n-r(ΩE-A)=K(重数)

    →实对称矩阵的秩=非零特征值的个数

    进而:R(A)=二次型标准型平方项非零0系数的个数→再进一步思考与规范型关系

    惯性定理:R(A)=p+q正负惯性指数之和

    (5).若An*n可逆,则R(A)= [ ],若A不可逆,则R(A)={ }

    4.矩阵的秩与各章的关系 (请思考具体的关系)

    5e8980119ed350274640d01318c89f2a.png

    摘自李林老师的书

    5.矩阵的秩的求法结构体系(线代题最爱做的就是分类:具体 ,抽象)

    采用分类来思考:具体和抽象,具体是指A的元素给出,抽象是指仅给A符号,不给A的元素

    数字型矩阵的秩如何求?有哪些方法?

    (1)定义法;(2)初等变换 (用的多);(3)行列式 ;(4)特征值(特殊结构)

    (可相似对角化的特殊结构,例如:主对角元素相同为b,其他元素亦相同为a,可分解为秩为1的特殊结构)

    0bf4c6aa72742e9e2d2293e59da96bc0.png

    数字型矩阵的求法

    • 抽象型矩阵A的秩如何求?

    1.经典的构思:一大一小一夹

    要证明R(A)=n,可采用:一个说大R(A)≥n,一个说小R(A)≤n,一大一小一夹R(A)=n

    {关键如何说大?如何说小?利用好上述:行列式,方程组,相关无关的信息解读以及常见不等式}

    你会:从矩阵A的行列式中子式读出秩的信息吗?

    1b0ccb8d1291be3b389ffaef75c08469.png

    存在二阶子式不为0

    你会:从相关,无关中读出秩的信息吗?

    若α1=α2-α3,则R(α1,α2,α3)≤2,你能读出来吗?理由是?

    你会:会从AX=b,A为4阶,有3个线性无关的解,读出秩的信息吗?

    3499d659e88c851aee3773111428e55b.png

    摘自李永乐老师的公众号

    • 扩展两类题的构思:(考的很少,了解,理解即可)
    faadced2a9c9a6de50819d0a0ff8064a.png

    一个说大一个说小,大小夹

    2.利用秩的定义,性质,结论,以及它与其他章节的关系知识来反求秩,理论见上文填空题部分

    补充矩阵分解的思想

    1.当B的每一列都可以由A的列向量表示的时候,想到 B=AC ,表示系数矩阵C

    典型条件设置→什么时候想到用矩阵分解

    1. 设a1 a2 a3线性无关,讨论a1-a2 a1+2a2-a3 a1-a3

    2.[Aa1 Aa2 Aa3]=A[a1 a2 a3] 从而可用乘法公式 C=AB 而可以利用R(AB)越乘越小的结论:推出秩的不等式,

    3.[A AB]=[AE AB]=A[E B] 如上

    4.A-AB=A(E-B)

    5.已知P=[ 抽象的 ],且可逆或者列线性无关。告之你一个有关A的等式,让你求P-AP=B的B,要点:①先求AP→观察法,利用矩阵分解的思路→把AP的结果矩阵分解写为:P*,→因为P可逆,进而*=B所求的。2020考题 2001年数一考题等

    2.A=BC分解的构思,先看B,C中是否有可逆矩阵或者线性无关的,从而可以得到R(A)与R(B)或R(C)的确切关系;若没有,则利用R(BC) “越乘越小”R(BC)≤min{R(B) R(C )}

    96a7460c47e29dd842bae5142507127b.png

    分析

    展开全文
  • §9.1 习题 1.证明,一个非奇异的对称矩阵必与它的逆矩阵合同. 2.对下列每一矩阵A,分别求一可逆矩阵P,使 是对角形式: (i) (ii) (iii) 3.写出二次型 的矩阵,并将这个二次型化为一个与它等价的二次型,使后...
  • 线性代数 Numpy 定义了 matrix 类型,使用该 matrix 类型创建的是矩阵对象,它们的加减乘除运算缺省采用矩阵方式计算,因此用法和Matlab十分类似。但是由于 NumPy 中同时存在 ndarray 和 matrix 对象,因此用户很...

    线性代数

    Numpy 定义了 matrix 类型,使用该 matrix 类型创建的是矩阵对象,它们的加减乘除运算缺省采用矩阵方式计算,因此用法和Matlab十分类似。但是由于 NumPy 中同时存在 ndarraymatrix 对象,因此用户很容易将两者弄混。这有违 Python 的“显式优于隐式”的原则,因此官方并不推荐在程序中使用 matrix。在这里,我们仍然用 ndarray 来介绍。

    矩阵和向量积

    矩阵的定义、矩阵的加法、矩阵的数乘、矩阵的转置与二维数组完全一致,不再进行说明,但矩阵的乘法有不同的表示。

    • numpy.dot(a, b[, out])计算两个矩阵的乘积,如果是一维数组则是它们的内积。

    【例1】

    import numpy as np
    
    x = np.array([1, 2, 3, 4, 5])
    y = np.array([2, 3, 4, 5, 6])
    z = np.dot(x, y)
    print(z)  # 70
    
    x = np.array([[1, 2, 3], [3, 4, 5], [6, 7, 8]])
    print(x)
    # [[1 2 3]
    #  [3 4 5]
    #  [6 7 8]]
    
    y = np.array([[5, 4, 2], [1, 7, 9], [0, 4, 5]])
    print(y)
    # [[5 4 2]
    #  [1 7 9]
    #  [0 4 5]]
    
    z = np.dot(x, y)
    print(z)
    # [[  7  30  35]
    #  [ 19  60  67]
    #  [ 37 105 115]]
    
    z = np.dot(y, x)
    print(z)
    # [[ 29  40  51]
    #  [ 76  93 110]
    #  [ 42  51  60]]
    

    注意:在线性代数里面讲的维数和数组的维数不同,如线代中提到的n维行向量在 Numpy 中是一维数组,而线性代数中的n维列向量在 Numpy 中是一个shape为(n, 1)的二维数组。


    矩阵特征值与特征向量

    • numpy.linalg.eig(a) 计算方阵的特征值和特征向量。
    • numpy.linalg.eigvals(a) 计算方阵的特征值。

    【例1】求方阵的特征值特征向量

    import numpy as np
    
    # 创建一个对角矩阵!
    x = np.diag((1, 2, 3))  
    print(x)
    # [[1 0 0]
    #  [0 2 0]
    #  [0 0 3]]
    
    print(np.linalg.eigvals(x))
    # [1. 2. 3.]
    
    a, b = np.linalg.eig(x)  
    # 特征值保存在a中,特征向量保存在b中
    print(a)
    # [1. 2. 3.]
    print(b)
    # [[1. 0. 0.]
    #  [0. 1. 0.]
    #  [0. 0. 1.]]
    
    # 检验特征值与特征向量是否正确
    for i in range(3): 
        if np.allclose(a[i] * b[:, i], np.dot(x, b[:, i])):
            print('Right')
        else:
            print('Error')
    # Right
    # Right
    # Right
    

    【例2】判断对称阵是否为正定阵(特征值是否全部为正)。

    import numpy as np
    
    A = np.arange(16).reshape(4, 4)
    print(A)
    # [[ 0  1  2  3]
    #  [ 4  5  6  7]
    #  [ 8  9 10 11]
    #  [12 13 14 15]]
    
    A = A + A.T  # 将方阵转换成对称阵
    print(A)
    # [[ 0  5 10 15]
    #  [ 5 10 15 20]
    #  [10 15 20 25]
    #  [15 20 25 30]]
    
    B = np.linalg.eigvals(A)  # 求A的特征值
    print(B)
    # [ 6.74165739e+01 -7.41657387e+00  1.82694656e-15 -1.72637110e-15]
    
    # 判断是不是所有的特征值都大于0,用到了all函数,显然对称阵A不是正定的
    if np.all(B > 0):
        print('Yes')
    else:
        print('No')
    # No
    

    矩阵分解

    奇异值分解

    有关奇异值分解的原理:奇异值分解(SVD)及其应用

    • u, s, v = numpy.linalg.svd(a, full_matrices=True, compute_uv=True, hermitian=False)奇异值分解
      • a 是一个形如(M,N)矩阵
      • full_matrices的取值是为False或者True,默认值为True,这时u的大小为(M,M),v的大小为(N,N)。否则u的大小为(M,K),v的大小为(K,N) ,K=min(M,N)。
      • compute_uv的取值是为False或者True,默认值为True,表示计算u,s,v。为False的时候只计算s
      • 总共有三个返回值u,s,vu大小为(M,M),s大小为(M,N),v大小为(N,N),a = u*s*v
      • 其中s是对矩阵a的奇异值分解。s除了对角元素不为0,其他元素都为0,并且对角元素从大到小排列。s中有n个奇异值,一般排在后面的比较接近0,所以仅保留比较大的r个奇异值。

    注:Numpy中返回的v是通常所谓奇异值分解a=u*s*v'v的转置。

    【例1】

    import numpy as np
    
    A = np.array([[4, 11, 14], [8, 7, -2]])
    print(A)
    # [[ 4 11 14]
    #  [ 8  7 -2]]
    
    u, s, vh = np.linalg.svd(A, full_matrices=False)
    print(u.shape)  # (2, 2)
    print(u)
    # [[-0.9486833  -0.31622777]
    #  [-0.31622777  0.9486833 ]]
    
    print(s.shape)  # (2,)
    print(np.diag(s))
    # [[18.97366596  0.        ]
    #  [ 0.          9.48683298]]
    
    print(vh.shape)  # (2, 3)
    print(vh)
    # [[-0.33333333 -0.66666667 -0.66666667]
    #  [ 0.66666667  0.33333333 -0.66666667]]
    
    a = np.dot(u, np.diag(s))
    a = np.dot(a, vh)
    print(a)
    # [[ 4. 11. 14.]
    #  [ 8.  7. -2.]]
    

    【例2】

    import numpy as np
    
    A = np.array([[1, 1], [1, -2], [2, 1]])
    print(A)
    # [[ 1  1]
    #  [ 1 -2]
    #  [ 2  1]]
    
    u, s, vh = np.linalg.svd(A, full_matrices=False)
    print(u.shape)  # (3, 2)
    print(u)
    # [[-5.34522484e-01 -1.11022302e-16]
    #  [ 2.67261242e-01 -9.48683298e-01]
    #  [-8.01783726e-01 -3.16227766e-01]]
    
    print(s.shape)  # (2,)
    print(np.diag(s))
    # [[2.64575131 0.        ]
    #  [0.         2.23606798]]
    
    print(vh.shape)  # (2, 2)
    print(vh)
    # [[-0.70710678 -0.70710678]
    #  [-0.70710678  0.70710678]]
    
    a = np.dot(u, np.diag(s))
    a = np.dot(a, vh)
    print(a)
    # [[ 1.  1.]
    #  [ 1. -2.]
    #  [ 2.  1.]]
    

    QR分解

    • q,r = numpy.linalg.qr(a, mode='reduced')计算矩阵a的QR分解。
      • a是一个(M, N)的待分解矩阵。
      • mode = reduced:返回(M, N)的列向量两两正交的矩阵q,和(N, N)的三角阵r(Reduced QR分解)。
      • mode = complete:返回(M, M)的正交矩阵q,和(M, N)的三角阵r(Full QR分解)。

    【例1】

    import numpy as np
    
    A = np.array([[2, -2, 3], [1, 1, 1], [1, 3, -1]])
    print(A)
    # [[ 2 -2  3]
    #  [ 1  1  1]
    #  [ 1  3 -1]]
    
    q, r = np.linalg.qr(A)
    print(q.shape)  # (3, 3)
    print(q)
    # [[-0.81649658  0.53452248  0.21821789]
    #  [-0.40824829 -0.26726124 -0.87287156]
    #  [-0.40824829 -0.80178373  0.43643578]]
    
    print(r.shape)  # (3, 3)
    print(r)
    # [[-2.44948974  0.         -2.44948974]
    #  [ 0.         -3.74165739  2.13808994]
    #  [ 0.          0.         -0.65465367]]
    
    print(np.dot(q, r))
    # [[ 2. -2.  3.]
    #  [ 1.  1.  1.]
    #  [ 1.  3. -1.]]
    
    a = np.allclose(np.dot(q.T, q), np.eye(3))
    print(a)  # True
    

    【例2】

    import numpy as np
    
    A = np.array([[1, 1], [1, -2], [2, 1]])
    print(A)
    # [[ 1  1]
    #  [ 1 -2]
    #  [ 2  1]]
    
    q, r = np.linalg.qr(A, mode='complete')
    print(q.shape)  # (3, 3)
    print(q)
    # [[-0.40824829  0.34503278 -0.84515425]
    #  [-0.40824829 -0.89708523 -0.16903085]
    #  [-0.81649658  0.27602622  0.50709255]]
    
    print(r.shape)  # (3, 2)
    print(r)
    # [[-2.44948974 -0.40824829]
    #  [ 0.          2.41522946]
    #  [ 0.          0.        ]]
    
    print(np.dot(q, r))
    # [[ 1.  1.]
    #  [ 1. -2.]
    #  [ 2.  1.]]
    
    a = np.allclose(np.dot(q, q.T), np.eye(3))
    print(a)  # True
    

    【例3】

    import numpy as np
    
    A = np.array([[1, 1], [1, -2], [2, 1]])
    print(A)
    # [[ 1  1]
    #  [ 1 -2]
    #  [ 2  1]]
    
    q, r = np.linalg.qr(A)
    print(q.shape)  # (3, 2)
    print(q)
    # [[-0.40824829  0.34503278]
    #  [-0.40824829 -0.89708523]
    #  [-0.81649658  0.27602622]]
    
    print(r.shape)  # (2, 2)
    print(r)
    # [[-2.44948974 -0.40824829]
    #  [ 0.          2.41522946]]
    
    print(np.dot(q, r))
    # [[ 1.  1.]
    #  [ 1. -2.]
    #  [ 2.  1.]]
    
    a = np.allclose(np.dot(q.T, q), np.eye(2))
    print(a)  # True   (说明q为正交矩阵)
    

    Cholesky分解

    • L = numpy.linalg.cholesky(a) 返回正定矩阵a的 Cholesky 分解a = L*L.T,其中L是下三角。

    【例1】

    import numpy as np
    
    A = np.array([[1, 1, 1, 1], [1, 3, 3, 3],
                  [1, 3, 5, 5], [1, 3, 5, 7]])
    print(A)
    # [[1 1 1 1]
    #  [1 3 3 3]
    #  [1 3 5 5]
    #  [1 3 5 7]]
    
    print(np.linalg.eigvals(A))
    # [13.13707118  1.6199144   0.51978306  0.72323135]
    
    L = np.linalg.cholesky(A)
    print(L)
    # [[1.         0.         0.         0.        ]
    #  [1.         1.41421356 0.         0.        ]
    #  [1.         1.41421356 1.41421356 0.        ]
    #  [1.         1.41421356 1.41421356 1.41421356]]
    
    print(np.dot(L, L.T))
    # [[1. 1. 1. 1.]
    #  [1. 3. 3. 3.]
    #  [1. 3. 5. 5.]
    #  [1. 3. 5. 7.]]
    

    范数和其它数字

    矩阵的范数

    • numpy.linalg.norm(x, ord=None, axis=None, keepdims=False) 计算向量或者矩阵的范数。

    根据ord参数的不同,计算不同的范数:
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4SuPT8VK-1620376676976)(attachment:task13%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0-%E7%9F%A9%E9%98%B5%E7%9A%84%E8%8C%83%E6%95%B0-%E5%AF%B9%E5%BA%94%E5%85%AC%E5%BC%8F.png)]

    【例1】求向量的范数。

    import numpy as np
    
    x = np.array([1, 2, 3, 4])
    
    print(np.linalg.norm(x, ord=1)) 
    # 10.0
    print(np.sum(np.abs(x)))  
    # 10
    
    print(np.linalg.norm(x, ord=2))  
    # 5.477225575051661
    print(np.sum(np.abs(x) ** 2) ** 0.5)  
    # 5.477225575051661
    
    print(np.linalg.norm(x, ord=-np.inf))  
    # 1.0
    print(np.min(np.abs(x)))  
    # 1
    
    print(np.linalg.norm(x, ord=np.inf))  
    # 4.0
    print(np.max(np.abs(x)))  
    # 4
    

    【例2】求矩阵的范数

    import numpy as np
    
    A = np.array([[1, 2, 3, 4], [2, 3, 5, 8],
                  [1, 3, 5, 7], [3, 4, 7, 11]])
    
    print(A)
    # [[ 1  2  3  4]
    #  [ 2  3  5  8]
    #  [ 1  3  5  7]
    #  [ 3  4  7 11]]
    
    print(np.linalg.norm(A, ord=1))  # 30.0
    print(np.max(np.sum(A, axis=0)))  # 30
    
    print(np.linalg.norm(A, ord=2))  
    # 20.24345358700576
    print(np.max(np.linalg.svd(A, compute_uv=False)))  
    # 20.24345358700576
    
    print(np.linalg.norm(A, ord=np.inf))  # 25.0
    print(np.max(np.sum(A, axis=1)))  # 25
    
    print(np.linalg.norm(A, ord='fro'))  
    # 20.273134932713294
    print(np.sqrt(np.trace(np.dot(A.T, A))))  
    # 20.273134932713294
    

    方阵的行列式

    • numpy.linalg.det(a) 计算行列式。

    【例】计算行列式。

    import numpy as np
    
    x = np.array([[1, 2], [3, 4]])
    print(x)
    # [[1 2]
    #  [3 4]]
    
    print(np.linalg.det(x))
    # -2.0000000000000004
    

    矩阵的秩

    • numpy.linalg.matrix_rank(M, tol=None, hermitian=False) 返回矩阵的秩。

    【例】计算矩阵的秩。

    import numpy as np
    
    I = np.eye(3)  # 先创建一个单位阵
    print(I)
    # [[1. 0. 0.]
    #  [0. 1. 0.]
    #  [0. 0. 1.]]
    
    r = np.linalg.matrix_rank(I)
    print(r)  # 3
    
    I[1, 1] = 0  # 将该元素置为0
    print(I)
    # [[1. 0. 0.]
    #  [0. 0. 0.]
    #  [0. 0. 1.]]
    
    r = np.linalg.matrix_rank(I)  # 此时秩变成2
    print(r)  # 2
    

    矩阵的迹

    • numpy.trace(a, offset=0, axis1=0, axis2=1, dtype=None, out=None) 方阵的迹就是主对角元素之和。

    【例】计算方阵的迹。

    import numpy as np
    
    x = np.array([[1, 2, 3], [3, 4, 5], [6, 7, 8]])
    print(x)
    # [[1 2 3]
    #  [3 4 5]
    #  [6 7 8]]
    
    y = np.array([[5, 4, 2], [1, 7, 9], [0, 4, 5]])
    print(y)
    # [[5 4 2]
    #  [1 7 9]
    #  [0 4 5]]
    
    print(np.trace(x))  # A的迹等于A.T的迹
    # 13
    print(np.trace(np.transpose(x)))
    # 13
    
    print(np.trace(x + y))  # 和的迹 等于 迹的和
    # 30
    print(np.trace(x) + np.trace(y))
    # 30
    

    解方程和逆矩阵

    逆矩阵(inverse matrix)

    设 A 是数域上的一个 n 阶矩阵,若在相同数域上存在另一个 n 阶矩阵 B,使得:AB=BA=E(E 为单位矩阵),则我们称 B 是 A 的逆矩阵,而 A 则被称为可逆矩阵。

    • numpy.linalg.inv(a) 计算矩阵a的逆矩阵(矩阵可逆的充要条件:det(a) != 0,或者a满秩)。

    【例】计算矩阵的逆矩阵。

    import numpy as np
    
    A = np.array([[1, -2, 1], [0, 2, -1], [1, 1, -2]])
    print(A)
    # [[ 1 -2  1]
    #  [ 0  2 -1]
    #  [ 1  1 -2]]
    
    # 求A的行列式,不为零则存在逆矩阵
    A_det = np.linalg.det(A)  
    print(A_det)
    # -2.9999999999999996
    
    A_inverse = np.linalg.inv(A)  # 求A的逆矩阵
    print(A_inverse)
    # [[ 1.00000000e+00  1.00000000e+00 -1.11022302e-16]
    #  [ 3.33333333e-01  1.00000000e+00 -3.33333333e-01]
    #  [ 6.66666667e-01  1.00000000e+00 -6.66666667e-01]]
    
    x = np.allclose(np.dot(A, A_inverse), np.eye(3))
    print(x)  # True
    x = np.allclose(np.dot(A_inverse, A), np.eye(3))
    print(x)  # True
    
    A_companion = A_inverse * A_det  # 求A的伴随矩阵
    print(A_companion)
    # [[-3.00000000e+00 -3.00000000e+00  3.33066907e-16]
    #  [-1.00000000e+00 -3.00000000e+00  1.00000000e+00]
    #  [-2.00000000e+00 -3.00000000e+00  2.00000000e+00]]
    

    求解线性方程组

    • numpy.linalg.solve(a, b) 求解线性方程组或矩阵方程。

    【例】求解线性矩阵方程

    #  x + 2y +  z = 7
    # 2x -  y + 3z = 7
    # 3x +  y + 2z =18
    
    import numpy as np
    
    A = np.array([[1, 2, 1], [2, -1, 3], [3, 1, 2]])
    b = np.array([7, 7, 18])
    x = np.linalg.solve(A, b)
    print(x)  # [ 7.  1. -2.]
    
    x = np.linalg.inv(A).dot(b)
    print(x)  # [ 7.  1. -2.]
    
    y = np.allclose(np.dot(A, x), b)
    print(y)  # True
    

    参考文献

    • https://www.cnblogs.com/moon1992/p/4960700.html
    • https://www.cnblogs.com/moon1992/p/4948793.html

    练习题

    计算两个数组a和数组b之间的欧氏距离。

    • a = np.array([1, 2, 3, 4, 5])
    • b = np.array([4, 5, 6, 7, 8])

    【知识点:数学函数、线性代数】

    • 如何计算两个数组之间的欧式距离?
    import numpy as np
    
    a = np.array([1, 2, 3, 4, 5])
    b = np.array([4, 5, 6, 7, 8])
    
    # 方法1
    d = np.sqrt(np.sum((a - b) ** 2))
    print(d)  # 6.708203932499369
    
    # 方法2
    d = np.linalg.norm(a - b)
    print(d)  # 6.708203932499369
    
    6.708203932499369
    6.708203932499369
    

    计算矩阵的行列式和矩阵的逆

    np.diag([5,5,5,5,5])
    
    array([[5, 0, 0, 0, 0],
           [0, 5, 0, 0, 0],
           [0, 0, 5, 0, 0],
           [0, 0, 0, 5, 0],
           [0, 0, 0, 0, 5]])
    
     result=np.diag([5,5,5,5,5])
    
    np.linalg.det(result)
    
    3124.999999999999
    
    np.linalg.inv(result)
    
    array([[0.2, 0. , 0. , 0. , 0. ],
           [0. , 0.2, 0. , 0. , 0. ],
           [0. , 0. , 0.2, 0. , 0. ],
           [0. , 0. , 0. , 0.2, 0. ],
           [0. , 0. , 0. , 0. , 0.2]])
    
    展开全文
  • 2021线性代数复习要点+课后习题重要链接唐老师告诉大家7月份前我们怎么做高数第十二章考试内容与课后习题(内有高数第一到十一章...线性代数》同济第六版数学二、三不考的内容章节第四章第5节向量空间第六章全部课后习题...

     2021

    线性代数  复习要点+课后习题

    重要链接

    唐老师告诉大家7月份前我们怎么做

    高数第十二章考试内容与课后习题(内有高数第一到十一章的链接)

    一、复习要点与课后习题

    《线性代数》同济第六版数学一不考的内容
    第六章全部


    《线性代数》同济第六版数学二、三不考的内容

    第四章第5节向量空间
    第六章全部
    课后习题 :  数学一    第一章到第五章全部做,合计一百多题!


    数学二、三   第一章到第五章除了第四章35-38题外,其他全部做.

    二、 线性代数的考试大纲

    【线性代数的考试大纲数学一、二、三其实有一点点的区别,可以忽略!(因为每年数学一、二、三的五个线代题基本全一样)下面我给出的是数学二为蓝本的大纲!全体同学按此复习!】

    行列式

    考试内容

    行列式的概念和基本性质 行列式按行(列)展开定理

    考试要求

    1.了解行列式的概念,掌握行列式的性质.

    2.会应用行列式的性质和行列式按行(列)展开定理计算行列式.

    矩阵

    考试内容

    矩阵的概念 矩阵的线性运算 矩阵的乘法 方阵的幂 方阵乘积的行列式 矩阵的转置 逆矩阵的概念和性质 矩阵可逆的充分必要条件 伴随矩阵 矩阵的初等变换 初等矩阵 矩阵的秩 矩阵的等价分块矩阵及其运算 

    考试要求

    1.理解矩阵的概念,了解单位矩阵、数量矩阵、对角矩阵、三角矩阵、对称矩阵、反对称矩阵和正交矩阵以及它们的性质.

    2.掌握矩阵的线性运算、乘法、转置以及它们的运算规律,了解方阵的幂与方阵乘积的行列式的性质.

    3.理解逆矩阵的概念,掌握逆矩阵的性质以及矩阵可逆的充分必要条件.理解伴随矩阵的概念,会用伴随矩阵求逆矩阵.

    4.了解矩阵初等变换的概念,了解初等矩阵的性质和矩阵等价的概念,理解矩阵的秩的概念,掌握用初等变换求矩阵的秩和逆矩阵的方法.

    5.了解分块矩阵及其运算. 

    向量

    考试内容

    向量的概念 向量的线性组合和线性表示 向量组的线性相关与线性无关 向量组的极大线性无关组 等价向量组 向量组的秩 向量组的秩与矩阵的秩之间的关系 向量的内积 线性无关向量组的的正交规范化方法 

    考试要求

    1.了解向量的概念,掌握向量的加法和数乘运算规律.

    2.理解向量组线性相关、线性无关的概念,掌握向量组线性相关、线性无关的有关性质及判别法.

    3.理解向量组的极大线性无关组和向量组的秩的概念,会求向量组的极大线性无关组及秩.

    4.理解向量组等价的概念,了解矩阵的秩与其行(列)向量组的秩的关系.

    5.了解内积的概念,掌握线性无关向量组正交规范化的施密特(Schmidt)方法.

    线性方程组

    考试内容

    线性方程组的克莱姆(Cramer)法则 齐次线性方程组有非零解的充分必要条件 非齐次线性方程组有解的充分必要条件 线性方程组解的性质和解的结构 齐次线性方程组的基础解系和通解 非齐次线性方程组的通解

    考试要求

    1.会用克莱默法则解线性方程组.

    2.理解齐次线性方程组有非零解的充分必要条件及非齐次线性方程组有解的充分必要条件.

    3.理解齐次线性方程组的基础解系及通解的概念,掌握齐次线性方程组基础解系和通解的求法.

    4.理解非齐次线性方程组的解的结构及通解的概念.

    5.掌握用初等行变换求解线性方程组.

    矩阵的特征值及特征向量

    考试内容

    矩阵的特征值和特征向量的概念、性质  相似矩阵的概念及性质  矩阵可相似对角化的充分必要条件及相似对角矩阵  实对称矩阵的特征值、特征向量及其相似对角矩阵

    考试要求

    1.理解矩阵的特征值和特征向量的概念及性质,会求矩阵特征值和特征向量.

    2.理解相似矩阵的概念、性质及矩阵可相似对角化的充分必要条件,会将矩阵化为相似对角矩阵.

    3.掌握实对称矩阵的特征值和特征向量的性质.

    二次型

    考试内容

    二次型及其矩阵表示合同变换与合同矩阵二次型的秩惯性定理二次型的标准形和规范形  用正交变换和配方法化二次型为标准形  二次型及其矩阵的正定性

    考试要求

    1.了解二次型的概念,会用矩阵形式表示二次型,了解合同变换与合同矩阵的概念.

    2.了解二次型的秩的概念,了解二次型的标准形、规范形等概念,了解惯性定理,会用正交变换和配方法化二次型为标准形.

    3.理解正定二次型、正定矩阵的概念,并掌握其判别法.

    今晚7:30直播微分方程,请同学们在文都网校搜索我的春季先行班(免费)上收看

    我家那位逆行者的任务快结束了,再隔离一段时间就可以团聚了,向她致敬!

    b9032f469cbd3fc5ed733ceeca7d244c.png

    278ec97a4a0b0a4c9172c1c8af744688.png

    【课程推荐】 唐老师的全程陪伴班:全程直播(基础+强化+冲刺+模考),无限次回看。全程社群答疑,有问题随时群里留言!性价比最高,我敢说没有之一.     课程链接    2021考研数学全程陪伴班详情

    请同学们帮忙点右下角的在看,是对老师工作的支持!

    展开全文
  • 矩阵的初等变换与线性方程组 习题

    内容小结
    线⎧ ⎩ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ 3.13.23.3线3.4  

    3.1 矩阵的初等变换
    ⎧ ⎩ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎧ ⎩ ⎨ ⎪ ⎪ 1.i.j()2.k0i()3.i()k() {1.2.AB,AB ⎧ ⎩ ⎨ ⎪ ⎪ ⎪ ⎪ 1.(A|E)  (E|A 1 )(AE )  (EA 1  )2.A   

    3.2矩阵的秩
    ⎧ ⎩ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ {k: ⎧ ⎩ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ .R(A)=R(A T )B,R(AB)=R(A)R(A+B)R(A)+R(B)R(AB)min{(R(A),R(B)}R(AB)R(A)+R(B)nAB=0,R(A)+R(B)n   

    3.3线性方程组的解
    ⎧ ⎩ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ Ax=0⎧ ⎩ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ Ax=0:R(A)<n⎧ ⎩ ⎨ ⎪ ⎪ 1.2.3.  Ax=b⎧ ⎩ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ Ax=bR(A)=R(B)⎧ ⎩ ⎨ ⎪ ⎪ 1.广B2.3.    

    Ax=0 
    Ax=0R(A)=r=n 
    Ax=0R(A)=r<n 
    :x=k 1 ξ 1 +k 2 ξ 2 ++k nr ξ nr ξ 1 ,ξ 2 ,,ξ nr . 

    Ax=b 
    Ax=bR(A)R(B) 
    Ax=bR(A)=R(B)=r 
    1)r=n,.2)r<n,.:x=k 1 ξ 1 +k 2 ξ 2 ++k nr ξ nr +η  ξ 1 ,ξ 2 ,,ξ nr .η  . 

    3.4初等方阵
    ⎧ ⎩ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ { ⎧ ⎩ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ,.A m×n ,Am;A m×n ,An..   

    1.A=⎛ ⎝ ⎜ ⎜ ⎜ 2132 3223 1087 3234 7403 ⎞ ⎠ ⎟ ⎟ ⎟  
    :A=⎛ ⎝ ⎜ ⎜ ⎜ 2132 3223 1087 3234 7403 ⎞ ⎠ ⎟ ⎟ ⎟ ⎛ ⎝ ⎜ ⎜ ⎜ 1232 2323 0187 2334 4703 ⎞ ⎠ ⎟ ⎟ ⎟ ⎛ ⎝ ⎜ ⎜ ⎜ 1000 2100 0100 2111 4144 ⎞ ⎠ ⎟ ⎟ ⎟ ⎛ ⎝ ⎜ ⎜ ⎜ 1000 0100 2100 0110 2140 ⎞ ⎠ ⎟ ⎟ ⎟ ⎛ ⎝ ⎜ ⎜ ⎜ 1000 0100 2100 0010 2340 ⎞ ⎠ ⎟ ⎟ ⎟  

    2.,.A=⎛ ⎝ ⎜ ⎜ ⎜ 2231 1320 8053 3782 7500 ⎞ ⎠ ⎟ ⎟ ⎟  
    :A=⎛ ⎝ ⎜ ⎜ ⎜ 2231 1320 8053 3782 7500 ⎞ ⎠ ⎟ ⎟ ⎟ ⎛ ⎝ ⎜ ⎜ ⎜ 1232 0321 3058 2783 0507 ⎞ ⎠ ⎟ ⎟ ⎟ ⎛ ⎝ ⎜ ⎜ ⎜ 1000 0321 3642 2321 0507 ⎞ ⎠ ⎟ ⎟ ⎟ ⎛ ⎝ ⎜ ⎜ ⎜ 1000 0123 3246 2123 0705 ⎞ ⎠ ⎟ ⎟ ⎟ ⎛ ⎝ ⎜ ⎜ ⎜ 1000 0100 3200 2100 071416 ⎞ ⎠ ⎟ ⎟ ⎟ ⎛ ⎝ ⎜ ⎜ ⎜ 1000 0100 3200 2100 0711 ⎞ ⎠ ⎟ ⎟ ⎟ ⎛ ⎝ ⎜ ⎜ ⎜ 1000 0100 3200 2100 0010 ⎞ ⎠ ⎟ ⎟ ⎟ R(A)=3∣ ∣ ∣ ∣ 231 320 500 ∣ ∣ ∣ ∣ 0⎛ ⎝ ⎜ 231 320 500 ⎞ ⎠ ⎟  

    3.,:B=⎛ ⎝ ⎜ ⎜ ⎜ 3010 2221 0232 1121 ⎞ ⎠ ⎟ ⎟ ⎟  
    :(B|E)=⎛ ⎝ ⎜ ⎜ ⎜ 3010 2221 0232 1121 1000 0100 0010 0001 ⎞ ⎠ ⎟ ⎟ ⎟ ⎛ ⎝ ⎜ ⎜ ⎜ 1030 2221 3202 2111 0010 0100 1000 0001 ⎞ ⎠ ⎟ ⎟ ⎟ ⎛ ⎝ ⎜ ⎜ ⎜ 1000 2141 3092 2051 0010 0100 1030 0101 ⎞ ⎠ ⎟ ⎟ ⎟ ⎛ ⎝ ⎜ ⎜ ⎜ 1000 0100 1012 0011 0010 0101 1030 2142 ⎞ ⎠ ⎟ ⎟ ⎟ ⎛ ⎝ ⎜ ⎜ ⎜ 1000 0100 1011 0010 0011 0101 1033 2146 ⎞ ⎠ ⎟ ⎟ ⎟ ⎛ ⎝ ⎜ ⎜ ⎜ 1000 0100 1011 0001 0011 0110 1033 2164 ⎞ ⎠ ⎟ ⎟ ⎟ ⎛ ⎝ ⎜ ⎜ ⎜ 1000 0100 0010 0001 1012 1111 2036 41610 ⎞ ⎠ ⎟ ⎟ ⎟ B 1 =⎛ ⎝ ⎜ ⎜ ⎜ 1012 1111 2036 41610 ⎞ ⎠ ⎟ ⎟ ⎟  

    4.线: 
    ⎧ ⎩ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ 2x+3y+z=4x2y+4z=53x+8y2z=134xy+9z=6  
    :广BB=⎛ ⎝ ⎜ ⎜ ⎜ 2134 3281 1429 45136 ⎞ ⎠ ⎟ ⎟ ⎟ ⎛ ⎝ ⎜ ⎜ ⎜ 1234 2381 4129 54136 ⎞ ⎠ ⎟ ⎟ ⎟ ⎛ ⎝ ⎜ ⎜ ⎜ 1000 27147 47147 5142814 ⎞ ⎠ ⎟ ⎟ ⎟ ⎛ ⎝ ⎜ ⎜ ⎜ 1000 2100 4100 5200 ⎞ ⎠ ⎟ ⎟ ⎟ ⎛ ⎝ ⎜ ⎜ ⎜ 1000 0100 2100 1200 ⎞ ⎠ ⎟ ⎟ ⎟ R(A)=R(B)=2<n=3,: 
    {x+2z=1yz=2  
    {x=2z1y=z+2  
    z=k, 
    ⎧ ⎩ ⎨ ⎪ ⎪ x=2k1y=k+2z=k  
    ⎛ ⎝ ⎜ xyz ⎞ ⎠ ⎟ =k⎛ ⎝ ⎜ 211 ⎞ ⎠ ⎟ +⎛ ⎝ ⎜ 120 ⎞ ⎠ ⎟ (kR) 

    5.线 
    ⎧ ⎩ ⎨ ⎪ ⎪ 2x 1 +x 2 +x 3 =2x 1 2x 2 +x 3 =λx 1 +x 2 2x 3 =λ 2   
    λ?. 
    :广BB=⎛ ⎝ ⎜ 211 121 112 2λλ 2  ⎞ ⎠ ⎟ ⎛ ⎝ ⎜ 112 121 211 λ 2 λ2 ⎞ ⎠ ⎟ ⎛ ⎝ ⎜ 100 133 233 λ 2 λλ 2 2(λ+1)(λ1) ⎞ ⎠ ⎟ ⎛ ⎝ ⎜ 100 130 230 λ 2 λ(λ1)(λ+2)(λ1) ⎞ ⎠ ⎟ (λ+2)(λ1)=0,R(A)=R(B),.λ=2,B⎛ ⎝ ⎜ 100 130 230 460 ⎞ ⎠ ⎟ ⎛ ⎝ ⎜ 100 110 210 420 ⎞ ⎠ ⎟ ⎛ ⎝ ⎜ 100 010 110 220 ⎞ ⎠ ⎟  
    :{x 1 x 3 =2x 2 x 3 =2  
    {x 1 =x 3 +2x 2 =x 3 +2  
    x 3 =k,kR, 
    ⎧ ⎩ ⎨ ⎪ ⎪ x 1 =k+2x 2 =k+2x 3 =k  
    ⎛ ⎝ ⎜ x 1 x 2 x 3  ⎞ ⎠ ⎟ =k⎛ ⎝ ⎜ 111 ⎞ ⎠ ⎟ +⎛ ⎝ ⎜ 220 ⎞ ⎠ ⎟ (kR) 
    λ=1,B⎛ ⎝ ⎜ 100 130 230 1