程序员的数学【线性代数高级】(一)

简介: 本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 线性代数高级

前言

本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 线性代数高级,读之前建议先看:程序员的数学【线性代数基础】本文涵盖了一些计算的问题并使用代码进行了实现,安装代码运行环境见博客:最详细的Anaconda Installers 的安装【numpy,jupyter】(图+文)如果你只是想要简单的了解有关线代的内容,那么只需要学习一下博文:NumPy从入门到高级,如果你是跟着博主学习AIoT的小伙伴,建议先看博文:数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解),如果你没有Python基础,那么还需先修博文:Python的进阶之道【AIoT阶段一(上)】(十五万字博文 保姆级讲解)


一、特征值和特征向量

1.1 概念定义

🚩两个向量相乘效果图如下:

image.png

看图,这张图片竖直方向进行偏移,形象说明了向量相乘效果:

image.png

image.png

import numpy as np
A = np.random.randint(1, 10, size = (4, 4))
display(A)
print('------------------------')
if np.linalg.matrix_rank(A) == 4: # 必须是满秩矩阵
    # 实对称矩阵特征值为实数,非对称矩阵和复矩阵特征值可能为复数
    w, v = np.linalg.eig(A) # 返回特征值和特征向量
    display(w, v)
    w = np.real(w)
    v = np.real(v)
    print('------------------------')
    display(A.dot(v[:, 0]))
    display(w[0] * v[:, 0])

5.png

实对称矩阵,求解特征值和特征向量为实数

# 实对称矩阵
import numpy as np
B = np.array([[1, 2, 3],
              [2, 5, 8],
              [3, 8, 9]])
np.linalg.eig(B)

image.png

矩阵的秩: 用初等行变换将矩阵 A化为阶梯形矩阵, 则矩阵中非零行的个数就定义为这个矩阵的秩, 记为 r ( A ) 。

image.png

image.png

经过初等变换可知这个方程无解。

import numpy as np
X = np.array([[1, 2, 3],
              [4, 5, 6],
              [7, 8, 2]])
y = np.array([1, 2, 3])
# 查看矩阵秩,输出结果为2
print('矩阵X的秩为:',np.linalg.matrix_rank(X))
# 尝试求解报错,说明方程没有唯一解 
np.linalg.solve(X,y)

image.png

1.2 满秩矩阵

🚩满秩矩阵(non-singular matrix): 设A 是 n  阶矩阵, 若 r ( A ) = n , 则称 A 为 满秩矩阵。但满秩不局限于n阶矩阵。若矩阵秩等于行数,称为行满秩;若矩阵秩等于列数,称为列满秩。既是行满秩又是列满秩则为n阶矩阵即n阶方阵

image.png

image.png

根据初等行变换,可得:

image.png

1.3 方程的解

import numpy as np
X = np.array([[0, 2, -1],
              [1, -1, 1],
              [2, 1, -1]])
y = np.array([1, 0, -2])
# 查看矩阵秩
print('矩阵X的秩为:',np.linalg.matrix_rank(X))
# 尝试求解报错,说明方程没有唯一解 
np.linalg.solve(X,y).round(2)

image.png

1.4 特征值和特征向量示例

🚩所有特征值的乘积等于 A 的行列式的:

image.png

import numpy as np
X = np.array([[2, 3, 7],
              [1, 5, 8],
              [0, 4, 9]])
# w表示特征值,v表示特征向量
w,v = np.linalg.eig(X)
print('矩阵X的行列式:',np.linalg.det(X))
print('特征值累乘值:',np.round(np.real(np.prod(w))))

image.png

特征值和特征向量在机器学习中会被用到,像PCA主成分分析,LDA线性判别分析,以及其它算法里面都会用到它的理论和方法。




目录
相关文章
|
机器学习/深度学习 资源调度 算法
【机器学习基础】多元线性回归(适合初学者的保姆级文章)
【机器学习基础】多元线性回归(适合初学者的保姆级文章)
697 0
|
5月前
|
人工智能 Java API
Spring AI 实战|Spring AI入门之DeepSeek调用
本文介绍了Spring AI框架如何帮助Java开发者轻松集成和使用大模型API。文章从Spring AI的初探开始,探讨了其核心能力及应用场景,包括手动与自动发起请求、流式响应实现打字机效果,以及兼容不同AI服务(如DeepSeek、通义千问)的方法。同时,还详细讲解了如何在生产环境中添加监控以优化性能和成本管理。通过Spring AI,开发者可以简化大模型调用流程,降低复杂度,为企业智能应用开发提供强大支持。最后,文章展望了Spring AI在未来AI时代的重要作用,鼓励开发者积极拥抱这一技术变革。
1764 71
Spring AI 实战|Spring AI入门之DeepSeek调用
|
8月前
|
人工智能 安全 机器人
重磅发布的「AI视频通话」如何10分钟就实现?
2024年,OpenAI发布GPT-4o,支持文本、音频和图像的组合输入与输出,使交互更接近自然交流。传统语音助手需经历多阶段处理,容易出现延迟或误解,体验感差。本文介绍如何在阿里云上快速创建可视频通话的AI智能体,实现拟人化交互、精准感知、情绪捕捉等功能,提供高质量、低延时的音视频通话体验。通过简单的部署流程,用户可以轻松创建并体验这一先进的人机交互技术。点击“阅读原文”参与活动赢取惊喜礼物。
|
9月前
|
人工智能 搜索推荐 Serverless
云端问道22期——AI智能语音实时互动
《云端问道22期——AI智能语音实时互动》分享了构建用户与AI智能语音实时互动的方法,涵盖七个部分:进入解决方案页、方案介绍、操作步骤、创建AI智能体、实时工作模版、部署应用及应用体验。通过阿里云平台,用户可以快速部署并体验AI语音通话功能,包括语音转文字、文字转语音、个性化定制智能体人设及接入私有知识库等。整个过程简单流畅,适合开发者和企业快速上手。
433 8
|
10月前
|
人工智能 Serverless 视频直播
活动实践 | AI智能体实时语音互动
AI智能体实时语音互动方案提供端到端的实时音频交互,用户通过终端SDK与云端AI智能体进行音频通话。AI智能体接收音频输入,依据预定义工作流处理并生成响应,通过ARTC网络推送结果。该方案支持灵活编排AI组件如语音转文字、大语言模型等,确保高可用、低延迟的通信体验。用户可轻松创建和管理智能体及实时工作流,实现高效对话,并可通过示例网站体验功能。
|
Java 编译器 数据库连接
Cause java.sql.SQLDataException Unsupported conversion from LONG to java.sql.Timestamp
Cause java.sql.SQLDataException Unsupported conversion from LONG to java.sql.Timestamp
1332 0
|
12月前
|
存储 SQL 分布式计算
湖仓一体架构深度解析:构建企业级数据管理与分析的新基石
【10月更文挑战第7天】湖仓一体架构深度解析:构建企业级数据管理与分析的新基石
756 1
|
自然语言处理 安全 网络安全
WBCE CMS v1.5.2 远程命令执行(CVE-2022-25099)
WBCE CMS v1.5.2 远程命令执行(CVE-2022-25099)
|
算法 JavaScript 前端开发
Vue3——Router4教程(小满版本)(一)
Vue3——Router4教程(小满版本)
576 0
|
JavaScript 前端开发 C++
jupyter lab最强代码提示插件来了
jupyter lab最强代码提示插件来了
943 0