当前位置: 首页 > java >正文

编程之线性代数矩阵和概率论统计知识回顾

普通编程已经被AI覆盖,我们要向意念编程和自编程等高阶进化。

1.矩阵求逆

要计算矩阵的逆,我们需要手动执行高斯-约旦消元法。假设矩阵A是:

A = [[1, 1],[3, 2]]

下面是求逆的具体步骤:

1.1 构造增广矩阵[A|I],其中I是单位矩阵:

[1 1 | 1 0]
[3 2 | 0 1]

2. 进行行变换,将左侧变为单位矩阵:

  • 第2行 = 第2行 - 3×第1行:

    [1  1  |  1   0]
    [0 -1  | -3   1]
    
  • 第2行 = -1×第2行:

    [1 1 |  1  0]
    [0 1 |  3 -1]
    
  • 第1行 = 第1行 - 第2行:

    [1 0 | -2  1]
    [0 1 |  3 -1]
    

3. 右侧部分即为A的逆矩阵:

A⁻¹ = [[-2,  1],[3,  -1]]

验证结果:两个矩阵相乘应得到单位矩阵

A × A⁻¹ = [[1×(-2)+1×3, 1×1+1×(-1)],[3×(-2)+2×3, 3×1+2×(-1)]] = [[1,0],[0,1]]

这就是np.linalg.inv(A)计算出[[-2. 1. ] [ 1.5 -0.5]](可能你的原矩阵不同)的数学原理和过程。

import numpy as np
A = np.array([[1, 1], [3, 2]])
# 求逆
A_inv = np.linalg.inv(A)
print("矩阵求逆:\n", A_inv)  # 输出[[-2.   1. ] [ 1.5 -0.5]]

2. 特征值和特征向量

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

用Python验证

可以用NumPy快速计算验证结果:

import numpy as npA = np.array([[1, 2], [3, 4]])
eigenvalues, eigenvectors = np.linalg.eig(A)print("特征值:", eigenvalues)
print("特征向量(列向量):\n", eigenvectors)

输出结果应与上述推导一致(特征向量可能差一个非零常数倍,因为特征向量不唯一)。

3 均值 方差 标准差(总体、样本)等概念

要计算数组 arr = np.array([1, 2, 3, 4, 5]) 的方差和标准差,步骤如下:

步骤1:明确概念

  • 方差(Variance):衡量数据离散程度的指标,计算每个数据与平均值的差的平方的平均值。
  • 标准差(Standard Deviation):方差的平方根,与原始数据单位一致。

步骤2:计算平均值(Mean)

先计算数组的平均值 ( \mu ):
[
\mu = \frac{1 + 2 + 3 + 4 + 5}{5} = \frac{15}{5} = 3
]

步骤3:计算方差(Variance)

在这里插入图片描述

步骤4:计算标准差(Standard Deviation)

在这里插入图片描述

用Python验证

使用NumPy计算(默认计算总体方差和标准差,ddof=1 表示样本统计量):

import numpy as nparr = np.array([1, 2, 3, 4, 5])# 总体方差和标准差
var_pop = np.var(arr)       # 结果:2.0
std_pop = np.std(arr)       # 结果:1.414...# 样本方差和标准差(ddof=1表示自由度为n-1)
var_samp = np.var(arr, ddof=1)  # 结果:2.5
std_samp = np.std(arr, ddof=1)  # 结果:1.581...print("总体方差:", var_pop)
print("总体标准差:", std_pop)
print("样本方差:", var_samp)
print("样本标准差:", std_samp)

输出结果与手工计算一致。

http://www.xdnf.cn/news/17265.html

相关文章:

  • 基于langchain的两个实际应用:[MCP多服务器聊天系统]和[解析PDF文档的RAG问答]
  • 表单元素与美化技巧:打造用户友好的交互体验
  • 基于Ruby的IP池系统构建分布式爬虫架构
  • Qt帮助文档跳转问题修复指南
  • Flink-1.19.0源码详解9-ExecutionGraph生成-后篇
  • 通信中间件 Fast DDS(一) :编译、安装和测试
  • 汽车线束设计—导线的选取
  • WEB开发-第二十七天(PHP篇)
  • 中国MCP市场:腾讯、阿里、百度的本土化实践
  • Disruptor 消费者核心:BatchEventProcessor解析
  • 脱机部署k3s
  • 嵌入式硬件中MOSFET基本控制详解
  • 前端开发(HTML,CSS,VUE,JS)从入门到精通!第七天(Vue)(二)
  • FluentUI的介绍与使用案列
  • Pytest项目_day06(requests中Session的用法)
  • Spring文件泄露与修复方案总结
  • Go语言版JSON转TypeScript接口生成器:支持智能递归解析与命名优化
  • [Python 基础课程]Set
  • [Oracle] ROUND()函数
  • ORACLE 19C建库时卡在46%、36%
  • 《设计模式之禅》笔记摘录 - 13.迭代器模式
  • Kaggle 经典竞赛泰坦尼克号:超级无敌爆炸详细基础逐行讲解Pytorch实现代码,看完保证你也会!!!
  • 数据结构 二叉树(1)二叉树简单了解
  • 指挥中心自动化的演变
  • 状态模式及优化
  • 3479. 水果成篮 III
  • InfluxDB 集群部署与高可用方案(一)
  • 《深入浅出Embedding》这本书
  • ipv6学习
  • RNN梯度爆炸/消失的杀手锏——LSTM与GRU