Task04:线性代数

本文介绍了线性代数的基础概念,包括Numpy在矩阵运算中的应用,矩阵的特征值与特征向量的计算,以及SVD和QR分解的原理。重点探讨了矩阵乘法、特征向量的物理意义和SVD分解的可行性。通过实例展示了如何使用Numpy进行矩阵的奇异值分解和QR分解。
摘要由CSDN通过智能技术生成

Numpy之于线性代数

我看过最好的线性代数教程,莫过于:3Blue1Brown,吐血推荐。

想要认真吃透线性代数,刷完《线性代数及其应用》所有练习题就够了。

正片开始!

矩阵和向量积

一直以来矩阵相乘我用的都是np.matmul(x, y),今天才发现居然x.dot(y)也能做这件事,开心。
在这里插入图片描述
另外,在一维情况下和矩阵情况下的乘法是不一样的:
在这里插入图片描述
matrix.A可以快速将mat转为ndarray类型

矩阵特征值与特征向量

对于一个 N ∗ N N*N NN满秩方阵,总能有 N N N 个值 λ \lambda λ 和向量 x x x 对,满足:
A x = λ x Ax = \lambda x Ax=λx
这里的 λ \lambda λ x x x 就是特征向量和特征值。如何求?
A x = λ x Ax = \lambda x Ax=λx
( A x − λ x ) = 0 (Ax - \lambda x) = 0 (Axλx)=0
由于矩阵满足线性关系,所以这里的 x x x 可以提出来:
( A − λ I ) x = 0 (A - \lambda I)x = 0 (AλI)x=0
上式表示该方程组仅有 0 解、满秩,换句话说:
d e t ∣ A − λ I ∣ = 0 det|A - \lambda I| = 0 detAλI=0
由此可得一个一元 N 次的方程组,并可解得 N 个 λ \lambda λ 实数解。
将其代入 ( A − λ I ) x = 0 (A - \lambda I)x = 0 (AλI)x=0,可求得最终的特征向量。

其实怎么求特征向量和特征值这些都是小case,问题在于:

  • 为什么 N ∗ N N * N NN 的满秩方阵,总有特征值 / 特征向量对?
  • 什么条件下存在两个相同的特征向量?他们为什么存在?
  • 特征值 / 特征向量的意义是什么?
  • 非满秩矩阵的特征向量 / 特征值有什么特点?

建议先思考一会(估计也思考不出来啥,这个需要做题 + 总结),解释将在下文给出。

numpy中已经给出了实现:
在这里插入图片描述
这里不再进行过多阐述。

矩阵SVD分解

对任意一个 m ∗ n m*n mn的矩阵 A A A,都有:
A = ∑ i = 0 r σ i u i v i T A = \sum_{i=0}^{r} \sigma_i u_i v_i^T A=i=0r

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值