本书以 Python 软件为基础, 详细介绍了数学建模的各种常用算法及其软件实现, 内容涉及高等数学、工程数学中的相关数学实验、数学规划、插值与拟合、微分方程、差分方程、评价预测、图论模型、多元分析、Monte Carlo 模拟、智能算法、时间序列分析、支持向量机、图像处理等内容, 既有对算法数学原理的详述, 又有案例和配套的 Python 程序. 本书含有 Python 快速入门基础, 可以帮助 Python 零基础的读者快速掌握Python 语言. 但对于没有其他任何编程语言基础的读者, 建议参考一些更加具体的 Python 相关书籍.
样章试读
目录
- 目 录
前言
第 1 章 Python 语言快速入门 1
1.1 Python 的安装与简单使用 1
1.1.1 Python 系统的安装 1
1.1.2 Python 工具库的管理与安装 3
1.1.3 简单的 Python 程序 4
1.2 Python 基础知识 5
1.2.1 基本数据处理 5
1.2.2 输出 print 和输入 input 6
1.2.3 运算符与表达式 8
1.2.4 流程控制 10
1.3 复合数据类型 14
1.3.1 list 列表 14
1.3.2 tuple 元组?dict 字典和 set 集合 17
1.3.3 序列的一些实用操作 20
1.4 函数.24
1.4.1 自定义函数语法 24
1.4.2 自定义函数的四种参数 25
1.4.3 参数传递 27
1.4.4 两个特殊函数 29
1.4.5 导入模块 31
1.5 Python 程序的书写规则34
习题 1 36
第 2 章 数据处理与可视化 39
2.1 数值计算工具 NumPy.39
2.1.1 数组的创建?属性和操作 39
2.1.2 数组的运算?通用函数和广播运算45
2.1.3 NumPy.random 模块的随机数生成 48
2.1.4 文本文件和二进制文件存取 48
2.2 文件操作 53
2.2.1 文件基本操作 53
2.2.2 文本文件的读写操作 55
2.2.3 文件管理方法 56
2.3 数据处理工具 Pandas 57
2.3.1 Pandas 的序列与数据框58
2.3.2 外部文件的存取 60
2.4 Matplotlib 可视化 64
2.4.1 基础用法 65
2.4.2 Matplotlib.pyplot 的可视化应用 68
2.4.3 可视化的综合应用 74
2.5 scipy.stats 模块简介 78
2.5.1 随机变量及分布 78
2.5.2 概率密度函数和分布律可视化 79
习题 2 83
第 3 章 Python 在高等数学和线性代数中的应用 85
3.1 SymPy 工具库介绍.85
3.1.1 PymPy 工具库简介 85
3.1.2 符号运算基础知识 87
3.2 SciPy 工具库简介 88
3.3 用 SymPy 做符号函数画图91
3.4 高等数学问题的符号解 93
3.5 高等数学问题的数值解 98
3.5.1 泰勒级数与数值导数 98
3.5.2 数值积分 101
3.5.3 非线性方程 (组) 数值解.104
3.5.4 函数极值点的数值解.107
3.6 线性代数问题的符号解和数值解 108
3.6.1 线性代数问题的符号解108
3.6.2 线性代数问题的数值解113
3.6.3 求超定线性方程组的最小二乘解 118
习题 3 120
第 4 章 概率论与数理统计 122
4.1 随机变量的概率计算和数字特征 122
4.1.1 随机变量的概率计算.122
4.1.2 随机变量数字特征简介123
4.1.3 随机变量数字特征计算及应用 125
4.2 描述性统计和统计图 127
4.2.1 统计的基础知识 127
4.2.2 用 Python 计算统计量 129
4.2.3 统计图 132
4.3 参数估计和假设检验 140
4.3.1 参数估计 140
4.3.2 参数假设检验 142
4.3.3 非参数假设检验 146
4.4 方差分析.150
4.4.1 单因素方差分析及 Python 实现 151
4.4.2 双因素方差分析及 Python 实现 155
4.5 一元线性回归模型 160
4.5.1 一元线性回归分析 160
4.5.2 一元线性回归应用举例164
4.6 常用的数据清洗方法 166
4.6.1 重复观测处理 167
4.6.2 缺失值处理 168
4.6.3 异常值处理 170
习题 4 173
第 5 章 线性规划 175
5.1 线性规划的概念和理论 175
5.2 线性规划的 Python 求解 177
5.2.1 用 scipy.optimize 模块求解 177
5.2.2 用 cvxopt.solvers 模块求解 182
5.2.3 用 cvxpy 求解 183
5.3 灵敏度分析 185
5.4 投资的收益和风险 187
习题 5 193
第 6 章 整数规划与非线性规划 195
6.1 整数规划 195
6.1.1 整数规划问题与求解 195
6.1.2 指派问题及求解 196
6.1.3 整数规划实例 || 装箱问题 200
6.2 非线性规划 202
6.2.1 非线性规划概念和理论202
6.2.2 非线性规划的 Python 求解.205
6.2.3 飞行管理问题 209
习题 6 213
第 7 章 插值与拟合 215
7.1 插值 215
7.1.1 插值方法 215
7.1.2 用 Python 求解插值问题 221
7.2 拟合 225
7.2.1 最小二乘拟合 225
7.2.2 数据拟合的 Python 实现 228
习题 7 231
第 8 章 微分方程模型 234
8.1 微分方程模型的求解方法 234
8.1.1 微分方程的数值解 234
8.1.2 用 Python 求解微分方程 235
8.2 微分方程建模方法 240
8.3 微分方程建模实例 245
8.3.1 Malthus 模型 245
8.3.2 Logistic 模型 246
8.3.3 美国人口的预报模型.247
8.3.4 传染病模型 249
8.4 拉氏变换求常微分方程 (组) 的符号解 252
习题 8 255
第 9 章 综合评价方法 257
9.1 综合评价的基本理论和数据预处理 257
9.1.1 综合评价的基本概念.257
9.1.2 综合评价体系的构建.258
9.1.3 评价指标的预处理方法260
9.1.4 评价指标预处理示例.264
9.2 常用的综合评价数学模型 266
9.2.1 线性加权综合评价模型266
9.2.2 TOPSIS 法 267
9.2.3 灰色关联度分析 268
9.2.4 熵值法 269
9.2.5 秩和比法 269
9.2.6 综合评价示例 271
9.3 层次分析法案例 274
习题 9 280
第 10 章 图论模型 281
10.1 图的基础理论及 networkx 简介 281
10.1.1 图的基本概念 281
10.1.2 图的表示及 networkx 简介 284
10.2 最短路算法及其 Python 实现 289
10.2.1 固定起点到其余各点的最短路算法 290
10.2.2 每对顶点间的最短路算法 293
10.2.3 最短路应用范例 297
10.3 最小生成树算法及其 networkx 实现 301
10.3.1 基本概念 301
10.3.2 求最小生成树的算法 302
10.3.3 用 networkx 求最小生成树及应用 304
10.4 匹配问题 306
10.5 最大流与最小费用流问题 309
10.5.1 最大流问题 309
10.5.2 最小费用流问题 312
10.6 PageRank 算法 314
10.7 复杂网络简介 318
10.7.1 复杂网络初步介绍318
10.7.2 复杂网络的统计描述 319
习题 10323
第 11 章 多元分析 326
11.1 判别分析 326
11.1.1 距离判别法 326
11.1.2 Fisher 判别法 330
11.1.3 贝叶斯判别法 332
11.1.4 判别准则的评价 333
11.2 主成分分析 335
11.2.1 主成分分析的基本原理和步骤 335
11.2.2 主成分分析的应用339
11.3 因子分析 342
11.3.1 因子分析的数学理论 342
11.3.2 学生成绩的因子分析模型 346
11.4 聚类分析 350
11.4.1 数据变换 350
11.4.2 样品间亲疏程度的测度计算 351
11.4.3 scipy.cluster.hierarchy 模块的层次聚类 353
11.4.4 基于类间距离的层次聚类 355
11.4.5 K 均值聚类 358
11.4.6 K 均值聚类法最佳簇数 k 值的确定 360
11.4.7 K 均值聚类的应用 363
习题 11 366
第 12 章 回归分析 369
12.1 多元线性回归分析 369
12.1.1 多元线性回归模型369
12.1.2 Python 求解线性回归分析 372
12.2 线性回归模型的正则化 374
12.2.1 多重共线性关系 375
12.2.2 岭回归 377
12.2.3 LASSO 回归.379
12.3 Logistic 回归 383
12.3.1 Logistic 回归模型 383
12.3.2 Logistic 回归模型的应用 387
习题 12 391
第 13 章 差分方程模型 394
13.1 差分方程及解法 394
13.2 差分方程的平衡点及稳定性 398
13.3 Leslie 模型 399
13.4 管住嘴迈开腿 404
13.5 离散阻滞增长模型及其应用 409
13.5.1 离散阻滞增长模型409
13.5.2 离散阻滞增长模型的应用 411
13.6 染色体遗传模型 413
习题 13 416
第 14 章 模糊数学 418
14.1 模糊数学的基本概念和基本运算 418
14.1.1 模糊数学的基本概念 418
14.1.2 模糊数学的基本运算 421
14.2 模糊模式识别 424
14.2.1 择近原则 424
14.2.2 最大隶属原则 426
14.3 模糊聚类 427
14.3.1 模糊层次聚类 427
14.3.2 模糊 C 均值聚类 431
14.4 模糊综合评价 434
习题 14439
第 15 章 灰色系统预测 441
15.1 灰色系统理论简介 441
15.2 灰色 GM(1, 1) 预测模型 444
15.3 灰色 GM(1, N) 预测模型 449
15.4 灰色 GM(2, 1) 预测模型 453
习题 15 457
第 16 章 Monte Carlo 模拟 458
16.1 随机变量的模拟 458
16.2 Monte Carlo 方法的数学基础及思想 461
16.3 随机模拟的应用 462
习题 16 471
第 17 章 智能算法 472
17.1 模拟退火算法 472
17.1.1 模拟退火算法简介472
17.1.2 算法流程及应用 473
17.2 遗传算法 478
17.2.1 遗传算法的原理 478
17.2.2 遗传算法应用 480
17.3 人工神经网络 483
17.3.1 人工神经网络概述483
17.3.2 神经网络的基本模型 484
17.3.3 神经网络的应用 488
习题 17 491
第 18 章 时间序列分析 493
18.1 移动平均法?指数平滑法和季节模型 493
18.1.1 移动平均法 493
18.1.2 指数平滑法 496
18.1.3 具有季节性时间序列的预测 500
18.2 平稳时间序列分析 502
18.2.1 基本概念和理论 502
18.2.2 ARMA 模型的构建及预报 505
18.2.3 ARMA 模型的 Python 求解 509
18.3 非平稳时间序列 513
习题 18 516
第 19 章 支持向量机 518
19.1 支持向量分类机的基本原理 518
19.1.1 线性可分支持向量分类机 518
19.1.2 广义线性可分支持向量分类机 521
19.1.3 线性不可分支持向量分类机 523
19.2 支持向量回归 524
19.3 支持向量机的应用 526
19.3.1 支持向量机的分类问题 526
19.3.2 支持向量回归分析528
习题 19 530
第 20 章 数字图像处理 531
20.1 数字图像概述 531
20.1.1 图像的概念及表示531
20.1.2 数字图像处理涉及的 Python 库 533
20.2 PIL 库的模块介绍 538
20.3 PIL 在安全领域的应用 542
20.3.1 生成验证码图片 542
20.3.2 给图像添加水印 544
20.3.3 生成二维码 545
20.3.4 拼图问题 547
习题 20 548
参考文献549