《计算物理》教案7计算机代数

上传人:M****1 文档编号:576653556 上传时间:2024-08-20 格式:PDF 页数:33 大小:4.88MB
返回 下载 相关 举报
《计算物理》教案7计算机代数_第1页
第1页 / 共33页
《计算物理》教案7计算机代数_第2页
第2页 / 共33页
《计算物理》教案7计算机代数_第3页
第3页 / 共33页
《计算物理》教案7计算机代数_第4页
第4页 / 共33页
《计算物理》教案7计算机代数_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《《计算物理》教案7计算机代数》由会员分享,可在线阅读,更多相关《《计算物理》教案7计算机代数(33页珍藏版)》请在金锄头文库上搜索。

1、第七章计算机代数Computational AlgebraSymbolic ManipulationMachine Algebra7. 1引言数值计算系统Fortran 语言例: x=iY=2Z=X+Y非数值计算系统Mathematica 语言例: 勒让德多项式定义(1 ) L e g e n d r e P n,x给出勒让德多项式 月 (% ).(2) L e g e n d r e P nr m, x 给出伴随勒让德多项式尸( )= (-1广 (i - 9 r 号 小 )也可以由用户采用递推公式定义:Pn_, x_:=moduletemp, temp=O;If n=0, temp=l,If

2、 n=l, temp=x,If n 1,temp=(2n-l) x Pn-1, x-(n-l) Pn-2, x)/n , Null,Null , Null;temp递推公式稣(x ) = 1 , 6 (% ) = x,匕(% ) = l(2n - 1 )%耳1T (x )-(w -l ) _2(x ) / n表面上来看,数值计算语言应当与计算机代数语言是本质上迥然不同的两种语言。其实,两者在本质上是完全一致的。这是因为目前我们使用的计算机仍然是一种二进制的数字计算处理机。文字、字符或符号都只能通过二进制编码才能用计算机进行处理。由于这种本质联系, 所有的数值算法语言经过改造加工以后,都可以发展

3、为计算机代数语言,或者说可以具有非数值处理功能。所谓计算机代数处理系统实际上是指硬件和软件的综合。常用的计算机代数系统:1. MACSYMAo它是用LISP语言的一种功能很强的方言Franz Lisp写成的。 它是一个通用的计算机代数系统。(2) REDUCEo它是由赫恩(A.C. Hearn)设计的。该语 言 是 用SLISP (Standard L工SP)写成的, 通用的代数处理系统,具有相当广泛的基本代数处理功能,并能处理高能物理的计算问题。(3) Mathematicao该系统是美国Wolfram公司开发的一个功能强大的计算机通用数学系统。 其基本系统主要是用C语言开发的。 它是当前运

4、用十分广泛的符号代数处理系统。(4) Maple.这是一个商业产品。 其优点是使用图形用户界面并支持一些复杂运算, 如:因式分解, 积分或求和。缺点是Maple不适用于处理大量数据。(5) GiNaC:这是用C +的符号计算库。它的主要特征是具备以面向对象的方式实现用户自己的算法的能力。它能处理大量数据,在基准测试下,其运算速度可与下面的FORM相当。(6) SCHOONSCHIP。 这是很著名的粒子物理研究用的计算机代数系统。 它也能做一般的代数运算, 是目前为止运行速度最快的系统。该程序是用CDC型60位计算机和6800系列计算机的汇编语言写成的,因而大大限制了它适用的机型。(7)FORM

5、:优点是运算速度高和具有处理大量数据的能力O它被广泛运用于高能物理和涉及大型中间表达式的程序。 人们普遍认为它是SCHOONSCHIP系统的后继程序计算机代数系统的发展历史: 二十世纪六十年代最早的计算机代数系统几乎完全是基于LISP表处理语言. 它是用来处理表链的。它对于早期符号计算程序的重要性,就好比同一时期处理数值计算的程序FORTRAN系统。在这个阶段,REDUCE程序对高能物理已经表现出一些特殊的用途。 SCHOONSCHIP是M. Veltman用汇编语言写的,专门应用于粒子物理领域。汇编代码的应用导致了难以置信的高速计算程序( 相对于最初的解释代码) ,从而使计算更复杂的高能物理

6、散射过程成为可能。由于人们逐渐认识到这个程序的重要性,因而,1998年M.Veltman因此获得了诺贝尔物理奖。 同时值得一提的是基于Franz LISP的MACSYMA系统,它引发了算法的重要发展。 从1980年以来, 新的计算机代数系统开始采用C语言编写。这样的系统与解释语言LISP相比,能够更好的利用计算机资源,并能保持程序的可移植性,而这正是解释语言所做不到的。这 个 时 期 还 出 现 了 最 早的商业 计 算 机 代 数 系 统 ,其中Mathematica和Maple最为著名。 另外, 少量的专用程序也出现了,J.Vermaseren编写的FORM就是一个用于粒子物理研究的程序。

7、它是可移植的,并认为是SCHOONSCH工P系统的后继程序。近几年,有关大型程序可维护性的问题变得越来越重要。全部的设计范例都由过程设计变到了面向对象设计。反映在编程语言上从C变到C+。这样GiNaC库随之发展起来,它支持C+环境下的符号计算。 7 . 2粒子物理研究中计算机代数的应用 利用计算机代数系统使微扰计算步骤自动化。粒子物理是应用计算机代数的一个重要领域, 它充分发挥了计算机代数系统的潜力。SCHOONSCHIP, REDUCE, Mathematica,FORM 和 GiNaC采用计算机代数系统来计算的复杂量子场论问题可以分为两类:(1)第一类问题是仅仅只需要系统的基本支持的计算。

8、复杂的计算方法。既可以采用标准化的非局部操作也可以采用针对特定问题的计算算法,如采用由用户发展起来的专用算法。有关粒子物理研究中微扰计算的计算机代数算法:一、图形产生Thomas Hahn, FeynArts以FeynArts程序包为例:使用时,首先加载该程序包: m o d 1 , m o d 2 , . . . 将 m o d 1 , m o d 2 f . . .型中的场加到外腿数为e x t的拓扑t o p中去。(3) i n t e x p r 在屏幕上画出 I n s e r t F i e l d s 输出 e x p r 的费曼图形。二、费曼幅度和指标收缩计算F e y n A

9、r t s程序包中,采用函数Cr e a t e F e y n Am p e x p r 将I n s e r t F i e l d s函数输出e x p r的一组费曼图产生对应的解析幅度。图形与幅度的转换过程是按照费曼图图形技术中所对应的规则进行的:外线对应自由波函数,内线对应着传播函数, 顶点对应相互作用顶点。例: 协变规范中的胶子传播函数的规则和夸克- 胶子作用顶点的规则:由上面的费曼规则得到的不变振幅的表达式中将包含了重复指标求和。例如: 洛仑兹指标的收缩可以通过不断运用以下几个规则来实现:g i g = g / , g “ p = p , =P4 = PQ , P = p , =

10、 D如果要对一串狄拉克( D i r a c )矩阵乘积的重复指标收缩,例如“,我们可以先用狄拉克矩阵的反对易关系心九2g ,使两个狄拉克矩阵用同一个指标, 然后再用上面公式化简。在振幅平方的计算中,一般有狄拉克矩阵的求阵迹计算。由于结果是相对论性不变量,所以人们很少有必要去研究公式中各个矢量的分量,而只研究这些矢量的标积。这样计算就没有原来那么复杂了。原则上这个计算方法是很明确的: 奇数个狄拉克矩阵的阵迹是零; Trl=4;偶 数(2n)个7矩阵的乘积的阵迹计算可以用公式:11 j 混 ” 。 , 二 口 O k z )/I 十 g , j . a 2n 将(2n)个/ 矩阵的乘积的阵迹计算

11、转变为对(2n-2)的7矩阵的乘积求阵迹。理论上反复运用上式,(2n)个狄 拉 克 矩 阵 的 阵 迹 会 产 生(2n-l) (2n-3)-3 l=(2n-l) ! ! 项。这个数目随n增加而指数增长。如果在指标外, , 出之间没有别的关系,则这实际上就是(2n)个/ 矩阵的乘积的阵迹最后结果的项数。FORM程序是处理费曼幅度化简、洛仑兹指标收缩和 /矩 阵 阵 迹 的 最 好 工 具 之 一 。运 用 飞Hooft-Veltman方案对狄拉克代数的计算在TRACER程序中得以实现。三、单圈积分函数计算和Passarino Veltman化简Passarino和Veltman已经首先给出了一

12、* 圈标量和张量积分函数系统的算法。 其计算的基本思想就是将张量积分计算化解为标量积分函数的计算,而标量积分函数最终化为Spence函数的计算。例:介绍张量圈积分化简到一个标量圈积分的集合。以下面的三点积分计算为例,_ r dDk kv3 = W其 中P i和P 2表示外线动量。P a ssa ri no和V e lt ma n米用将 写成最一般的形式,即用形状因子乘以外部动量和 ( 或 )度规张量表示的形式。在以上我们的例子里,我们将该张量积分写为这 里 p, , p; = pf pl + PH O然后通过方程两边与外部动量pf p; , p; pf ,加 ,p; 和 度 规 张 量 收 缩

13、 ,来解出形状因子4,金, 金和C24O左边的结果是按照传播子重写成圈动量上与和外部动量之间的标量乘积的形式,例如:2Pl ,k = k? 一 p i + p:.右边的前两项消去了传播子, 而最后一项根本与圈动量无关。 接着得到线性方程求解形状因子。 在这一步,我们会遇到计算Gram行列式A3 = 4 ”2P P i Pi ,这个算法的缺点就在出现在对这个行列式的计算上面。 如果在一个Pi和P2共线的相空间域中,Gram行列式趋向与零, 这时稳定的数值计算程序就变得十分困难。目前已经有对Passarino-Veltman算法的改进的方法,这在很大程度上避免了 Gram行列式出现。近年来出现了解

14、析或数值计算一圈图的一点、二点、三点、四点, 甚至五点积分函数的程序包。LoopTools就是这样一个计算标量和张量单圈积分的程序包。由于多点单圈图的动量积分具有可以最终归结为Spence函数计算的共性, 因而这样的积分是可以用计算机代数系统来解决复杂计算的困难。然而二圈以上的动量积分计算就不再具有这一共性,不具备统一的算法,因此用计算机代数系统来解决复杂计算还存在困难。四、高阶量子修正计算的计算机代数程序目前比较著名的, 用于高阶电弱和QCD理论微扰计算,基于计算机代数的程序包有以下四组。 每组中的不同程序包大都有相同的语法,它们还可以It接起来使用。(1)FeynArts, FeynCal

15、c, FormCalc, LoopTools,TwoCalc 和 s21seo(2) GEFICOM,QGRAF,MATAD 和 MINCERo(3)DIANA,QGRAF 和 ON-SHELL2,(4)xloops 和 GiNaCo如前面所列举的高阶精确计算程序包表明:计算机代数系统与其余程序部份间的有效交流是极为重要。这些外部程序可能是数值计算,文字处理,数据库,专家库类型的程序包,也可能是特别适合问题的某一部份计算的计算机代数系统。将来人们会更多地强调对程序集成的某种程度的标准化,以及要求具备不同系统间数据传递功能。随着将来硬件和软件的发展,计算机代数系统功能的扩展会向两个不同方向发展:

16、一方面,计算机代数系统可以进行远远超出现在水平的非常复杂的计算,另一方面计算机代数系统越来越成为解决常规问题的软件环境中的一部份。 7. 3 Mathematica 语言编程单词,词 汇 - 一少 语 句 ,文章1 .过程一般形式为:Module 局部变量名表 , 表达式1;表达式2;表达式n例如:unitx_r y_, z_ := Modulelen , len = SqrtxA2 + yA2 + zA2 ;Nx/len, y/len, z/len Block 局部变量名表 , 表 达 式1;表 达 式2;表达式n2.控制选择(i)顺序控制 分 号“ ; ”( i i )条件控制工f语占结构

17、。工f 逻辑表达式,表达式工口逻辑表达式,表达式1,表达式2 工f 逻辑表达式,表达式L表达式2 ,表达式3 例如:fx_ := ff(x 0) | (x=0), NSqrtx, Print66x is negativeoPrint66x is not numerical.nWhich语句结构。Which 条件L表达式L条件2 ,表达式2 ,,条件n ,表达式n例: Which 2= =3,x,3= =3,y 其结果为y。这是由于条件2=3的结果为False,而条件3=3的结果为True.Switch语句结构。Switch 判别表达式,模式L表达式L模式2 ,表达式2 ,,模式n ,表达式n例

18、: i = lS w i t c h i 人 2 , 0 , x , l , y , 2 , z 最后结果为y 。( i i i ) 循环控制D o 语句结构D o 表达式, 循环描述 例: D o P r i n t 2Ai J i , l / 5 该指令的结果是循环打印出入 ( i = l , 2 , 3 , 4 , 5 ) 的值2 ,4 , 8 , 1 6 , 3 2 oFor语句结构For 初始表达式,条件,步进表达式,循环表达式例如: For i=0, i=10, +1, Print i值为0, 1, 2, 3, 4, 5, 6 , 7, 8, 9 , 10oWhile语句结构Whi

19、le 条件,循环表达式例如:i=0While i=10A Print i;i+ 3 . 程序包结构一般的程序包具有如下的基本框架:BeginPackage ” 程序包名称,” 名称: : usage= “ 字符串,程序包中定义在包外可以使用的函数、变量等的名字和使用说明Begin“ Private程序包主体. ( 包括外部可用的函数及变量, 一些内部函数变量的定义. )End EndPackage7.3 Mathematica 语言编程1 .过程一般形式为:Module 局部变量名表 , 表达式1;表达式2;. . . 表达式n 例如:unit x_, y_, z_ := Module len

20、, len = SqrtxA2 + yA2 + zA2;Nx/len, y/len, z/len Block 局部变量名表 , 表达式1;表达式2;表达式n 2 .控制选择(i) 顺 序 控 制 分 号(ii) 条件控制if语言结构。if 逻辑表达式,表达式If 逻辑表达式,表达式1,表达式2 If 逻辑表达式,表达式1,表达式2,表达式3 例如:fx_ := If(x 0) I I (x=0) , NSqrtx, Printx is negative0 ,Printx is not numerical.Which语句结构。Which 条件1,表达式1,条件2,表达式2, ,条件n,表达式n例

21、: Which 2= =3,x,3= =3,y 其结果为y。这是由于条件2=3的结果为False,而条件3=3的结果为True.Switch语句 结构。Switch判别表达式, 模式1,表达式1,模式2,表达式2,,模式n,表达式n 例 : i = lS w i t c h iA2 , 0 , x , 1 , y , 2 , z 最后结果为y 。( i i i )循环控制D o 语句结构。D o 表达式, 循环描述 例 : D o P r i n t 2Ai , i , b 5 该指令的结果是循环打印出2 , ( i = l , 2 , 3 , 4 , 5 ) 的值2 , 4 , 8 , 1

22、6 , 3 2 。F o r 语句结构。F o r 初始表达式,条 件 ,步进表达式,循环表达式例如: F o r i = 0 , i =1 0 , + + l, P rint i 值为0 , 1 , 2 , 3 , 4, 5, 6, 7, 8, 9, 1 0 =W hile语句结构。例如:i=0W hile i =1 0 , P rint i ; i+ + 3. 程序包结构一般的程序包具有如下的基本框架:B eginP ackage ” 程 序 包 名 称 , 名 字 : : usage= 字符串,程序包中定义在包外可以使用的函数、变量等的名字和使用说明B egin u Private程序包主体. ( 包括外部可用的函数及变量, 一些内部函数变量的定义. )E n d EndPackage

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号