• 第2章-矩阵及其运算-矩阵运算(2)


    from sympy.matrices import *
    1.加减
    A1=Matrix[1,1,1]
    A2=Matrix[1,2,1]
    A=A1+A2
    A=A1-A2


    2.数乘
    a=10
    A1=Matrix[1,1,1]
    A=a*A1


    3.矩阵乘积
    注意:只有当第一个矩阵(左矩阵)的列数等于第二个矩阵(右矩阵)的行数,两个矩阵才能相乘
    结果: A1(m,s)*A2(s,n)=A(m,n)
    A1=Matrix(2,3,[1,1,1,1,2,2])   #A1(2,3)
    A2=Matrix(3,2,[2,2,1,1,1,1])   #A2(3,2) 
    A=A1*A2  #A(2,2)



    扩展: A1*A2=A1@A2=A1.dot(A2)  点积


    4.矩阵的幂乘
    注意:矩阵必须为方矩阵(n,n) 
    结果: A**2=A*A,  A**3=A*A*A
    A=Matrix(3,3,[2,2,2,2,2,2,2,2,2]) #A(3,3)
    m=A**2   

    5.矩阵的转置A.T
    就是行列转化
    A=Matrix(2,2,[1,2,3,4])

    A.T

    6.对称矩阵
    定义:如果一个矩阵A的转置等于其本身即A=A.T, 则A称为对称矩阵
    A1=eye(3)
    A2=A1.T
    A2


    7.矩阵的行列式
    注意: 矩阵必须是方阵才有行列式
    A1=eye(3)
    A.det()

    8.矩阵代数余子式A.cofactor(i,j)
    A=Matrix(3,3,[1,2,3,4,5,6,7,8,9])
    A.cofactor(1,2)

    9.矩阵的伴随矩阵 A.adjugate()
    A=Matrix(3,3,[1,2,3,4,5,6,7,8,9])
    A.adjugate()

    10.矩阵的秩A.rank()
    A=Matrix(3,3,[1,2,3,4,5,6,7,8,9])
    A.rank() 

    11.逆矩阵
    注意:矩阵可逆的条件:|A|!=0
    from sympy.matrices import *
    A=Matrix(2,2,[1,2,3,7]) 
    A1=A.det()   #|A|
    A2=A.adjugate()   #A的伴随矩阵
    A4=1/A1*A2         #A的逆矩阵
    或使用公式求
    A3=A.inv()    #A的逆矩阵

    12.矩阵行列操作
    12.1 寻址取值
    A=Matrix(2,2,[1,2,3,4])
    A[1]  #2   取第1行第2列的数
    A[1,1] #4  取第2行第2列的数
    A[:,1]  #    取所有行的第2列的数即取第2列数
    A[0:2,1]  #取所有行的第2列的数即取第2列数
    A[0,:]     #取所有列的第1行的数即取第1行数 

    12.2函数取值
    (1)A.row(i) 取某一行
    (2)A.row([i,j,k])取多行
    A=Matrix(3,3,[1,2,3,4,5,6,7,8,9])
    A.row([0,2])    #等于A[[0,2],:]

    (3)A.col(i)
    (4)A.col([i,j,k])
    (5)A.row_insert(p,M)
    (6)A.col_insert(p,M)
    (7)A.row_del(i)
    (8)A.col_del(i)

  • 相关阅读:
    Go语言中向[]byte数组中增加一个元素
    MyBatis
    【leetcode】仅仅反转字母 c++
    python项目在麒麟V10上无法启动rabbitmq的问题记录
    「深度学习之优化算法」(十四)麻雀搜索算法
    vue3前端开发-小兔鲜项目-添加购物车操作第一步
    73、SpringBoot 直接整合 JDBC
    unocss+vite+vue3初使unocss
    充分利用自动化测试的 10 个最佳实践
    写完这篇 我的SQL优化能力直接进入新层次
  • 原文地址:https://blog.csdn.net/fanxianchao_2012/article/details/126142215