第七章讣算机代数 Computational algebra Symbolic manipulation Machine Algebra ●●●●
第七章 计算机代数 Computational Algebra Symbolic Manipulation Machine Algebra ……
§7.1引言 数值计弇系统 Fortran语言 z=X+Y 非数值计算系统 Mathematica语言 例:勒让褒多项式定义
§7.1 引言 数值计算系统 Fortran 语言 例: …… X=1 Y=2 Z=X+Y …… 非数值计算系统 Mathematica 语言 例: 勒让德多项式定义
(1) Legendre[n,x]给出勒让德多项式P(x) (2) Legendre[n,mx]给出伴隨勒让德多项式 Pm(x)=(-1) d P() 也可以由用户采用递推公式定义: n.X modulertemp), temp=0 If n=- 0, temp Ifn==l, temp=x Ifn>1. temp=((2n-1)xPIn-1, x(n-1)PIn-2, x/n, Null Null l, Null g temp 递推公式 B(x)=1,P(x)=x,P2(x)=[(2n-1)xB=1(x)-(n-1)Pn2(x)/n
(1) LegendreP[n,x] 给出勒让德多项式 P x n ( ). (2) LegendreP[n, m, x] 给出伴随勒让德多项式 ( ) ( ) ( ) ( ) / 2 2 1 1 m m m mn n m d P x x P x dx = − − 也可以由用户采用递推公式定义: P[n_, x_]:= module[{temp}, temp=0; If [n==0, temp=1 , If [n==1, temp=x , If [n > 1, temp=((2n-1) x P[n-1, x]-(n-1) P[n-2, x])/n , Null ], Null ], Null ]; temp ] 递推公式 0 1 ( ) ( ) ( ) 1 2 1, , [(2 1) ( ) ( 1) ( )]/ P x P n n n x x P x n xP x n P x n = = = − − − − −
表面上來看,数值计算语言应当与计算机代数语言是 本质上迥然不同的两种语言。其实,两者在本质上是完 全一致的。这是因为目前我们使用的计算机仍然是一种 二选制的数字计算处理机。文宇、字待或符号都只能通 过二进制编码扌能用讣箕杋选行处理
表面上来看,数值计算语言应当与计算机代数语言是 本质上迥然不同的两种语言。其实,两者在本质上是完 全一致的。这是因为目前我们使用的计算机仍然是一种 二进制的数字计算处理机。文字、字符或符号都只能通 过二进制编码才能用计算机进行处理
由于这种本质联系。所有的数值算法语言经过改造加 工以后,都可以发展为计算机代数语言,或者说可以具 有非数值处理功能。 所谓计算机代数处理系统奥际上是指硬件和软件的 综合。 常用的计算机代数系统: 1. MACSYMA。它是用LISP语言的一种功能很强的方言 Franz Lisp写成的。它是一个通用的计算机代数系统
由于这种本质联系 ,所有的数值算法语言经过改造加 工以后,都可以发展为计算机代数语言, 或者说可以具 有非数值处理功能。 所谓计算机代数处理系统实际上是指硬件和软件的 综合。 常用的计算机代数系统: 1. MACSYMA。它是用 LISP 语言的一种功能很强的方言 Franz Lisp 写成的。它是一个通用的计算机代数系统
(2) REDUCE。它是由赫恩(A.C. Hearn)设计的。该 语言是用 SLISP( Standard Lisp)写成的,通用的代 教处理系統。具有相当广泛的基本代数处理功能。并 能处理高能物理的计算问题。 (3) Mathematica该系統是美国 Wolfram公司开发 的一个功能强大的计算机通用数学系统。其基本系統 主要是用C语言开发的。它是当前运用十分广泛的符 号代数处理系统
(2) REDUCE。它是由赫恩(A.C. Hearn)设计的。该 语言是用 SLISP (Standard LISP)写成的,通用的代 数处理系统,具有相当广泛的基本代数处理功能,并 能处理高能物理的计算问题。 (3) Mathematica。该系统是美国 Wolfram 公司开发 的一个功能强大的计算机通用数学系统。其基本系统 主要是用 C 语言开发的。它是当前运用十分广泛的符 号代数处理系统
(4) Maple.这是一个商业产品。其优点是使用图形用户 界面并文持一些复条运算,如:因式分解,积分或求和。 缺点是 Maple不适用于处理大量数据。 (5) LiNaC:这是用C+的符号计算库。它的主要特征是 具备以面向对象的方式实现用户自己的算法的能力。它 能处理大量数据。在基准测谜下。其运算速度可与下面 的FOAM相当
(4) Maple. 这是一个商业产品。其优点是使用图形用户 界面并支持一些复杂运算,如:因式分解,积分或求和。 缺点是 Maple 不适用于处理大量数据。 (5) GiNaC: 这是用 C++的符号计算库。它的主要特征是 具备以面向对象的方式实现用户自己的算法的能力。它 能处理大量数据,在基准测试下,其运算速度可与下面 的 FORM 相当
(6) SCHOONSCHIP这是很著名的粒子物理研究用的计算 机代数系统。它也能做一舭的代教运算,是目前为止运 行速度最快的系统。该程序是用CDC型60位计算机和 6800系列计算机的汇编语言写成的,因而大大限制了 它适用的机型。 (⑦)FORM:优点是還算速度高和具有处理大量数据的 能力。它被广泛运用于高能物理和涉及大型中间表达式 的程序。人们普遍认为它是SCH00 NSCHIP系统的后继程 序
(6)SCHOONSCHIP。这是很著名的粒子物理研究用的计算 机代数系统。它也能做一般的代数运算,是目前为止运 行速度最快的系统。 该程序是用 CDC 型 60 位计算机和 6800 系列计算机的汇编语言写成的,因而大大限制了 它适用的机型。 (7)FORM: 优点是运算速度高和具有处理大量数据的 能力。它被广泛运用于高能物理和涉及大型中间表达式 的程序。人们普遍认为它是 SCHOONSCHIP 系统的后继程 序
计算机代数系统的发展历史: 二十世纪六十年代最早的计算机代数系统几乎完全是基于LISP 表处理谮言.它是用来处理表链的。它对于早期符号计犷程序的 重要性,就好比同一时期处理数值计算的程序 FORTRAN系统。在 这个阶段, REDUCE程序对高能物理已经表现出一些特殊的用途。 ●SCH00 NSCHIP是M, Veltman用汇编语言写的。专门应用于粒子物 理额域。汇编代码的应用导致了难以置信的高速计算程序(相对 于最初的解释代码),从而傀计算更复杂的高能物理散射过程成 为可能。由于人们還渐认识到这个程序的重要性,因而,1998年 M. Veltman因此获得了诺贝尔物理奖。 ●同时值得一提的是基于 Franz lISP的 MACSYMA系统,它引发了 算法的重要发展
计算机代数系统的发展历史: z 二十世纪六十年 代最早的计算机代数系统几乎完全是基于 LIS P 表处理语言.它是用来处理表链的。它对于早期符号计算程序的 重要性,就好比同一时期处理数值计算的程序 FORT R A N 系统。 在 这个阶段,REDUCE 程序对高能物理已经表现出一些特殊的用途。 z S C HOONSCHIP 是 M. Veltman 用汇编语言写的,专门应用于粒子物 理领域 。汇编代码的应用导致了难以置信的高速计算程序(相 对 于最初的解释代码),从而使计算更复杂的高能物理散射过程成 为可能 。由于人们逐渐认识到这个程序的重要性,因而,1998 年 M.Veltman 因此获得了诺贝尔物理奖。 z 同时值得一提的是基于 F r anz LISP 的 MACSYMA 系统,它引发了 算法的重要发展
●从1980年以来,新的计算机代数系统开始采用C语言编写。这 样的系统与解释语言LISP相比,能够更好的利用计算机资源, 养能保持程序的可移植性,而这正是解释语言所做不到的。 ●这个时期还出现了最早的商业计犷机代数系统,其中 Mathematica和 Maple最为著名。另外,少量的专用程序也出现 了, J. Vermaseren編写的FO趔M就是一个用于粒子物理研究的程 序。它是可移植的,并认为是SCH00 NSCHIP系統的后继程序。 ●近几年,有关大型程序可錐护性的问题变得越来越重要。全部 的设计范例都由过程设计变到了面向对隶设计。反映在编程语 言上从C变到C十十。这样 LiNaC库隨之发展起来,它支持C+环 境下的符号计算
z 从 1980 年以来,新的计算机代数系统开始采用 C 语言编写。这 样的系统与解释语言 LISP 相比,能够更好的利用计算机资源, 并能保持程序的可移植性,而这正是解释语言所做不到的。 z 这 个 时 期 还 出 现 了 最 早 的 商 业 计 算 机 代 数 系 统 , 其 中 Mathematica 和 Maple 最为著名。另外,少量的专用程序也出现 了,J.Vermaseren 编写的 FORM 就是一个用于粒子物理研究的程 序。它是可移植的,并认为是 SCHOONSCHIP 系统的后继程序。 z 近几年,有关大型程序可维护性的问题变得越来越重要。全部 的设计范例都由过程设计变到了面向对象设计。反映在编程语 言上从 C 变到 C++。这样 GiNaC 库随之发展起来,它支持 C++环 境下的符号计算