# Python数学应用(矢量图形-微积分-物理模拟-机器学习)

{% tabs %}
{% tab title="关键词" %}
Python | 数学 | 矢量图形 | 微积分 | 物理模拟 | 机器学习 | 矩阵计算 | 二角学 matplotlib 二维(2D) 三维(3D) 点积 叉积 线性变换线性方程组 NumPy 变化率 瞬时流量 平均流量 黎曼和 欧拉方法
{% endtab %}

{% tab title="梗概" %}
### 矢量图和图形

#### 2D矢量

* 绘制二维矢量 表示二维向量 Python 中的 2D 绘图
* 平面矢量算术 矢量分量和长度 向量乘以数字 减法、位移和距离
* 平面中的角度和二角学 角度到组件 Python中的弧度和三角函数 组件回到角度
* 转换向量集合 组合向量变换
* 使用 Matplotlib 绘图

#### 转换矢量图和图形

* 转换 3D 对象 绘制变换的对象 组合向量变换 围绕轴旋转对象 发明自己的几何变换
* 线性变换 保留向量算术 描绘线性变换 计算线性变换

#### 矩阵计算变换

* 用矩阵表示线性变换 将向量和线性变换写成矩阵 将矩阵与向量相乘 通过矩阵乘法组合线性变换 实现矩阵乘法 带有矩阵变换的 3D 动画
* 解释不同形状的矩阵 作为矩阵的列向量 哪些矩阵对可以相乘 将方阵和非方阵视为向量函数 投影为从 3D 到 2D 的线性映射 组成线性映射
* 用矩阵平移向量 使平面平移线性化 为 2D 平移寻找 3D 矩阵 将平移与其他线性变换相结合 在 4D 世界中平移 3D 对象

#### 更高维度

* 对向量的定义 为二维坐标向量创建一个类 改进 Vec2 类 使用 3D 矢量重复该过程 构建向量基类 定义向量空间 单元测试向量空间类
* 探索不同的向量空间 枚举所有坐标向量空间 在野外识别向量空间 将函数视为向量 将矩阵视为向量 用矢量运算处理图像
* 寻找更小的向量空间 识别子空间 从单个向量开始 跨越更大的空间 定义单词维度 寻找函数向量空间的子空间 图像的子空间

#### 解线性方程组

* 设计街机游戏 游戏建模 渲染游戏 发射激光
* 寻找线的交点 为线条选择正确的公式 找到一条线的标准形式方程 矩阵表示法中的线性方程 用 NumPy 求解线性方程 确定激光是否击中小行星 识别无法解决的系统
* 将线性方程更高维度 在 3D 中表示平面 求解 3D 线性方程组 代数研究超平面 计算维度、方程和解 通过求解线性方程来改变基础 求解 3D 示例

### 微积分和物理模拟

#### 了解变化率

* 从体积计算平均流量 实现 average\_flow\_rate 函数 用割线苗绘平均流量 负变化率
* 绘制随时间变化的平均流速 求不同时间间隔的平均流量 绘制区间流速
* 近似瞬时流量 寻找小割线的斜率 构建瞬时流量函数 对瞬时流量函数进行柯里化和绘图
* 近似体积变化 查找短时间间隔内的音量变化 将时间分成更小的间隔 在流量图上描绘体积变化
* 随时间绘制体积 随着时间的推移找到音量 描绘体积函数的黎曼和 改进近似值 定积分和不定积分

#### 模拟移动物体

* 模拟匀速运动 增加小行星的速度 更新游戏引擎以移动 小行星 将小行星保持在屏幕上
* 模拟加速度 加速宇宙飞船
* 深入研究欧拉的方法 手工执行欧拉方法 在 Python 中实现算法
* 用更小的时间步运行欧拉方法

#### 模拟力场

* 用矢量模拟重力 用势能函数模拟重力
* 模拟引力场 定义向量场 定义一个简单的力场 为小行星游戏添加重力 让游戏对象感受到重力
* 引入势能 定义势能标量场 将标量场绘制为热图 将标量场绘制为等高线图
* 用梯度连接能量和力 用横截面测量陡度 计算偏导数 使用梯度查找图的陡度 使用梯度从势能计算力场

#### 优化物理系统

* 测试弹丸模拟 使用 Euler 方法构建模拟 测量轨迹的特性 探索不同的发射角度
* 计算最佳范围 寻找射弹射程作为发射角度的函数 求解最大范围 识别最大值和最小值
* 增强我们的模拟 添加另一个维度 大炮周围的地形建模 在 3D 中求解弹丸的射程
* 使用梯度上升优化范围 绘图范围与启动参数 范围函数的梯度 用梯度寻找上坡方向 实现梯度上升

#### 用傅里叶级数分析声波

* 组合声波并分解它们
* 在 Python 中播放声波 产生我们的第一个声音 演奏音符
* 将正弦波变成声音 从正弦函数制作音频 改变正弦波的频率 采样和播放声波
* 结合声波制造新声波 添加采样声波以构建和弦 描绘两个声波的总和 构建正弦曲线的线性组合 使用正弦曲线构建熟悉的函数
* 将声波分解为其傅里叶级数 查找具有内积的向量分量 定义周期函数的内积 编写一个函数来查找傅立叶系数 求方波的傅立叶系数 其他波形的傅立叶系数

### 机器学习应用

#### 将函数拟合到数据

* 测量函数的拟合质量 测量与函数的距离 对误差的平方求和 计算汽车价格函数的成本
* 探索功能空间 描绘通过原点的线的成本 所有线性函数的空间
* 使用梯度下降找到最佳拟合线 重新缩放数据 寻找并给制最佳拟合线
* 拟合非线性函数 了解指数函数的行为 寻找最佳拟合的指数函数

#### 使用逻辑回归对数据进行分类

* 在真实数据上测试分类函数 加载汽车数据 测试分类功能
* 描绘决策边界 想象汽车的空间 绘制更好的决策边界 实现分类功能
* 将分类框架化为回归问题 缩放原始汽车数据 衡量汽车的"BMWness" 介绍 sigmoid 函数 将 sigmoid 函数与其他函数组合
* 探索可能的逻辑函数 参数化逻辑函数 测量逻辑函数的拟合质量 测试不同的逻辑函数
* 寻找最佳逻辑函数 二个维度的梯度下降 使用梯度下降找到最佳拟合 测试和理解最佳逻辑分类器

#### 训练神经网络

* 使用神经网络对数据进行分类
* 对手写数字的图像进行分类 构建 64 维图像向量 构建随机数字分类器 测量数字分类器的性能
* 设计神经网络 组织神经元和连接 通过神经网络的数据流 计算激活 以矩阵表示法计算激活
* Python构建神经网络 在 Python 中实现 MLP 类 评估 MLP 测试 MLP 的分类性能
* 使用梯度下降训练神经网络 将训练框架化为最小化问题 使用反向传播计算梯度 使用 scikit-learn 进行自动训练
* 使用反向传播计算梯度 根据最后一层权重查找成本 使用链式法则计算最后一层权重的偏导数
{% endtab %}
{% endtabs %}

{% content-ref url="../zhi-dian-mi-jin-brief" %}
[zhi-dian-mi-jin-brief](../zhi-dian-mi-jin-brief)
{% endcontent-ref %}
