本书是一本专门面向工程相关专业读者的编程类技术图书,主要介绍如何使用Python来解决工程问题。书中涵盖了如何编码几何基元、读写文件、绘制矢量图并制作动画来展示运算结果,以及求解大型线性方程组,并在最后整合所有知识,搭建了一个求解桁架结构问题的应用程序。本书适合任何有一定专业背景并且想通过编程来解决工程问题的读者阅读,同时适合工程相关专业的学生作为参考。具有线性代数、平面几何和物理学的基础知识,并了解材料力学和数值方法的原理会比较有帮助。
封面
前折页
书名页
版权
译者序
前言
致谢
作者简介
技术评审员简介
第一部分 基础知识
第1章 Python快速入门
1.1 Python包和模块
1.1.1 Python模块
1.1.2 Python包
1.2 运行文件
1.3 导入代码
1.4 用文档字符串注释代码
1.5 Python中的元素集
1.5.1 集合
1.5.2 元组
1.5.3 列表
1.5.4 字典
1.6 解包
1.7 小结
第2章 两种编程范式
2.1 函数式编程
2.1.1 纯函数
2.1.2 不可变性
2.1.3 lambda函数
2.1.4 高阶函数
2.1.5 嵌套函数
2.1.6 filter、map和reduce函数
2.1.7 列表推导式
2.2 面向对象编程
2.2.1 类
2.2.2 魔术方法
2.3 类型提示
2.4 小结
第3章 命令行
3.1 UNIX和Windows系统的命令行
3.2 准备好shell
3.2.1 安装Windows Subsystem for Linux软件
3.2.2 初识shell
3.3 文件和目录
3.3.1 移动命令
3.3.2 创建文件和目录
3.3.3 删除文件和目录
3.3.4 命令汇总
3.3.5 使用Windows Subsystem for Linux
3.4 运行Python脚本
3.5 给脚本传递参数
3.6 标准输入和输出
3.6.1 将输出重定向到文件
3.6.2 将输入重定向为文件
3.7 使用PyCharm自带的Python控制台
3.8 小结
第二部分 二维几何
第4章 点和向量
4.1 比较数字
4.2 创建类:Point
4.2.1 计算两点间的距离
4.2.2 加减操作
4.3 创建类:Vector
4.3.1 向量的加减
4.3.2 向量的缩放
4.3.3 用向量移动点
4.3.4 向量的范数
4.3.5 不可变的代码设计
4.3.6 方法的命名约定
4.3.7 向量的点乘
4.3.8 向量的投影
4.3.9 向量的叉乘
4.3.10 平行和垂直向量
4.3.11 向量的夹角
4.3.12 向量的旋转
4.3.13 向量的正弦和余弦
4.4 完善Vector类
4.4.1 检验相等性
4.4.2 字符串表示
4.4.3 向量的工厂函数
4.5 单元测试
4.5.1 测试距离计算方法
4.5.2 测试向量的加减方法
4.5.3 测试向量的乘法方法
4.5.4 测试向量的平行和垂直方法
4.5.5 单元测试的三个重要规则
4.6 小结
第5章 直线和线段
5.1 创建类:Segment
5.1.1 线段的方向
5.1.2 线段的长度
5.1.3 参数t和线段中点
5.1.4 计算线段上的最近点
5.1.5 计算线段与点的最短距离
5.1.6 计算线段的交点
5.1.7 相等和字符串表示
5.2 创建类:Line
5.3 线段的垂直平分线
5.4 小结
第6章 多边形
6.1 创建类:Polygon
6.1.1 多边形的边
6.1.2 多边形的质心
6.1.3 检验多边形是否包含点
6.1.4 多边形的工厂函数
6.1.5 检验多边形的相等性
6.2 创建类:Circle
6.2.1 检验圆是否包含点
6.2.2 圆的近似多边形
6.2.3 圆的相等性和字符串表示
6.2.4 圆的工厂函数
6.3 创建类:Rect
6.3.1 检验矩形是否包含点
6.3.2 检查矩形是否重叠
6.3.3 矩形转多边形
6.3.4 矩形的相等性检查
6.3.5 矩形的工厂函数
6.4 小结
第7章 仿射变换
7.1 初识仿射变换
7.2 创建类:Affine Transform
7.2.1 单元测试:点的变换
7.2.2 变换线段和多边形
7.2.3 组合变换
7.2.4 逆仿射变换
7.2.5 缩放变换
7.2.6 旋转变换
7.3 插值变换
7.3.1 插值的类型
7.3.2 插值的实现
7.4 Geom2D的最后一步
7.4.1 测试文件整理
7.4.2 同时运行所有测试文件
7.4.3 包的统一导入
7.5 小结
第三部分 图形和模拟
第8章 绘制矢量图
8.1 位图和矢量图
8.2 SVG格式
8.2.1 视框
8.2.2 空间变换
8.3 创建包:svg
8.3.1 模板字符串
8.3.2 导入模板
8.3.3 图像模板
8.3.4 属性
8.4 SVG的基元
8.4.1 直线
8.4.2 矩形
8.4.3 圆
8.4.4 多边形
8.4.5 多段线
8.4.6 文本
8.4.7 分组
8.4.8 箭头
8.5 基元总结
8.6 导入包
8.7 小结
第9章 三点画圆
9.1 应用程序的架构
9.2 初始设置
9.2.1 创建一个运行配置
9.2.2 为什么要使用运行配置
9.3 读取输入和配置文件
9.3.1 正则表达式
9.3.2 正则表达式备忘录
9.3.3 匹配点
9.3.4 配置文件
9.4 问题模型和解决方法
9.5 结果输出
9.5.1 绘制结果圆
9.5.2 绘制输入点
9.5.3 最终代码
9.5.4 翻转y轴方向
9.6 分发应用程序
9.6.1 理解问题所在
9.6.2 寻找解决方案
9.6.3 不用文件作为输入启动应用程序
9.7 小结
第10章 图形用户界面和画布
10.1 Tkinter包介绍
10.1.1 我们的第一个GUI程序
10.1.2 画布
10.2 绘制几何基元
10.2.1 画布的装饰器类
10.2.2 绘制线段
10.2.3 绘制多边形
10.2.4 绘制箭头
10.3 小结
第11章 动画、模拟和时间循环
11.1 名词解释
11.1.1 什么是动画
11.1.2 什么是系统
11.1.3 什么是模拟
11.1.4 什么是时间循环
11.2 我们的第一个动画
11.2.1 初始设置
11.2.2 添加帧计数标签
11.2.3 系统更新
11.2.4 创建运动
11.3 抽象主循环函数
11.4 重构模拟程序
11.4.1 尝试不同的多边形近似圆
11.4.2 尝试不同的仿射变换
11.5 模块简洁化
11.6 小结
第12章 仿射变换动画化
12.1 应用程序架构和图示
12.2 初始设置
12.2.1 创建运行配置文件
12.2.2 创建一个bash脚本
12.3 读取配置文件
12.4 读取输入文件
12.4.1 输入格式化
12.4.2 添加输入范例
12.4.3 解析仿射变换
12.4.4 解析几何基元
12.5 运行模拟程序
12.5.1 建立用户界面
12.5.2 实现模拟逻辑
12.5.3 绘制坐标轴
12.6 小结
第四部分 方程组
第13章 矩阵和向量
13.1 列表初始化
13.2 初始设置
13.3 向量
13.3.1 创建类:Vector
13.3.2 测试Vector类
13.4 矩阵
13.4.1 设置矩阵值
13.4.2 获取矩阵值
13.4.3 缩放矩阵值
13.4.4 矩阵相等性
13.4.5 测试Matrix类
13.5 小结
第14章 线性方程组
14.1 线性方程组简介
14.2 数值方法
14.3 Cholesky分解法
14.3.1 LU算法
14.3.2 Cholesky算法原理
14.3.3 因式分解过程演算
14.3.4 解答过程演算
14.3.5 实现Cholesky算法
14.3.6 集成测试法测试Cholesky算法
14.4 小结
第五部分 桁架结构
第15章 结构模型
15.1 求解结构问题
15.2 结构件的内力分析
15.2.1 弹性体受外力作用
15.2.2 轴向力和剪切力
15.2.3 弯曲和扭转力矩
15.3 拉伸和压缩
15.3.1 胡克定律
15.3.2 应力-应变曲线
15.4 平面桁架
15.5 二力构件
15.6 全局坐标中的刚度矩阵
15.7 结构的初始模型
15.7.1 创建类:StrNode
15.7.2 创建类:StrBar
15.7.3 创建类:Structure
15.7.4 用Python shell创建结构
15.8 结构的解模型
15.8.1 创建类:StrNodeSolution
15.8.2 创建类:StrBarSolution
15.8.3 创建类:StructureSolution
15.9 小结
第16章 模型求解
16.1 算法原理
16.1.1 刚度矩阵项的含义
16.1.2 结构初始化
16.1.3 结构求解的主算法
16.1.4 给结构的自由度编号
16.1.5 组合和求解方程组
16.1.6 创建解模型
16.1.7 代码汇总
16.2 进阶版单元测试法:测试替代技术
16.2.1 测试替代技术介绍
16.2.2 unittest.mock包
16.3 测试StructureSolution类
16.4 测试结构问题求解过程
16.5 小结
第17章 从文件中读取输入
17.1 定义输入数据格式
17.1.1 节点的格式
17.1.2 载荷的格式
17.1.3 杆的格式
17.1.4 文件格式
17.2 找到正则表达式
17.2.1 节点的正则表达式
17.2.2 载荷的正则表达式
17.2.3 杆的正则表达式
17.3 初始设置
17.4 节点解析程序
17.5 杆解析程序
17.6 载荷解析程序
17.7 结构解析程序
17.7.1 总览
17.7.2 设置
17.7.3 忽略空白和注释
17.7.4 解析行
17.7.5 拆解行和组装结构
17.7.6 代码汇总
17.7.7 程序测试
17.8 小结
第18章 生成SVG图像和文本文件
18.1 初始设置
18.2 从结构解到SVG
18.2.1 配置文件
18.2.2 参数设置
18.2.3 函数:绘制结果图
18.2.4 注释
18.2.5 绘制杆图形
18.2.6 绘制节点图形
18.2.7 节点反作用力
18.2.8 载荷
18.2.9 代码汇总
18.2.10 最终结果
18.3 从结构解到文本
18.3.1 结构解的字符串表示
18.3.2 节点
18.3.3 杆
18.3.4 Unicode字符
18.3.5 代码汇总
18.4 小结
第19章 组装应用程序
19.1 概述
19.2 设置
19.3 输入参数
19.4 生成输出文件
19.5 主脚本
19.6 尝试应用程序
19.6.1 尝试不同的参数输入
19.6.2 求解一个大型结构问题
19.7 小结
参考文献
推荐阅读
后折页
封底
机械工业出版社 京icp备14043556号-1 (署)网出证(京)字第214号 Copyright (C) 2001 CmpBook. All Rights Reserved