
前言
在研究自然科学规律时,通常需要建立数学方程或研究方法,用数学方程来描述所研究对象的客观规律,再现、预测和发现客观世界的运动规律和演化过程。另外,对于一个复杂的系统,所建立的数学方程往往是非常复杂的,无法或根本不可能直接计算出精确解。随着计算机技术的发展,可以用计算机求解出复杂系统数学方程或者研究方法的数值解,并能以某种手段呈现和分析所得到的数值解。在保证一定计算精度的情况下,用计算机的数值解来解决实际工程中遇到的各种问题,研究系统的客观规律。
数值计算相对于传统的解析计算有很大的优势。数值计算可以完成非线性、大模型、非平衡问题,把科学原理应用于虚拟实验,解决更复杂的实际问题。数值计算不会对环境产生任何破坏,例如研究核爆炸的破坏,不可能进行真实的核破坏实验,但可以用科学计算进行核爆炸的模拟;数值计算不受仪器设备和时间、空间的影响,只需要一台计算机,因此成本低;可以把数值计算方法编译成某个学科的专业软件,例如各种CAE仿真分析软件,通过界面的简单操作完成相应的计算,提供给更多的人使用。
用计算机进行数值求解时,需要有一套求解数学方程的方法。MATLAB软件是一套使用非常广泛的数学软件,提供了多种数值计算方法,但是MATLAB价格昂贵,并且由于中美之间科技的竞争,受到美国政府的限制,MATLAB在我国国内多个行业已经被限制使用,随着竞争的激烈,相信会有更多的科技产品受到限制。替代MATLAB进行数值计算的一个非常好的选择是用Python编程语言及其科学计算包。Python作为开源的高级程序语言,它是免费的,Python有与MATLAB对应的数值计算的科学计算包,编者编写本书的主要目的是帮助广大科技工作者快速掌握Python语言在科学计算方面的使用方法,培养其进行科学计算的能力。Python语言的语法简单,使用方便,对于初学计算机编程的人员来说,是最值得推荐的计算机语言。Python有众多的第三方程序包,通过pip命令可以直接安装使用,利用第三方模块和Python语言能够快速搭建出各式各样的程序,满足用户的需求。
本书分为10章,其中第1~4章介绍Python语言的基础,供没有Python基础的人员使用;第5章介绍NumPy进行数组和矩阵运算的方法,它是进行数值计算的基础;第6章介绍用matplotlib进行数值的可视化的方法,绘制各种二维和三维数据图像;第7章介绍用SciPy进行各种数值计算的方法,是本书的主要内容;第8章介绍用SymPy进行符号运算,用符号推导数学公式;第9章介绍用openpyxl操纵Excel进行数据处理的方法和数据可视化;第10章介绍用PyQt5进行文本文件和二进制文件的读写及文件管理方面的内容。PyQt5可以进行复杂的图形界面开发,可以与数值计算方法结合,通过界面把数值计算的结果呈现出来。关于PyQt5进行图形界面开发方面的内容可以参考编者所著的另一本书《Python基础与PyQt可视化编程详解》,本书对此不作过多介绍。
在编写本书时,Python的版本是3.9.6,由于Python语言及其科学计算包仍在不断发展中,因此读者在使用本书的时候,Python语言和科学计算包很可能发展到更高的版本,但由于软件一般都有向下兼容的特点,因此本书所述内容不会影响正常的使用。本书在讲解内容时,在主要知识点上配有应用实例,这些应用实例可以起到画龙点睛的作用,请读者扫描下面的付费二维码下载本书实例的源程序。
本书由北京诺思多维科技有限公司组织编写,由于受作者水平与时间的限制,书中疏漏和错误在所难免,敬请广大读者批评指正。在使用本书的过程中,如有问题可通过邮箱forengineer@126.com与编者联系。
编者
2021年10月

说明:文中需扫码阅读的请扫此付费二维码。