数论:
数学:有关客观世界量与量的关系的学问。
人们在求值过程中一直在追求数学意义上的精确解,然而这种精确解在计算机求值过程中有相当一部分是不可能的。
计算机中对无限循环数的表示:
- 级数
- 列比雪夫
计算原则:
- 快速逼近
- 误差小
- 误差稳定(指算法对同一问题的解是一致的)
没有任何一个函数可以不加处理地在计算机上进行计算,在计算机中进行计算时,使用的方法是找该函数的逼近构造
- “逼近论”
- “无限论”
一个典型的例子就是“龙该库塔”算法
龙该库塔算法示意图
这个算法是用长方形+三角形的面积来近似地估计曲线下面的面积
计算机内表示数字的字长有限,因此计算机所表示的数字的精度也是有限的。因此在计算机中常常需要对数字进行截断处理,从而产生了误差(舍入误差,低位误差)。并且随算法步的执行,误差会越来越大。
这种永不结束的计算————非能行过程
|
|
过程具有能行性 能行过程
求值计算的基础是算术运算
符号计算的基础是集合运算
可数与有限
- 有限一定可数
- 可数未必有限
结论:计算机的全部活动是用来计算一个函数的值,在计算机上进行计算的函数必需是能行可计算函数。
能行可计算函数 != 可计算函数
可计算函数:给出自变量在函数定义域上的一个值,就可通过某种规则唯一确定函数在值域中的一个值。
能行的必须是:
-
确定的。 存在一个过程,若对该过程的输入相同,则输出唯一。
-
在有限的时间,设备上结束。
-
任何一过程必须是构造的。
因为过程是构造的,因此一切规则都必须预定义,从而同一计算过程可以在另一台计算机上被理解,被获得同样结果,这也正是软件可以移植的根本原因。
4. 对过程的描述必须能用数值的术语来表达(可编程)。
算法:计算一个能行可计算函数的能行过程。
小心计算顺序:有穷数列运算可改变计算顺序,无穷数列计算则不能改变计算顺序。
相关文献:
布尔 《The Law of Thought》 《A Symbolic Analysis of Relay and Switching Circuits》
计算模型:
为了给能行可计算函数一个严格的,形式的定义,给出一种数学结构,这个数学结构在计算科学理论的范畴内,称为计算模型。
常用的计算模型:
1.过程型 2.逻辑型 3.函数型 4.面向对象
计算机的理论之路
Hierbert 23rd Hard Question:在数学领域内,就一般意义来说,是否所有数学问题都有解。
Alan Tunning:凡是可判定问题必然有解,凡是无解的问题必然不可判定。
相关文献:《可计算的数及其在判定问题中的应用》
图灵机的形式定义
TM=(q
i, S
j, S
k, R/L/N, q
m) 一个五元组,定义了图灵机的一个状态
q
i:图灵机的当前状态(读写头在带上的当前位置)。
S
j:图灵机读到的符号
S
k:用以替换S
j的符号