首页 > 图书中心 > Mathematica程序设计导论

前言

前言

Mathematica在作者们的学习和科研中占据着核心地位。对于从事教学和科研的普通高校教师来说,Mathematica软件是最有价值的软件,也是教学和科研工作的强有力助手。除了Mathematica软件之外,我们还经常使用Visual Studio(C#语言)和RAD Studio(C++语言)两种编程开发环境,但都是为Mathematica软件服务。在Mathematica软件环境下使用Wolfram语言设计并测试好算法程序后,再借助于C#或C++语言生成可执行工程软件。我们拟通过本书向和我们一样从事教学和科研工作的朋友们推荐Mathematica软件,同时向对高级程序设计和科学计算感兴趣的读者推荐Wolfram语言。

Mathematica软件能做什么?在科学研究上,我们使用Mathematica软件实现图像的加密与解密算法、神经网络算法以及量子计算算法(一类有趣的复矩阵变换); 在教研活动上,我们在大学物理、高等数学、线性代数、概率论与数理统计、复变函数、数学物理方程、数学建模、信号与系统、数字信号处理、自动控制(还使用了SystemModeler软件)、数字图像处理和神经网络与机器学习等课程中,均借助Mathematica软件辅助教研,效果颇佳。总体来说,Mathematica软件是一种称为Wolfram语言的高级计算机语言的工作平台,Wolfram语言比其他计算机语言更容易实现各类算法,且以友好的方式呈现算法结果。C语言被称为“过程化”语言,其按算法的实现流程进行程序设计,即过程化编程。C++和C#语言称为面向对象的语言,用类(一种数据结构)将算法的属性(即数据)和方法(即函数)封装起来,增强程序的健壮性。而Wolfram语言是一种函数式的语言,不同于C语言(由于C语言程序由一个main函数和其他若干功能函数组成,C语言也称函数化语言),Wolfram语言的“函数式”是指这种语言中,程序由函数实现,不但每个函数均可以独立运行得到相应的结果,而且函数可以“复合”调用执行复杂的功能。Wolfram语言可视为一种“泛函化”的语言,并可称之为“数学语言”或“超级语言”。

Mathematica软件诞生于1988年,创始人为科学家Stephen Wolfram,而运行于Mathematica软件上的程序设计语言则以这位科学家的名字命名,称之为“Wolfram语言”。目前,Mathematica软件包括6000多个函数,涉及了物理学、数学、化学、生物学、信息科学、计算机科学、艺术学、宇宙学、建筑学和金融学等众多领域,这些函数的实现方法统称为Wolfram技术。Mathematica软件在系统仿真领域的拓展软件称为SystemModeler(SystemModeler软件支持Modelica建模语言和Wolfram科学计算语言,为Mathematica软件的伴侣软件),Mathematica软件和SystemModeler软件被公认为科学计算和建模仿真领域最先进的软件,在全球范围内推动了并继续推动着科学和技术的创新。可以说,Mathematica软件是最能体现计算机价值的科学计算软件,而Wolfram语言是最高层次的科学计算语言。

多年来,Mathematica软件已经成为物理学和数学领域的主要科研工具,而现在,Mathematica软件和Wolfram技术也被广泛应用于信息科学、计算机科学、生命科学、社会科学和金融等学科领域的数据分析和工程计算。本书着眼于Mathematica软件的基本用法和Wolfram技术的基本技巧,面向拟使用Mathematica软件助力其学习和研究的大学生、研究生和科研工作人员。本书是一本自成体系的Mathematica教材。此外,对于初次接触Mathematica软件的读者,推荐《Mathematica科学计算与程序设计》(西安电子科技大学出版社,2021年)作为入门速成教材; 对于信息安全研究人员,推荐《高级图像加密技术——基于Mathematica》(西安电子科技大学出版社,2020年)作为学习Mathematica软件应用于密码算法编程的参考书。这两本教材展示了Wolfram技术不但以优美的形式实现各式各样的算法,而且还将这些算法的结果呈现进一步升华,助力研究人员深入分析算法的本质和内涵。

全书基于Mathematica 12.3,共分为9章。第1章为Mathematica基础,介绍了Mathematica软件的入门操作和基本数据类型,为后续章节的学习奠定基础。第2章为Wolfram语言经典编程,重点分析了经典分支语句和循环语句的实现方法,同时介绍了Mathematica软件中的关系运算符和逻辑运算符,并通过大量实例突出了经典编程方法的特点。第3章讨论了Wolfram语言中最重要的数据类型——列表,介绍了列表的构造方法和操作技巧。第4章阐述了Mathematica内置函数的用法以及自定义用户函数的技巧和方法,重点讨论了Map和Apply函数的用法。第5章详细阐述了Wolfram语言模块编程技术,对比分析了4种模块编程函数的用法,并讨论了并行编程方法。第6章详细介绍了字符串的操作方法,并讨论了规则、关联、数据集和模式匹配。第7章结合科技文献出版中对图形的要求,详细阐述了Mathematica软件的二维绘图、三维绘图和动画技术,并讨论了Mathematica软件的声音处理技术。第8章深入介绍了自定义程序包技术,讨论了编写程序包并将自定义函数及其说明文档添加到Mathematica软件中的方法,最后叙述了Wolfram自然语言输入和笔记本程序调试方法。第9章讨论了感知器和BP神经网络的实现方法,详细介绍了借助Wolfram语言实现神经网络学习和预测的程序设计技巧。

本书由国家自然科学基金(No. 61762043)、江西省自然科学基金(No. 20192BAB207022)和江西省教育厅科学技术研究重点项目(No. GJJ190249)资助出版,特此鸣谢。

本书由江西财经大学量子计算研究中心信息安全课题组编写。其中,江西财经大学陈爱国执笔第1章、唐颖军执笔第2章、吴文华执笔第3章、陈伟执笔第4章、熊堂堂执笔第6章、张勇执笔第7~9章; 滨州学院胡永生教授执笔第5章。全书由张勇统稿、定稿。作者张勇感谢导师陈天麒教授、洪时中教授和汪国平教授对其科研工作和学术研究的长期指导,他们对科学的热爱和对作者的鼓励是作者从事科研工作的巨大精神支柱; 感谢其爱人贾晓天老师在烦琐的资料检索和整理工作方面所做的细致工作,为其节省了大量学习时间。全体作者感谢Wolfram Research公司杨圣汇老师的悉心指导,为本书的写作清除了技术困难和障碍; 感谢清华大学出版社赵凯老师对本书写作和出版的支持。

本书极力呈现Mathematica软件对于大学生和各领域教研人员的重要性,但限于作者们的知识水平,书中难免有缺漏之处,恳请同行专家、学者和读者朋友不吝赐教。

免责声明: 书中Mathematica和Wolfram Research等是Wolfram公司的注册商标。本书内容仅用于教学,严禁任何单位和个人将其应用于商业场合。

作者

2022年2月

于江西财经大学枫林园

源码

教学大纲

版权所有(C)2022 清华大学出版社有限公司 京ICP备10035462号 京公网安备11010802013248号

联系我们 | 网站地图 | 法律声明 | 友情链接 | 盗版举报 | 人才招聘