程序员的数学【线性代数基础】(三)

简介: 本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 线性代数基础,在机器学习中经常会有矩阵、向量的定义以及计算,是公式定义、推导中必不可少的一部分内容,很多基础概念的定义中都用到了向量的概念,有关线性代数,

10.行列式

🚩 行列式其实在机器学习中用的并不多,一个矩阵必须是方阵,才能计算它的行列式

行列式是把矩阵变成一个标量

image.png

import numpy as np
A = np.array([[1,3],[2,5]])
display(A)
print('矩阵A的行列式是:\n',np.linalg.det(A))

image.png

行列式在求解,逆矩阵的过程中,起到了作用,行列式 不为0,才可以求解逆矩阵!

import numpy as np
A = np.array([[1,3],[2,6]])
display(A)
print('矩阵A的行列式是:\n',np.linalg.det(A))
# 无法求解行列式,报错信息:LinAlgError: Singular matrix
print('矩阵A的逆矩阵为:\n',np.linalg.inv(A))

2.png

11.伴随矩阵

11.1 代数余子式

🚩 代数余子式定义:

image.png

代数余子式计算

image.png

计算过程如下:

image.png

11.2 伴随矩阵定义

🚩 设有一矩阵A:

image.png

image.png

称为矩阵 A伴随矩阵

11.3 伴随矩阵性质

image.png

11.4 伴随矩阵与逆矩阵

image.png

import numpy as np
# 声明矩阵
A = np.array([
    [1, 2, 3],
    [2, 2, 1],
    [3, 4, 3]])
A_bs = [] # 伴随矩阵
n = 3 # A方阵的行、列数量
for i in range(n):
    for j in range(n):
        row = [0, 1, 2] # 行索引
        col = [0, 1, 2] # 列索引
        row.remove(i) # 去除行
        col.remove(j) # 去除列
        # 代数余子式
        A_ij = A[np.ix_(row, col)]
        A_bs.append(((-1) ** (i + j)) * np.linalg.det(A_ij))
A_bs = np.array(A_bs).reshape(3, 3).T
print('根据伴随矩阵求逆矩阵:\n', A_bs / np.linalg.det(A))
print('用NumPy模块求逆矩阵:\n', np.linalg.inv(A))

image.png


image.pngimage.pngimage.png

目录
相关文章
|
机器学习/深度学习 人工智能 程序员
程序员的数学【线性代数基础】(二)
本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 线性代数基础,在机器学习中经常会有矩阵、向量的定义以及计算,是公式定义、推导中必不可少的一部分内容,很多基础概念的定义中都用到了向量的概念,有关线性代数,
119 0
程序员的数学【线性代数基础】(二)
|
机器学习/深度学习 数据挖掘 程序员
程序员的数学【线性代数基础】(一)
本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 线性代数基础,在机器学习中经常会有矩阵、向量的定义以及计算,是公式定义、推导中必不可少的一部分内容,很多基础概念的定义中都用到了向量的概念,有关线性代数,
280 0
程序员的数学【线性代数基础】(一)
|
存储 程序员 Python
程序员的数学【线性代数高级】(二)
本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 线性代数高级
180 0
程序员的数学【线性代数高级】(二)
|
搜索推荐 算法 程序员
程序员的数学【线性代数高级】(三)
本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 线性代数高级
122 0
程序员的数学【线性代数高级】(三)
|
机器学习/深度学习 算法 数据挖掘
程序员的数学【线性代数高级】(一)
本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 线性代数高级
147 0
程序员的数学【线性代数高级】(一)
|
机器学习/深度学习 程序员
程序员的数学【微积分基础】(二)
本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 微积分基础,微积分是公式推导的基础,如果你也关注我的专栏:西瓜书读书笔记,里面对公式进行详细推导的过程中,运用到了大量的 导数,积分,身为一名程序员,我们务必掌握一些必备的数学知识。
198 0
程序员的数学【微积分基础】(二)
|
机器学习/深度学习 程序员
程序员的数学【微积分基础】(一)
本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 微积分基础,微积分是公式推导的基础,如果你也关注我的专栏:西瓜书读书笔记,里面对公式进行详细推导的过程中,运用到了大量的 导数,积分,身为一名程序员,我们务必掌握一些必备的数学知识。
216 0
程序员的数学【微积分基础】(一)
|
机器学习/深度学习 程序员
程序员的数学【概率论】(三)
本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 概率论
106 0
程序员的数学【概率论】(三)
|
机器学习/深度学习 算法 数据挖掘
程序员的数学【概率论】(一)
本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 概率论
227 0
程序员的数学【概率论】(一)
|
程序员
程序员的数学【概率论】(二)
本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 概率论
182 0
程序员的数学【概率论】(二)