集成学习-高等线性代数-基于python(DataWhale第二期)

线性代数

【转载自B站:萌弟AI数学基础基于Python】

第一章:向量空间

举例:正如我们所生活的三维空间,它就是一个向量空间。

定义:令F是一个数域,对于一个集合V,对于任意的a,b∈F,α,β,γ∈V,我们称V为一个向量空间,则它必须满足以下条件:

(1)α+β=β+α;

(2)(α+β)+γ=α+(β+γ);

(3)∃0∈V,它具有以下性质:∀α∈V,都有0+α=α;

(4)对于V中的每一个向量α,在V中存在一个向量α′,使得α+α′=0。这样的α′叫做α的负向量;

(5)a(α+β)=aα+aβ:

(6)(a+b)α=aα+bβ;

(7)(ab)α=a(bα);

(8)1α=α。

第二章:向量及其内积

import numpy as np
a = np.array([1,0,0,0])
b = np.array([1,1,0,0])
np.dot(a,b)

output : 1

什么是向量?

我们称向量空间中的元素为为向量,向量空间中的向量满足向量的加法及数量乘法,向量的加法满足平行四边形法则;而向量的内积则是指在向量空间中所定义的一种运算,内积也称为点积,其结果是一个实数。对于向量空间中的两个向量a,b,它们的内积为:

                       a⋅b=|a|⋅|b|cosθ

x1(2,3) x2(1,2) 的内积为(12) + (32) = 8(实数R 8)
其中θ是a,b的夹角。

向量内积满足:

⟨α,β⟩=⟨β,α⟩

k⟨α,β⟩=⟨kα,β⟩=⟨α,kβ⟩

⟨α+β,γ⟩=⟨α,β⟩+⟨β,γ⟩

⟨α,α⟩⩾0,等号成立当且仅当α=0

用numpy写一个向量a⃗ =(a1,a2,…,an),代码为:
import numpy
a=array([a1,a2,⋯,an])
用代码表示两向量a⃗ ,b⃗ 的内积:
c=dot(numpy.transpose(a),b)

c=dot(a.T,b)

在这里插入图片描述

from sympy.matrices import Matrix,GramSchmidt
# Schmidt 正交化:由一个线性无关向量组来构造一个正交向量组
l = [Matrix([1,2,-1]),Matrix([-1,3,1]),Matrix([4,1,0])]
o = GramSchmidt(l,True) # 正交化
o
[Matrix([
 [ sqrt(6)/6],
 [ sqrt(6)/3],
 [-sqrt(6)/6]]), Matrix([
 [-sqrt(3)/3],
 [ sqrt(3)/3],
 [ sqrt(3)/3]]), Matrix([
 [sqrt(2)/2],
 [        0],
 [sqrt(2)/2]])]

第三章:范数

在这里插入图片描述

第四章:矩阵及矩阵的秩

什么是矩阵?

矩阵是一个由m行n列数字构成的一个数表,我们一般会在矩阵的外面加上一个圆括号或中括号,表示这是一个整体,并用大写字母A表示,
在这里插入图片描述

# 矩阵的乘法
A = np.array([[2,1,4],
             [1,-1,3]])
B = np.array([[1,3,1],
             [0,-1,2],
             [1,-3,1]])
np.matmul(A,B)
array([[ 6, -7,  8],
       [ 4, -5,  2]])

在这里插入图片描述

第五章:矩阵范数

在这里插入图片描述

第六章:矩阵的秩 齐次线性方程组及其解空间

在这里插入图片描述
在这里插入图片描述

# 矩阵的秩
# 一个矩阵中不等于零的子式的最大阶数
x = np.array([[2,0,1],
             [1,-4,-1],
             [-1,8,3]])
np.linalg.matrix_rank(x)
3
x = np.array([[2,0,1],
             [0,1,0],
             [0,0,0]])
np.linalg.matrix_rank(x)
2
x = np.array([[2,0,1],
             [0,0,0],
             [0,0,0]])
np.linalg.matrix_rank(x)
1
x = np.array([[0,0,0],
             [0,0,0],
             [0,0,0]])
np.linalg.matrix_rank(x)
0

在这里插入图片描述

import numpy
A=numpy.mat(’a11 ⋯ a1n;⋯;am1 ⋯ amn’)
b=zeors(1,n)
x=numpy.linalg.solve(A,b)
print(x)

第七章:特征值与特征向量及矩阵的迹

在这里插入图片描述

import numpy as np
A=np.mat(’a11 ⋯ a1n;⋯;an1 ⋯ ann’)
np.linalg.eig(A)

# 特征值和特征向量
# 特征值:某个向量的变化大小叫特征值
# 特征向量:某个向量依然保持这个方向
x = np.array([[-1,1,0],
             [-4,3,0],
             [1,0,2]])
np.linalg.eig(x)
(array([2., 1., 1.]), array([[ 0.        ,  0.40824829,  0.40824829],
        [ 0.        ,  0.81649658,  0.81649658],
        [ 1.        , -0.40824829, -0.40824829]]))
# 矩阵的迹
# 一个矩阵变化的速率
x = np.array([[-1,1,0],
             [-4,3,0],
             [1,0,2]])
np.trace(x)
4

import numpy as np
trA = 0 A = array([(a11,⋯,a1n),⋯,(an1,⋯,ann)])
for i in range(0,n):
trA = A[i,1] + trA
print(trA)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值