程序员数学:用Python学透线性代数和微积分 中文目录

【程序员数学:用Python学透线性代数和微积分】
中文目录
第1章 通过代码学数学 1
  1.1 使用数学和软件解决商业问题 2
  1.1.1 预测金融市场走势 2
  1.1.2 寻找优质交易 4
  1.1.3 构建三维图形和动画 6
  1.1.4 对物理世界建模 8
  1.2 如何高效学习数学 9
  1.2.1 Jane想学习数学 9
  1.2.2 在数学课本中苦苦挣扎 10
  1.3 用上你训练有素的左脑 11
  1.3.1 使用正式的语言 11
  1.3.2 构建你自己的计算器 12
  1.3.3 用函数建立抽象概念 13
  1.4 小结 14
  
第一部分 向量和图形
第2章 二维向量绘图 16
  2.1 二维向量绘图 16
  2.1.1 如何表示二维向量 18
  2.1.2 用Python绘制二维图形 20
  2.1.3 练习 23
  2.2 平面向量运算 25
  2.2.1 向量的分量和长度 28
  2.2.2 向量与数相乘 29
  2.2.3 减法、位移和距离 31
  2.2.4 练习 34
  2.3 平面上的角度和三角学 41
  2.3.1 从角度到分量 42
  2.3.2 Python中的三角学和弧度 46
  2.3.3 从分量到角度 47
  2.3.4 练习 50
  2.4 向量集合的变换 57
  2.4.1 组合向量变换 59
  2.4.2 练习 60
  2.5 用Matplotlib绘图 61
  2.6 小结 62
第3章 上升到三维世界 63
  3.1 在三维空间中绘制向量 64
  3.1.1 用坐标表示三维向量 66
  3.1.2 用Python进行三维绘图 66
  3.1.3 练习 68
  3.2 三维空间中的向量运算 70
  3.2.1 添加三维向量 70
  3.2.2 三维空间中的标量乘法 72
  3.2.3 三维向量减法 72
  3.2.4 计算长度和距离 73
  3.2.5 计算角度和方向 74
  3.2.6 练习 75
  3.3 点积:测量向量对齐 78
  3.3.1 绘制点积 78
  3.3.2 计算点积 80
  3.3.3 点积的示例 82
  3.3.4 用点积测量角度 83
  3.3.5 练习 85
  3.4 向量积:测量定向区域 88
  3.4.1 在三维空间中确定自己的朝向 88
  3.4.2 找到向量积的方向 89
  3.4.3 求向量积的长度 91
  3.4.4 计算三维向量的向量积 92
  3.4.5 练习 93
  3.5 在二维平面上渲染三维对象 96
  3.5.1 使用向量定义三维对象 97
  3.5.2 二维投影 98
  3.5.3 确定面的朝向和阴影 99
  3.5.4 练习 101
  3.6 小结 102
第4章 变换向量和图形 103
  4.1 变换三维对象 105
  4.1.1 绘制变换后的对象 105
  4.1.2 组合向量变换 107
  4.1.3 绕轴旋转对象 110
  4.1.4 创造属于你自己的几何变换 113
  4.2 线性变换 117
  4.2.1 向量运算的不变性 117
  4.2.2 图解线性变换 119
  4.2.3 为什么要做线性变换 121
  4.2.4 计算线性变换 124
  4.2.5 练习 127
  4.3 小结 132
第5章 使用矩阵计算变换 134
  5.1 用矩阵表示线性变换 135
  5.1.1 把向量和线性变换写成矩阵形式 135
  5.1.2 矩阵与向量相乘 136
  5.1.3 用矩阵乘法组合线性变换 138
  5.1.4 实现矩阵乘法 140
  5.1.5 用矩阵变换表示三维动画 141
  5.1.6 练习 142
  5.2 不同形状矩阵的含义 148
  5.2.1 列向量组成的矩阵 149
  5.2.2 哪些矩阵可以相乘 151
  5.2.3 将方阵和非方阵视为向量函数 152
  5.2.4 从三维到二维的线性映射投影 154
  5.2.5 组合线性映射 156
  5.2.6 练习 157
  5.3 用矩阵平移向量 163
  5.3.1 线性化平面平移 163
  5.3.2 寻找做二维平移的三维矩阵 167
  5.3.4 在四维世界里平移三维对象 170
  5.4 小结 174
第6章 高维泛化 176
  6.1 泛化向量的定义 177
  6.1.1 为二维坐标向量创建一个类 178
  6.1.3 使用同样的方法定义三维向量 179
  6.1.4 构建向量基类 180
  6.1.5 定义向量空间 182
  6.1.6 对向量空间类进行单元测试 185
  6.2 探索不同的向量空间 188
  6.2.1 枚举所有坐标向量空间 188
  6.2.2 识别现实中的向量 190
  6.2.3 将函数作为向量处理 192
  6.2.4 将矩阵作为向量处理 194
  6.2.5 使用向量运算来操作图像 195
  6.2.6 练习 198
  6.3 寻找更小的向量空间 205
  6.3.1 定义子空间 205
  6.3.2 从单个向量开始 207
  6.3.3 生成更大的空间 207
  6.3.4 定义“维度”的概念 209
  6.3.5 寻找函数向量空间的子空间 210
  6.3.6 图像的子空间 212
  6.3.7 练习 214
  6.4 小结 220
第7章 求解线性方程组 222
  7.1 设计一款街机游戏 223
  7.1.1 游戏建模 223
  7.1.2 渲染游戏 224
  7.1.3 发射激光 225
  7.1.4 练习 226
  7.2 找到直线的交点 227
  7.2.1 为直线选择正确的公式 227
  7.2.2 直线的标准形式方程 229
  7.2.3 线性方程组的矩阵形式 231
  7.2.4 使用NumPy求解线性方程组 233
  7.2.6 识别不可解方程组 234
  7.2.7 练习 236
  7.3 将线性方程泛化到更高维度 240
  7.3.1 在三维空间中表示平面 240
  7.3.2 在三维空间中求解线性方程组 243
  7.3.4 计算维数、方程和解 245
  7.3.5 练习 246
  7.4 通过解线性方程来改变向量的基 253
  7.4.1 在三维空间中求解 255
  7.4.2 练习 256
  7.5 小结 257

第二部分 微积分和物理仿真
第8章 理解变化率 261
  8.1 根据体积计算平均流速 262
  8.1.1 实现average_flow_rate函数 263
  8.1.2 用割线描绘平均流速 264
  8.1.3 负变化率 265
  8.1.4 练习 266
  8.2 绘制随时间变化的平均流速 266
  8.2.1 计算不同时间段内的平均流速 267
  8.2.2 绘制间隔流速图 268
  8.2.3 练习 270
  8.3 瞬时流速的近似值 271
  8.3.1 计算小割线的斜率 272
  8.3.2 构建瞬时流速函数 274
  8.3.3 柯里化并绘制瞬时流速函数 277
  8.4 体积变化的近似值 278
  8.4.1 计算短时间间隔内的体积变化 279
  8.4.2 将时间分割成更小的间隔 280
  8.4.3 在流速图上绘制体积变化的图形 280
  8.4.4 练习 283
  8.5 绘制随时间变化的体积图 283
  8.5.1 计算随时间变化的体积 283
  8.5.2 绘制体积函数的黎曼和 285
  8.5.3 提升近似结果的精确度 286
  8.5.4 定积分和不定积分 288
  8.6 小结 290
第9章 模拟运动的对象 291
  9.1 模拟匀速运动 291
  9.1.1 给小行星设置速度 292
  9.1.2 更新游戏引擎,让小行星运动 292
  9.1.3 保持小行星在屏幕上 293
  9.1.4 练习 295
  9.2 模拟加速 295
  9.3 深入研究欧拉方法 296
  9.3.1 手动计算欧拉方法 297
  9.3.2 使用 Python 实现算法 298
  9.4 用更小的时间步执行欧拉方法 300
  9.5 小结 305
第10章 使用符号表达式 306
  10.1 用计算机代数系统计算精确的导数 309
  10.2.1 将表达式拆分成若干部分 310
  10.2.3 使用Python语言实现表达式树 311
  10.2.4 练习 313
  10.3 符号表达式的应用 315
  10.3.1 寻找表达式中的所有变量 317
  10.3.3 表达式展开 319
  10.3.4 练习 321
  10.4 求函数的导数 323
  10.4.1 幂的导数 324
  10.4.2 变换后函数的导数 324
  10.4.3 一些特殊函数的导数 326
  10.4.4 乘积与组合的导数 327
  10.4.5 练习 328
  10.5 自动计算导数 330
  10.5.1 实现表达式的导数方法 330
  10.5.2 实现乘积法则和链式法则 332
  10.5.4 练习 334
  10.6 符号化积分函数 335
  10.6.1 积分作为反导数 335
  10.6.2 SymPy库介绍 336
  10.6.3 练习 337
  10.7 小结 338
第11章 模拟力场 339
  11.1 用向量场对引力建模 339
  11.2 引力场建模 342
  11.2.1 定义一个向量场 343
  11.2.2 定义一个简单的力场 344
  11.3 把引力加入小行星游戏 345
  11.3.1 让游戏中的对象感受到引力 346
  11.3.2 练习 349
  11.4 引入势能 350
  11.4.1 定义势能标量场 351
  11.4.2 将标量场绘制成热图 352
  11.4.3 将标量场绘制成等高线图 354
  11.5.1 用横截面测量陡度 354
  11.5.2 计算偏导数 356
  11.5.3 用梯度求图形的陡度 357
  11.5.4 用势能的梯度计算力场 359
  11.5.5 练习 361
  11.6 小结 364
第12章 优化物理系统 365
  12.1 测试炮弹模拟器 367
  12.1.1 用欧拉方法建立模拟器 368
  12.1.2 测量弹道的属性 369
  12.1.3 探索不同的发射角度 370
  12.1.4 练习 371
  12.2 计算最佳射程 373
  12.2.1 求炮弹射程关于发射角的函数 373
  12.2.2 求最大射程 376
  12.2.3 确定最大值和最小值 378
  12.2.4 练习 379
  12.3 增强模拟器 381
  12.3.1 添加另一个维度 381
  12.3.2 在炮弹周围建立地形模型 383
  12.3.4 练习 386
  12.4 利用梯度上升优化范围 388
  12.4.1 绘制射程与发射参数的关系图 388
  12.4.2 射程函数的梯度 389
  12.4.3 利用梯度寻找上坡方向 390
  12.4.4 实现梯度上升 392
  12.4.5 练习 395
  12.5 小结 399
第13章 用傅里叶级数分析声波 400
  13.1 声波的组合和分解 401
  13.2 用Python播放声波 402
  13.2.1 产生第一个声音 402
  13.2.2 演奏音符 405
  13.2.3 练习 406
  13.3 把正弦波转化为声音 406
  13.3.1 用正弦函数制作音频 406
  13.3.2 改变正弦函数的频率 408
  13.3.3 对声波进行采样和播放 409
  13.3.4 练习 411
  13.4 组合声波得到新的声波 412
  13.4.1 叠加声波的样本来构造和弦 412
  13.4.2 两个声波叠加后的图形 413
  13.4.3 构造正弦波的线性组合 414
  13.4.4 用正弦波构造一个熟悉的函数 416
  13.4.5 练习 419
  13.5 将声波分解为傅里叶级数 419
  13.5.1 用内积确定向量分量 420
  13.5.2 定义周期函数的内积 421
  13.5.3 实现一个函数来计算傅里叶系数 423
  13.5.4 求方波的傅里叶系数 424
  13.5.5 其他波形的傅里叶系数 424
  13.5.6 练习 426
  13.6 小结 428

第三部分 机器学习的应用
第14章 数据的函数拟合 431
  14.1 衡量函数的拟合质量 433
  14.1.1 计算数据与函数的距离 434
  14.1.2 计算误差的平方和 436
  14.1.3 计算汽车价格函数的代价 440
  14.2 探索函数空间 441
  14.2.1 绘制通过原点的直线的代价 442
  14.2.2 所有线性函数的空间 443
  14.2.3 练习 445
  14.3 使用梯度下降法寻找最佳拟合线 445
  14.3.1 缩放数据 445
  14.3.2 找到并绘制最佳拟合线 446
  14.3.3 练习 447
  14.4 非线性函数拟合 448
  14.4.1 理解指数函数的行为 448
  14.4.2 寻找最佳拟合的指数函数 451
  14.5 小结 453
第15章 使用logistic回归对数据分类 455
  15.1 用真实数据测试分类函数 456
  15.1.1 加载汽车数据 457
  15.1.2 测试分类函数 458
  15.1.3 练习 458
  15.2 绘制决策边界 460
  15.2.1 绘制汽车的向量空间 460
  15.2.2 绘制更好的决策边界 461
  15.2.3 实现分类函数 462
  15.2.4 练习 463
  15.3 将分类问题构造为回归问题 464
  15.3.1 缩放原始汽车数据 464
  15.3.2 衡量汽车的“宝马性” 465
  15.3.3 sigmoid函数 467
  15.3.4 将sigmoid函数与其他函数组合 468
  15.3.5 练习 470
  15.4 探索可能的logistic函数 471
  15.4.1 参数化logistic函数 472
  15.4.2 衡量logistic函数的拟合质量 472
  15.4.3 测试不同的logistic函数 474
  15.4.4 练习 475
  15.5 寻找最佳logistic函数 477
  15.5.1 三维中的梯度下降法 477
  15.5.2 使用梯度下降法寻找最佳拟合 478
  15.5.3 测试和理解最佳logistic分类器 479
  15.5.4 练习 481
  15.6 小结 483
第16章 训练神经网络 484
  16.1 用神经网络对数据进行分类 485
  16.2 手写数字图像分类 486
  16.2.1 构建64维图像向量 487
  16.2.2 构建随机数字分类器 488
  16.2.3 测试数字分类器的表现 489
  16.2.4 练习 490
  16.3 设计神经网络 491
  16.3.1 组织神经元和连接 492
  16.3.2 神经网络数据流 492
  16.3.3 计算激活值 495
  16.3.4 用矩阵表示法计算激活值 498
  16.4 用Python构建神经网络 499
  16.4.1 用Python实现MLP类 500
  16.4.2 评估MLP 502
  16.4.3 测试MLP的分类效果 503
  16.4.4 练习 504
  16.5 使用梯度下降法训练神经网络 504
  16.5.1 将训练构造为最小化问题 505
  16.5.3 使用scikit-learn自动训练 507
  16.6 使用反向传播计算梯度 509
  16.6.1 根据最后一层的权重计算代价 509
  16.6.2 利用链式法则计算最后一层权重的偏导数 510
  16.6.3 练习 512
  16.7 小结 513

附录A 准备Python(图灵社区下载)
附录B Python技巧和窍门(图灵社区下载)
附录C 使用OpenGL和PyGame加载和渲染三维模型(图灵社区下载)
附录D 数学符号参考(图灵社区下载

参阅:程序员数学:用Python学透线性代数和微积分
下载:随书下载=> 源代码文件.zip

解压 源代码文件.zip 后访问目录 Math-for-Programmers-master\
点击 Anaconda3:Jupyter Notebook 打开 *.ipynb 文件,可见源代码。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/457209.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用FRP搭建内网穿透服务(新版toml配置文件,搭配反向代理方便内网网站访问)【使用frp搭建内网穿透】

FRP(Fast Reverse Proxy)是一个高性能的反向代理应用程序,主要用于内网穿透。它允许用户将内部网络服务暴露到外部网络,适用于 NAT 或防火墙环境下的服务访问。 他是一个开源的 服务 如果大家不想用 花生壳 软件,可以尝…

卷积神经网络评价指标

1.评价指标的作用 1. 性能评估:评价指标提供了一种量化的方式来衡量CNN模型的性能。通过这些指标,我们可以了解模型在特定任务上的表现,比如图像分类、目标检测或图像分割等。 2. 模型比较:不同的模型架构或训练策略可能会产生不…

基于SSM考研助手系统的设计

管理员账户功能包括:系统首页,个人中心,学生管理,教学秘书管理,考研资讯管理,考研名师管理,考研信息管理,系统管理 教学秘书账号功能包括:系统首页,个人中心…

如何快速解决游戏提示系统中的emp.dll缺失问题

emp.dll是一个动态链接库(Dynamic Link Library, DLL)文件,这类文件在Windows操作系统中扮演着至关重要的角色。它们包含了可由多个程序同时使用的代码和数据,其主要目的是实现模块化,以便于程序的更新和动态链接。emp…

es实现自动补全

目录 自动补全 拼音分词器 安装拼音分词器 第一步:下载zip包,并解压缩 第二步:去docker找到es-plugins数据卷挂载的位置,并进入这个目录 第三步:把拼音分词器的安装包拖到这个目录下 第四步:重启es 第…

RV1126音视频学习(二)-----VI模块

文章目录 前言2.RV1126的视频输入vi模块2.1什么是VI模块2.3RV1126VI模块主要APIRK_MPI_SYS_Init()RK_MPI_VI_SetChnAttrRK_MPI_VI_EnableChnRK_S32 RK_MPI_VI_DisableChnRK_MPI_VI_StartStreamRK_MPI_SYS_GetMediaBufferRK_MPI_MB_GetPtrRK_MPI_MB_GetSizeRK_MPI_MB_ReleaseBuf…

【NOIP提高组】加分二叉树

【NOIP提高组】加分二叉树 💐The Begin💐点点关注,收藏不迷路💐 设一个n个节点的二叉树tree的中序遍历为(l,2,3,…,n),其中数字1,2,3,…,n为节点编号。每个节点都有一个分数(均为正整…

读《认知觉醒》:浅谈费曼技巧

最近在阅读《认知觉醒》这本书,封面如下: 读到了里面对于费曼技巧的介绍(在第八章),感觉受到了一些启发,在这里分享给大家。 其实之前很早就接触过了费曼技巧,但是并没有很好的应用起来&#x…

零代码快速开发智能体 |甘肃旅游通

零代码快速开发智能体 |甘肃旅游通 本文仅用于文心智能体的活动征文 参与人:mengbei_admin 文心智能体平台是人工智能领域的佼佼者。它拥有强大的语言理解与生成能力,能精准回应各种问题,出色完成文本创作、知识问答和翻译等任…

线性表之双向链表

链表花里胡哨,一应俱全 前言 在这之前,我们已经学习了单链表。我们发现这些链表都是一个接一个朝一个方向接下去,有时,我们想要查找某个结点的时候还得从头开始遍历查找,尽管我们已经学习了顺序表,查找某个…

免费PDF页面提取小工具

下载地址 https://download.csdn.net/download/woshichenpi/89922797 使用说明:PDF页面提取工具 1. 启动应用程序 双击程序的启动图标或者通过命令行运行程序。 2. 选择PDF文件 在应用程序窗口中找到“选择PDF”按钮并点击它。在弹出的文件选择对话框中&#x…

Windows server 2003服务器的安装

Windows server 2003服务器的安装 安装前的准备: 1.镜像SN序列号 图1-1 Windows server 2003的安装包非常人性化 2.指定一个安装位置 图1-2 选择好安装位置 3.启动虚拟机打开安装向导 图1-3 打开VMware17安装向导 图1-4 给虚拟光驱插入光盘镜像 图1-5 输入SN并…

Linux系统安装Redis详细操作步骤(二进制发布包安装方式)

安装方式介绍 在Linux系统中,安装软件的方式主要有四种,这四种安装方式的特点如下: 安装方式特点二进制发布包安装软件已经针对具体平台编译打包发布,只要解压,修改配置即可rpm安装软件已经按照redhat的包管理规范进…

Redis 集群 总结

前言 相关系列 《Redis & 目录》(持续更新)《Redis & 集群 & 源码》(学习过程/多有漏误/仅作参考/不再更新)《Redis & 集群 & 总结》(学习总结/最新最准/持续更新)《Redis & 集群…

计算机网络:网络层 —— IPv4 地址与 MAC 地址 | ARP 协议

文章目录 IPv4地址与MAC地址的封装位置IPv4地址与MAC地址的关系地址解析协议ARP工作原理ARP高速缓存表 IPv4地址与MAC地址的封装位置 在数据传输过程中,每一层都会添加自己的头部信息,最终形成完整的数据包。具体来说: 应用层生成的应用程序…

Java--反射机制

前言: 反射与之前的知识的区别 1.面向对象中创建对象,调用指定结构(属性、方法)等功能,可以不使用反射,也可以使用反射。请问有什么区别? 不使用反射,我们需要考虑封装性。比如:出了自定义类之后,就不能…

WPF+MVVM案例实战(六)- 自定义分页控件实现

文章目录 1、项目准备2、功能实现1、分页控件 DataPager 实现2、分页控件数据模型与查询行为3、数据界面实现 3、运行效果4、源代码获取 1、项目准备 打开项目 Wpf_Examples,新建 PageBarWindow.xaml 界面、PageBarViewModel.cs ,在用户控件库 UserControlLib中创建…

电池的主被动均衡

只有串联的电池需要进行电压均衡,并联的电池由于电压一致,所以并不需要进行均衡: 被动均衡有一个很明显的特征就是会看到很多大电阻,串联在MOS和电池之间:下图中的保护板就是被动均衡板子以及它的原理图: …

软硬件开发面试问题大汇总篇——针对非常规八股问题的提问与应答

软硬件开发,从微控制器编程到复杂的嵌入式系统开发,离不开下位机、操作系统、上位机等,涵盖范围很广。 如何快速一行代码操作硬件寄存器 直接操作硬件寄存器的代码通常依赖于特定平台和编程语言。在 C 或 C 中,常见的方法是使用指…

WORFBENCH:一个创新的评估基准,目的是全面测试大型语言模型在生成复杂工作流 方面的性能。

2024-10-10,由浙江大学和阿里巴巴集团联合创建的WORFBENCH,一个用于评估大型语言模型(LLMs)生成工作流能力的基准测试。它包含了一系列的测试和评估协议,用于量化和分析LLMs在处理复杂任务时分解问题和规划执行步骤的能力。WORFBE…