计算机代数期末课程总结小论文
计算机代数期末课程总结小论文
计算机代数课程学习心得
201*5655冯国强
所谓计算机代数,顾名思义,是计算机科学与数学交叉融合的产物。而作为信息与科学专业的我们来讲,有必要了解这些建立在数学理论基础上的代数算法,通过本学期课程的学习,个人认为计算机代数无非是在现代计算机发展势头势猛的年代发展出的用“符号运算”代替以往“数值运算”的学科,以此达到更快速、更精确、更深层次的解决实际问题的目的。
本学期主要以代数基本知识为主线介绍了简单的代数基础知识、大整数的处理以及多项式代数等三大方面内容,通过对此三方面的代数运算的概念进行阐述,并结合其基本性质及常用算法加以探讨学习,最终实现在计算机上的应用。
下面将根据以上三个方面对本学期所学内容作出如下总结:
1、计算机代数,无可厚非,代数作为基础部分我们不能忽略它的作用。首先,我们对《抽象代数》中所介绍的群(G,o)、环(R,o,)、域(K,+,)三部分内容进行了新的认识。由满足分配律的群生成环,由每个非零元都有乘法逆的交换环再生成域,由此可见,计算机代数中我们把交换代数的基本知识作为重点的研究对象,当然与此同时我们也对环和域中的内容进行了扩充并介绍了其算法。
我们分别对理想、环同态、商环、某环的因子分解、域的扩张等方面进行了详细的讨论。从学习中我们了解并掌握了多项式中理想的Hilbert基本定理,理想的升链条件,Hilbert零点定理等重要定理,这为以后的学习埋下了良好的铺垫,而其中的基本条件K[x1,x2,,xn]与其他一般交换环的不同,这里K[x1,x2,,xn]的理想总是有限生成的。商环并不是我们所认为的所谓环的商,而是商集R\\I在加法“+”和乘法“”运算下成为的环(其中I为R的一个理想)。然而除法的概念在符号计算中却起着非常重要的作用,但在环里进行了一般的除法运算是不可行的,因此我们引入了整环中因式分解的概念。对于有隶属于中整式的因式分解我们并不陌生,因此当我们把数域平移至整环中,我们也就很快接受了。与有理数域不同的是,整环Z中,可逆元只有1和-1两个,因此两个相伴的整数可以有相同的符号,也可以有相反的符号,由此可知,两个整数的最大公因子可以相差一个正负号,这就学要我们根据确定的规划选取规范元来求解最大公因子不唯一的问题,进而便可对整环进行因式分解,而同样的规范方法同样适用于最小公倍数的求解,这里不一一赘述。另外,并非每个整环都是一个UFD,而整环也未必有最大公因子,但UFD中,最大公因子比人存在切唯一,因此,对于一个UFD,在其上定义了规范元,则有a∈D的系分解形式a=u(a)P1P2Pn
d1d2dn。在多项式的各种运算中,一个很重要的运算就是带系除法a=qb+r,而带余除法在一般整环中却未必成立,这就要求我们必须了解一类特殊的整环Euclid整环。在Euclid整环中,利用带系除法,计算两个元素的最大公因子(如果存在)便方便得当。而且Euclid整环及其重要性质也是今后我们重点研究的对象。
2、在计算机代数中,数据的运算必须是精确的,不容许有导入误差,因此数据都需要用整数来表示,然而很多情况下,虽然初始数据不是很大,在运算过程中数据膨胀却很快,而数据膨胀现象与计算方法有密切关系,这就需要我们了解大整数的表示、比较及运算,以期在计算中取得最优的效果。
对于大整数的表示通常有三种方法链表法、动态陈列分配法及定长陈列方法。对于这三种表示各有优缺点,可在不同的代数系统选择合理的方法,如基于C语言的代数系统采用动态阵列,基于LISP语言的代数系统采用链表表示等。而大整数的比较则与十进制整数比较是一致的,数位多的总是大于数位少的,相同位数的比较则从高位逐次开始比较。大整数的运算大整数的加减法、乘法、快速乘法、除法以及最大公因子与最小公倍式的计算。对于加减法,无可非议的可以很自然的由简单的算法给出,而快速乘法则是对乘法的优化及改进,以使其计算步骤实现由O(n)到O(n
2log23
)的减少,这也是快速乘法受到重视的原因。
对于大整数的除法,则根据带余除法设计算法求得。对于最大公因子的计算,我们采用了著名的Euclid算法,同时我们对Euclid算法进行了改进(即扩展Euclid算法),更好地完成了Euclid算法中的应用。而对于最小公倍数的计算,我们只需计算一个最大公因子、一个乘法和一个除法就可以了。
在计算机代数的计算中,经常需要处理大整数,这自然要话费很大的计算量,为尽可能避免处理大整数,人们采用了所谓的模方法,即有限域上的计算。我们利用同余的关系把整数环Z中的整数划分为一个同系子集,当a、b模的所得余数相等时,我们就视这两个数等价。另一方面,我们还研究了整数的p-adic表示,对任意给定的整数a,将其表示成
aa0a1pap22ap,akkiz