- 本书的作者现已退休。任何有能力的爱好者都欢迎进一步推动这个项目。
众所周知,数学通常证明永不相互矛盾的通用定理,而数值计算通常给出近似的特定结果;此类计算在合理的误差范围内可能不一致。在数值上下文中,“数字”通常意味着一个有限小数(或二进制数),而在数学中,一个(实数)数字可能是 (有理数,循环小数), (无理代数数;它的十进制表示既不终止也不无限循环), (超越数,即非代数数),等等。
数值误差 的估计(和最小化)是 数值分析 的重要组成部分。在某些(相对简单的)情况下,可以获得保证的误差界限,并且有时是实用的,但有时远大于它们从上面界定的实际误差,有时难以找到。因此,获得一个只有对误差有模糊概念的近似结果并不少见。
看到纯数学和应用数学之间的这些区别,人们可能会怀疑,它们仍然是同一科学的两面,还是两门不同的科学。有些人甚至区分“理论数”、“实用数”和“计算机数”,并将诸如 和 之类的数学常数视为缺乏精确数值的符号计算元素。
引用
以下是 Е.М. Левич (E.M. Levich) 的书 “Математическая физика и компьютерная математика” (“Mathematical physics and computer mathematics”) 中的两段引言(翻译成英语)。可在网上获取 这里 和 这里。
"在物理学家眼中,数学是一座单一的大厦,不仅可以在其中证明理论命题,而且还可以使用计算机(如果需要)获得数值结果。
然而,现代数学并非铁板一块,它由几种类型的数学组成,这些数学不仅在目标上有所不同,而且在研究的主要对象上也有所不同:理论数学、实用数学和计算机数学。将这些类型联系在一起的是,在每种类型中,研究的主要对象都是所谓的“数字”。这个概念在不同类型的数学中的含义是不同的,因此它们在性质和适用范围上有所不同。
应该注意的是,在现代科学中,数字的概念不够严格,它被视为一种反映某些定量实体的单一概念。”(第 2 页)
"第二种方法是在某些初始条件下对微分方程进行数值求解,以便获得某些定量结果以供实验验证。在这种情况下,我们面临着上一段中描述的方法论困难。由于没有逻辑可能性来确定作为计算过程的结果而获得的有限数字集是否为任务的解,因此实际上我们没有可以与实验结果进行比较的东西。由此可见,如果要验证物理理论,就必须用计算机对微分方程或微分方程组进行数值求解,那么这种理论是无法用实验来验证的。”(第 34 页的最后一段)
超有限主义者讨论了与这些想法相关的模糊观点。
2016 年,在一次类似的讨论中,本文的作者被要求严格地证明数字 (计算器给出了类似 22026.46579481 的东西,但这在严格证明中不是有效的论据)的前 10 位数字确实是 22026.465794;换句话说,证明以下内容。
定理。
他接受了挑战并证明了这个定理。这绝不是学术意义上的原创研究;数学期刊会将其拒绝为使用众所周知方法获得的微不足道的结果。每个专业数学家都可以轻松做到这一点。但是,由于它对专家来说意义不大,它可以帮助学生摆脱一些可能的误解。
- 定理不一定是通用的;一个特定的数值事实可以是一个定理。
- 所有定理的集合是无限的(就像自然数的集合一样);数学文献中提出了有限多个最著名的定理(其中大多数是通用的),其他的则没有(同样,现在提到了有限多个自然数,其他的则没有)。
- 众所周知的数学常数具有精确的数值;通常,它们的十进制数字不遵循任何已知模式,但仍然可以通过算法生成;此外,无限数字序列的每个有限部分的正确性都是一个定理(其证明也可以通过算法生成)。可能的算法很多,但是只要定理不互相矛盾(希望永远不会),每个数字的唯一性就会得到保证。
引理 1. 对于所有满足 的 ,以下不等式成立:
该证明使用了两个众所周知的幂级数
- 对于
- 对于
引理 1 的证明。 首先, 其次,
引理 1 非常常见;一般性结论通过符号计算证明。因此,证明非常简洁。相反,该定理陈述了一个特定的数值事实,其证明的算术部分本质上是将数值计算转换为证明,这很不寻常。因此,这里需要一些预备知识和解释。
每个人都知道 2+2=4;但是,由于它不是公理,因此需要证明。首先,定义:2 = 1+1; 3 = 2+1; 4 = 3+1 。其次,证明:2+2 = 2+(1+1) = (2+1)+1 = 3+1 = 4。类似地,你可以证明 4+3=7 等等。此外,2×2 = (1+1)×2 = 1×2 + 1×2 = 2+2 = 4,等等。(如果你想更深入的 формализация,请尝试 皮亚诺公理。)
下一步:如何证明 23×6 = 138 ?首先,定义:23 = 2×10+3; 100 = 10×10; 138 = 1×100+3×10+8 。其次,证明:23×6 = (2×10+3)×6 = (2×10)×6 + 3×6 = (2×6)×10 + 3×6 = (10+2)×10 + (1×10+8) = 100+(2+1)×10+8 = 138。确实,一些步骤被省略了,但希望你能填补空白。顺便说一下,为什么 138 < 163 ? 因为 138 < 138+2 = 140 < 160 < 160+3 = 163。或者,如果你愿意,138 < 138 + 25 = 163。
因此,“23×6<163” 是(一个例子)一个具有(至少一个)证明的数学命题;换句话说,它是一个定理。(参见 理论(数学逻辑):“从公理中推出的任何句子...都被称为该理论的定理”;另见 形式证明。)显然,所有定理的集合是无限的。
我们看到,使用自然数进行的算术运算没有问题(这并不奇怪:它们是精确的,而不是近似的);它们可以转换为定理和证明(而且,这种转换可以通过算法自动化)。同样的结论也适用于带有有限小数的算术运算(精确计算,没有 舍入误差)。例如,命题“2.3×0.6<1.63”很容易简化为“23×6<163”。
现在我们回到定理的证明。我们引入数字 并将其夹在两个有限小数之间,如下所示。
引理 2.
这些大型数字突然出现,你感到困惑吗?如果你感到困惑,请打开以下旁白。
引理 2 的证明。 我们记 并将所需的不等式改写为: 只需计算
引理 3。
引理 3 的证明。 我们记 并重新写出所需的不等式: 我们计算 因此不等式变为
引理 4。
证明。 我们记 并重写需要的不等式: 我们计算 不等式变为
命题。
证明。 由四个引理可得,因为 且
定理的证明。 命题给出了
考虑到 ,我们得到 ,因此
(因为 以及 )。类似地,我们得到
完成了证明。
在给定的证明中,引入了许多大型自然数,但没有解释。这些数字的属性似乎足以证明定理。
- 1a. 思考如何选择这些数字(不一定与本文中使用的数字相同)。
- 1b. 对计算机进行编程,以查找这些数字。
请注意,证明中的数字 22 是特殊的;最初,数字 被夹在两个有限小数之间,然后对它进行 22 次平方运算。
- 2a. 思考一下,可以用 21 或 23 代替 22 吗?
- 2b. 修改您的计算机程序,使其进行 21 或 23 次平方运算。您仍然可以达到目标(证明定理)吗?另外,尝试更改大自然数中的位数。
- 2c. 考虑 的其他值 (不仅仅是 )。
引理 1 中使用了二次多项式来近似指数函数。为什么只使用二次多项式?
- 3a. 思考一下,可以用线性或三次多项式代替吗?
- 3b. 相应地修改您的计算机程序。
- 3c. 尝试使用幂级数来摆脱重复平方运算。
计算指数函数,与微分方程 密切相关,仅仅是一个相对简单的计算任务。
- 4a 以同样的精神处理其他一些计算任务。
- 4b 尝试找到一个计算任务的例子,即使在原则上也不能以这种方式处理。
以及一个奖励...
- 5 证明 因此驳斥了 Sarva Jagannadha Reddy 关于 的说法(参见 这里 和 这里)。
非严格的数值计算被广泛使用;严格的数值计算很费力,但也是可能的。