本书是以我为三年级大学生讲授数值分析的讲课笔记为基础写成的,包含了美国大学“数值分析”课程学期的标准内容。阅读本书前,读者需了解微积分和线性代数。了解一些编程语言知识将更为有利,但这不是必需的。本书将会介绍编程语言 Julia。
本书阐述了数值分析的理论、方法以及如何使用编程语言 Julia ( 1.1.0 版本)实现算法。我写作本书的初衷,就是在教材中融入编码与计算。 Julia 的简易性使得在描述一个方法后,可以跳过形式语言(伪代码),而直接编写计算机代码。它也限度地减少了计算机代码的呈现可能对主要叙述脉络的干扰。编写 Julia 代码时,优先考虑的是如何使得它仿照文中推导出来的算法,而不是它的效率。 Julia 软件在麻省理工学院的许可下是免费的,可以从https://julialang.org 下载。
写作本书的时候,我迫切需要一种喜剧式的放松:创建一个“大学生”角色,她出现在每一章。希望这个角色会带来幽默,使得学生对数值分析课程更感兴趣。感谢我的女儿艾丽娅·奥克滕( Arya ?kten),她就是一名应用数学专业的大学生,她很大方地答应让这个角色使用她的名字。我也感谢她阅读了部分早期的书稿,并为本书作图。
感谢同事 Paul Beaumont,他使我了解了 Julia。感谢 Sanghyun Lee,他在他的数值分析课上使用了本书,并提出若干修改建议,从而改进了本书。感谢我的同事 Steve Bellenot、 Kyle Gallivan、 Ahmet G?ncü 和 Mark Sussman 在我写书期间给予的有益讨论。感谢 Steve 在 3.4 节的启发性例子“艾丽娅和字母NUH”以及 Ahmet 在 5.1 节的气温数据例子的建模中提供的帮助。本书得到了佛罗里达州立大学图书馆的 Alternative Textbook Grant 的资助。感谢数字研究和奖学金办公室主管 Devin Soper、技术人员 Matthew Hunter 和毕业生助理Laura Miller 的帮助。后,感谢上数值分析课程的学生,他们的反馈帮助完善了本书。
吉拉伊·奥克滕
2018 年 12 月
佛罗里达州塔拉哈西