berlekamp算法
① 谁能帮我 翻译一篇 论文 摘要
This paper first sequence passwords principle, meaning, the focus of its research and study status of the initial presentation, a detailed description of non-linear feedback shift register have a pseudo-random sequence of principle, Meanwhile de Bruijn of the sequence (commonly known as the M-series), the definition and determination methods described. The article described the latter part of the linear shift register integrated algorithm (also known as Berlekamp-Masse y algorithm), in principle briefed at the same time is given for the specific steps and C source code. Finally, the use of an implement of the proceres, The procere traverse n-de Bruijn sequence, the use of BM algorithm for the linear complexity, calculated with a linear complexity of n-de Bruijn sequence number, hence n-de Bruijn sequence of the total number. Through the proceres and operations on the results of the analysis shows that the BM algorithm code sequences important role.
Non-linear feedback shift register : NFSR sequence Password : Stream Cipher pseudo-random sequence : pseudorandom numbers
② 诚请计算机高手帮忙!!!!!!!!!!!!
1.1 计算机代数系统的发展历史
什么是计算机代数系统? 从历史的角度来看\COMPUTE” 的涵义是\数值的计算". 数值
计算的涵义不仅仅是数的算术计算, 还包括其它复杂的计算, 例如: 数学函数的计算、求多项式
的根、矩阵的计算、矩阵特征值的计算等等. 数值计算的一个本质的特征是它不能保证绝对的
准确, 原因在于, 在数值计算的过程中我们是用浮点数进行计算的, 对于简单的问题, 我们可以
用纸和笔手工计算, 对于复杂的问题, 就需要用计算器或计算机进行计算. 然而, 对计算机来说,
要想绝对精确的表达一个浮点数几乎是不可能的, 在计算的过程中必然会产生误差.
数学的计算除了数值计算以外还有另一个重要的分枝, 我们称之为符号计算或代数计算. 简
单的讲, 就是对代表数学对象的符号进行计算. 这些符号可以代表整数、有理数、实数、复数或
代数数, 也可以代表其它的数学对象如多项式、有理函数、矩阵、方程组, 或者其它抽象的数学
对象如群、环、域等等. 对于这些抽象的数学符号, 我们通常是手工计算的, 这也是数学家传统
的工作方式. 然而随着计算机技术的发展, 以及对符号算法的深入研究, 用计算机代替人工进行
符号计算已经成为可能.
从二十世纪六十年代以来, 符号计算这个研究领域获得了极大的发展. 一系列符号计算算
法的提出为现代计算机代数系统奠定了理论基础. 比较着名的算法包括: 计算多项式理想的
Grobner 基算法、多项式分解的Berlekamp 算法、计算有理函数积分的Risch 算法.
在二十世纪六十年代, 比较流行的计算机程序语言是FORTRAN 和ALGOL. 这两种语言
主要是用来作数值计算的, 至今FORTRAN 依然是数值计算领域的标准语言之一. 然而FORTRAN 语言和ALGOL 语言并不适合于编写符号计算软件. 六十年代初出现的LISP 语言为符
号计算软件提供了合适的语言环境, 因此早期的符号计算软件都是用LISP 语言编写的. 其中最
着名的符号计算系统是REDUCE, REDUCE 系统是由Stanford 大学的Tony Hearn 开发的基
于LISP 语言的交互式符号计算系统, 最初的目的是用来进行物理计算. 到了二十世纪七十年代
初, 由麻省理工学院的Joel Moses, Willian Martin 等人开发的MACSYMA 系统诞生了, 它是那
个时代功能最强大的符号计算系统. 它的功能除了标准的代数计算以外, 还包括极限的计算、符
号积分、解方程等. 事实上, 许多符号计算的标准算法都是由麻省理工学院的研究小组提出的.
由G. Collins 和R. Loos 开发的SAC/ALDES 系统是另外一种类型的符号计算系统, 它的
前身是G. Collins 在IBM 编写的PM 系统(它是一个处理多项式的符号计算系统). SAC 是一
个非交互的系统, 它是由ALDES(ALgebraic DEScription) 语言编写的模块组成的, 并且带有一
个转换程序, 可以把结果转换成FORTRAN 语言. 到了1990 年, H. Hong 用C 语言重写了SAC
系统, 形成了新的SACLIB 系统. 这个系统提供了完整的C 语言源代码, 可以自由的从国际互
联网上下载.
在二十世纪七十年代的第四个通用的符号计算系统是muMATH. 它是由Hawaii 大学的
David Stoutemyer 和Albert Rich 开发的第一个可以在IBM 的PC 机上运行的计算机代数系统.
1
2 第一章Maple 系统简介
它所使用的开发语言是LISP 语言的一个子集称为muSIMP.
进入二十世纪八十年代, 随着个人PC 机的普及, 计算机代数系统也获得了飞速的发展. 在
这个时代推出的计算机代数系统大部分是用C 语言编写的, 比较着名的系统包括Maple, Mathematica, DERIVE 等. 有关Maple 的特点我们将在后面介绍, 这里, 我们简单介绍一下DERIVE
和Mathematica.
DERIVE 是muMATH 的后继版本, 它是第一个在PC 机上运行的符号计算系统.DERIVE
具有友好的菜单驱动界面和图形接口, 可以很方便的显示二维和三维图形. 它唯一的缺陷是没
有编程功能, 直到1994 年DERIVE 的第三版问世时, 才提供了有限的编程功能. 现在DERIVE
的大部分功能都被移植到由HP 公司和Texas 公司生产的图形计算器上.
Mathematica 是由Stephen Wolfram 开发的符号计算软件,Mathematica 系统的计算能力非
常强, 它的函数很多, 而且用户自己可以编程. 它的最大优点是, 在带有图形用户接口的计算机
上Mathematica 支持一个专用的Notebook 接口. 通过Notebook 接口, 我们可以向Mathematica
核心输入命令, 可以显示Mathematica 的输出结果, 显示图形、动画、播放声音. 通过Notebook,
我们可以书写报告、论文, 甚至整本书. 事实上, 有关Mathematica 的论文, 软件, 杂志大部分都
是用Notebook 写的, 并且在Internet 网络上广泛传播.Mathematica 的另一个重要特点是它具
有Mathlink 协议, 通过Mathlink, 我们可以把Mathematica 的核心与其它高级语言连接, 我们
可以用其它语言调用Mathematica, 也可以在Mathematica 中调用其它语言编写的程序. 到现
在为止, 能够与Mathlink 连接的语言包括C 语言,Excel,Word 等. 事实上Notebook 就是通过
Mathlink 与Mathematica 核心相连接的.
上面我们介绍的软件都是通用的符号计算系统, 其它通用的符号计算系统还有IBM 公司
的Thomas J. Watson 研究中心开发的AXIOM, 它的前身称为SCRATCHPAD.
除了上述通用的符号计算系统以外, 还有一些在某个领域专用的符号计算系统. 例如: 用于
高能物理计算的SCHOONSCHIP, 用于广义相对论计算的SHEEP 和STENSOR. 在数学领域
中用于群论的Cayley 和GAP, 用于数论的PARI, SIMATH 和KANT. 在代数几何和交换代数
领域中常用的系统是CoCoA 和Macaulay. 还有专门计算Lie 群的Lie 等等.
1.2 计算机代数系统的网络资源
进入二十世纪九十年代以来, 随着国际互联网的迅速发展, 符号计算系统的发展变的更加
迅速和开放. 从国际互联网上可以获取各种符号计算系统, 以及其他数学软件的相关信息. 有些
新的符号计算系统甚至提供源代码. 有些数学软件还有新闻组或讨论组, 通过讨论组, 用户可以
彼此交流信息、解答问题. 厂家也可以及时发现软件的问题, 进行修改. 下面我们介绍一些常用
数学软件的网络资源, 以及主要研究机构的地址.
Mathematica 的网络资源:
http://www.wolfram.com
http://www.mathsource.com
http://www.matheverywhere.com
http://smc.vnet.net/MathTensor.html
ftp://ftp.mathsource.com
news://comp.soft-sys.math.mathematica
1.3 Maple 的基本功能3
maillist:[email protected]
Maple 的网络资源:
http://www.maplesoft.com
http://daisy.uwaterloo.ca
ftp://ftp.maplesoft.com
maillist:[email protected]
Matlab 的网络资源:
http://www.mathworks.com
ftp://ftp.mathworks.com
news://comp.soft-sys.matlab
REDUCE 的网络资源:
http://www.rrz.uni-koeln.de/REDUCE
http://www.zib.de/Symbolik/rece
ftp://ftp.rand.org/software_and_data/rece
符号计算研究机构及信息中心
http://symbolicnet.mcs.kent.e
http://www.cain.nl/
http://www.risc.uni-linz.ac.at
news://sci.math.symbolic
其它符号计算软件的网络地址:
Derive http://www.derive.com
Macaulay2 http://www.math.uiuc.e/Macaulay2/
Macsyma http://www.macsyma.com
Magma http://www.maths.usyd.e.au:8000/u/magma/
Mathcad http://www.mathsoft.com
MuPad http://www.mupad.de
Scilab http://www-rocq.inria.fr/scilab/
1.3 Maple 的基本功能
计算机代数系统与其它计算机语言的本质区别是: 计算机代数系统具有符号计算的能力,
为用户提供交互式的计算环境, 可以进行常规的数学计算, 可以根据给定的数学函数画出函数
的二维或三维图形. 下面我们简要描述Maple 的基本功能.
数值计算
对于普通的数,Maple 总是进行精确的计算, 这种规则对于有理数和无理数是相同的. 因此
对于无理数Maple 按照有关的数学规则进行计算, 只有当用户需要计算浮点数近似值时,Maple
才按照用户要求的精度计算.
> 1/5+1/4;
9
20
4 第一章Maple 系统简介
> 5!/21;
40
7
> evalf(%);
5:714285714
> evalf(Pi,40);
3:
> 2.496745643/2;
1:248372822
> abs(3+5*I);
p34
> (3+4*I)/(1+I);
71
+ I
22
从上面的例子可以看到, 对于复数Maple 按照复数的规则进行计算.
多项式
符号计算系统的最基本功能是处理符号表达式, 多项式则是最基本的符号表达式. 从下面
的例子中可以看到Maple 可以用各种方式处理多项式、三角表达式、指数与对数等许多数学表
达式.
> factor(x^4+2*x^3-12*x^2+40*x-64);
(x . 2) (x 3 +4 x 2 . 4 x + 32)
> expand((x+1)^5);
x 5 +5 x 4 + 10 x 3 + 10 x 2 +5 x +1
> simplify(exp(x*log(y)));
x
y
> simplify(sin(x)^2+cos(x)^2);
1
> expand((x^2-a)^3*(x+b-1));
x 7 + x 6 b . x 6 . 3 x 5 a . 3 x 4 ab +3 x 4 a +3 x 3 a 2 +3 x 2 a 2 b . 3 x 2 a 2 . a 3 x . a 3 b + a 3
> expand(cos(4*x)+4*cos(2*x)+3,trig);
8 cos(x)4
1.3 Maple 的基本功能5
> combine(4*cos(x)^3,trig);
cos(3 x) + 3 cos(x)
解方程
用Maple 来解简单的方程是毫无问题的, 即使是很复杂的方程,Maple 也可以用数值计算的
方法来处理.
> solve(x^2-3*x=2,x);
31 31
2+
2
p17, 2 . 2
p17
> glsys:=f2*x+3*y+z=1,x-y-z=4,3*x+7*z=3g:
> solve(glsys);
..24 97 ..43
fz =
41 ;x =
41;y =
41 }
> fsolve(fx^2+y^2=10,x^y=2g,fx,yg);
fx =3:102449071;y = :6122170880}
矩阵计算
Maple 还有许多命令可以处理矩阵和向量, 不过需要调用线性代数软件包linalg. 还有一
点特别的是, 作矩阵的乘法需要一个特殊的算子&*.
> with(linalg):
Warning, new definition for norm
Warning, new definition for trace
> a:=matrix([[2,3],[1,4]]);
> inverse(a),det(a);
a :=
. ..
23
14
. ..
2..
4 ..3
55
..12
55
3..
, 5
> b:=matrix([[w,x],[y,z]]);
b :=
. ..
wx
. .5
yz
第一章Maple 系统简介
> evalm(a+b);
. ..
2+ w 3+ x
1+ y 4+ z
. ..
> evalm(a &* b);
. ..
2 w +3 y 2 x +3 z
w +4 yx +4 z
. ..
极限, 求和与乘积
对于普通的求极限问题, 可以直接用Maple 来计算, 它还可以符号的计算级数的和与积. 当
符号计算不成功时, 还可以作数值计算.
> limit((sqrt(1+x)-1)/x,x=0);
1
2
> limit(x!/x^x,x=infinity);
0
> sum(1/2^n, n=1..infinity);
1
> evalf(proct(1+1/x^2, x=1..infinity));
3:676077910
微分与积分
用Maple 来求微分是相当容易的, 使用diff 命令即可以求出数学表达式的微分, 不过求出
的结果可能是相当复杂, 因此通常还要用simplify 命令进行化简. 求数学表达式的定积分和不
定积分就相对复杂一些, 需要某些特定的算法. 对于复杂的函数, 求出的结果可能是某些特殊函
数. 对于定积分, 还可以用evalf 求出积分的数值.
> simplify(diff((x-1)/(x^2+1),x));
x2 . 1 . 2 x
. (x2 + 1)2
> diff(sin(x*y),x);
cos(xy) y
> int(1/(1+x+x^2),x);
21
p3 arctan( (2 x + 1) p3)
33
1.3 Maple 的基本功能7
> int(sin(x^2),x=a..b);
1
FresnelS( b p2) p2 pπ .
1
FresnelS(a p2) p2 p
2 pπ 2 pπ
> int(sin(x)/x,x=0..5);
Si(5)
> evalf(%);
1:549931245
微分方程
对于不太复杂的常微分方程,Maple 可以求出它的符号解. 如果你没有给初始条件, 或者给
的初始条件或边界条件不全, 在解的公式中会带有积分常量.
> deq:=diff(y(x),x)*y(x)*(1+x^2)=x;
deq := ( . y(x)) y(x)(1 + x 2)= x
@x
> dsolve(fdeq,y(0)=0g,fy(x)g);
y(x)= pln(1 + x2), y(x)= ..pln(1 + x2)
> dsolve((y(x)^2-x)*D(y)(x)+x^2-y(x)=0,fy(x)} );
11
x 3 . y(x) x + y(x)3 = C1
33
级数展开
当数学问题比较复杂时, 求出准确解通常是不可能的, 用series 作级数展开是有帮助的.
> series(sin(x),x=0, 10);
11 5 11 10)
x . 6 x 3 +
120 x . 5040 x 7 +
362880 x 9 + O(x
例如在下列微分方程中, 就是用级数方式求出的微分方程级数解.
> Order:=10:
> deq:=diff(y(x),x$2)+diff(y(x),x)+y(x)=x+sin(x );
@2 @
deq :=( y(x))+( y(x)) + y(x)= x + sin(x)
@x2 @x
> sln1:=dsolve(fdeq, y(0)=0, D(y)(0)=0g,fy(x)g,series);
1 3 1 4 1 5 +
1 6 1 7 1 8 +
1 10)
sln1 := y(x)=
3 x . 12 x . 120 x 240 x . 5040 x . 20160 x 181440 x 9 + O(x
第一章Maple 系统简介
Laplace 和Fourier 变换
Laplace 变换和Fourier 变换是常用的数学变换. 在Maple 中有一个积分变换的程序包
inttrans 提供了各种积分变换和它们的逆变换.
> with(inttrans):
> laplace(cos(t-a),t,s);
s cos(a) + sin(a)
s2 +1
> invlaplace(%,s,t);
cos(a) cos(t) + sin(a) sin(t)
> combine(%,trig);
cos(t . a)
> alias(sigma=Heaviside):
> f:=sigma(t+1)-sigma(t-1):
> g:=simplify(fourier(f,t,w));
g := 2 I (π Dirac(w) w . I) sin(w)
w
插值与函数拟合
interp命令可以由n 个点出发计算n . 1 阶的插值多项式. 在下例中,x 的取值是1 到10,
y 的值是1 到10 之间的10 个随机数.f 是相应的插值多项式.
> datax:=[seq(i,i=1..10)]:
> datay:=[seq(rand(10)(),i=1..10)]:
> dataxy:=zip((x,y)->[x,y], datax, datay);
dataxy := [[1, 1], [2, 0], [3, 7], [4, 3], [5, 6], [6, 8], [7, 5], [8, 8], [9, 1], [10, 9]]
> f:=interp(datax, datay, x);
17 9 517 11699 7 3719 27323 176741 4 652577 3f :=
51840 x . 40320 x 8 +
60480 x . 2880 x 6 +
17280 x 5 +
5760 x . 3240 x
1816483 2 1669153
+ xx + 293
3360 . 2520
使用数值逼近程序包numapprox 中的pade 命令可以计算一个给定函数的有理逼近函数,
以及其它类型的逼近函数.
> with(numapprox):
> x0:=solve(x^2=Pi/2)[1];
x0 :=
1 p2 p
2
1.3 Maple 的基本功能9
> f:=pade(tan(x^2), x=x0, [3,3]);
8 10
f := (..17280 19=2 p2 + 10800 %1 7 + 43200 %13 . 7680 %13
12
. 3072 %12 25=2 p2 . 32400 15=2 p2 + 3840 23=2 p2 + 28800 %1 9 + 3072 %13
+ 23040 %12 21=2 p2 + 14400 %12 17=2 p2 . 11520 %1 11) .(
(..11520 11 + 1024 13 . 14400 9 . 10800 7) %13
+ (7680 23=2 p2 . 11520 19=2 p2 + 21600 15=2 p2) %12
+(..7680 12 + 34560 10 + 64800 8) %1)
%1 := x .
1 p2 pπ
2
> evalf(normal(f));
6:(..:4532958122 109 x 2 . :1125313130 109 + :1054184360 109 x 3 + :5353835473 109 x)
((2:x . 2:506628274)
(..:1097168700 109 x 2 + :8958248690 109 x . :1356288866 1010))
图形
最常用的画图命令是plot和plot3d.下面的例子说明了使用在两个命令的方法.
>plot(sin(x)*exp(1)^(-x/7),x=0..4*Pi);
-0.4-0.200.20.40.60.824681012x>plot3d(sin(x)*exp(1)^y,x=0..2*Pi,y=0..Pi,axes=boxed);
20-1001020
Maple 编程
Maple 不仅可以对数学表达式进行计算, 还可以编程. 他的编程语言和其它的结构化编程
语言很相似.
10 第一章Maple 系统简介
> f:=proc(x::nonnegint)
> option remember;
> if x=0 then 0
> elif x=1 then 1
> else f(x-1)+f(x-2) end if
> end proc:
> f(40);
102334155
1.4 Maple 系统的交互使用
Maple 的窗口环境提供了先进的工作区界面, 其扩充的数学功能简明易用, 用户可以在其
中展现数学思想, 创建复杂的技术报告, 充分发挥Maple 的功能.
图1.1: Maple 的窗口环境
A Maple 的工具条
B 内容工具条, 它还包含一个输入和编辑文本的区域
C 节的头部及标题
D Maple 的输入, 提示符为\>", 显示为红色
1.4 Maple 系统的交互使用11
E Maple 的输出, 既执行Maple 命令的结果, 通常显示为蓝色
F 一组Maple 命令及其输出
G Maple 的工作区
H 工作区元素组成的节
I 节的范围: 用一个大的方括号\[” 表示
J 省缺的Maple 输入提示符
K 符号模板, 包含了许多常用的数学符号
L 表达式模板
M 矩阵模板
N 向量模板
Maple 工作区界面
Maple 的图形界面具有现代应用软件界面的常见功能, 它支持鼠标操作, 包括剪切和粘贴等
功能, 如果你已经习惯了这些用法, 那就具备了使用Maple 工作区界面的基本知识. 现在你可
以执行一些标准的操作, 例如: 打开文件、保存和打印文件等.
对于Windows 平台, 只要双击Maple 图标即可启动Maple. 在Unix 系统下, 可在提示符
之后键入xmaple 命令来启动.Maple 启动后将开启一个新的工作区.
在窗口上端是菜单条, 包括File 和Edit 等菜单项, 菜单条之下是工具条, 其中有若干用于
经常性操作的快捷按钮, 如文件打开, 保存和打印等. 工具条之下是内容指示条, 其中有一些控
件规定当前执行的任务. 再向下是较大的工作区区域, 也就是你的工作区. 窗口的最下端是状态
条, 其中显示系统信息.
作为Maple 用户界面的一个组成部分, 工作区是用户交互的求解问题和把工作写成文档的
集成环境. 所谓交互的求解问题, 简单的说就是输入适当的Maple 命令, 得到结果. 在工作区中
可以修改命令, 重新执行并获得新的结果. 除了Maple 命令及其结果以外, 还可以在文档中加入
许多其他类型信息. 主要包括:
可以加入文本, 用户能够逐个字符地控制文本段落.
.
在文本段中, 可以加入数学表达式和Maple 命令.
.
可以加入超连接, 当用鼠标单击某特定文本区域时, 能跳转到工作区的其他位置, 或其它文
.
本中.
可以规定文档的结构, 包括超连接, 节与小节的划分.
.
在Windows 平台上, 用户可以嵌入其他对象, 可借助OLE 2( 对象连接与嵌入标准) 嵌入图
.
形和表格.
添加标题
在Maple 的工作区中不仅可以作数学计算, 还可以编写文档. 首先我们可以给文档加标题.
具体步骤是: 将光标移到第一行, 在Insert 菜单的Execution Group 中选择Region Before
项, 此时在顶部出现一个新区域. 这个区域包含一个Maple 输入的提示符, 这意味着此时是输入
Maple 命令的状态. 点击工具条上的
T 按钮或从Insert 菜单中选择Text Input 项, 就把这个
区域变成了文本输入状态, 现在就可以输入文本. 此时在工具条下面又出现了一个新的文本选
择工具条, 从中你可以选择文本的字体格式等. 如果你输入的是文章的标题, 就可以在文本格式
12 第一章Maple 系统简介
的下拉菜单中选择标题格式. 输入标题后回车, 系统会自动要求你输入作者的名字, 输入完作者
名以后就可以输入正文了.
添加小标题
对文档的进一步加工是把文档分解为节. 具体作法是首先用鼠标选定相关的区域, 然后点
击工具条中的. 键, 此时就在选定的区域前面出现了一个小方块, 下拉一个大括号, 括住了选
定的区域. 并且在这个区域的第一条命令之前插入一个文本区域, 此时你可以输入节的标题, 回
车后还可以输入其他说明文本. 如果需要开始新的一节, 可以在Insert 菜单中选择section.
就可以在这一节之后创建新的一节.
行内数学表达式
在一个文档中有时需要插入数学表达式, 例如下面一段文字:
Look at the integral . x2 sin(x . a)dx. Notice that its integrand, x2 sin(x . a), depends
on the parameter a.
在其中插入数学公式的方法是: 首先将光标移到相应的位置, 从Insert 菜单中选择Math Input
项, 然后输入对应于. x2 sin(x . a)dx 的Maple 代码, 即Int(x^2*sin(x), x), 注意观察内容指
示条中的编码区域, 其中显示输入的代码, 而工作区中则显示使用标准数学符号的积分表达式.
在数学表达式输入完成后, 再将输入状态变成文本输入状态, 就可以继续输入其他文本. 这样就
完成了我们的文档, 它既可以保存也可以打印.
添加超连接
在Maple 系统中, 用户可以同时打开多个工作区, 在不同的工作区之间可以通过建立超连
接的方式建立联系. 建立超连接的方法是: 在一个工作区中用鼠标选定一个位置, 在Insert 菜
单中选择Hyperlink 项. 此时弹出一个对话框, 它要求用户输入联接的文字和另一个工作区的
文件名. 填写完成后单击OK 键就完成了超连接.
建立书签
在工作区中可以插入书签, 以便迅速的查找内容. 单击指向书签的超连接,Maple 将立即转
至书签位置. 建立书签的方法是: 首先将光标移动到要插入书签的位置, 从View 菜单中选择
Edit Bookmark 项. 在弹出的对话框中键入一段文字, 例如\expr command” 作为书签文本, 单
击OK 按钮插入书签. 当你移动光标到工作区的任何位置时, 从View 菜单中选择Bookmark, 再
从弹出的菜单中选择expr command 项, 就可以跳到你插入书签的位置.
此外超连接的方式也可以使用书签. 具体作法是: 首先按照前面的方法建立书签, 将光标
移动到建立超连接的位置, 在Insert 菜单中选择Hyperlink 项. 在弹出的对话框中输入联接的
文字, 然后在Book Mark 区域添入你已经建立的书签的标记, 例如\expr command", 单击OK 键
就完成了超连接.
帮助系统
前面我们介绍了Maple 的计算和排版方面的能力, 然而这只能是简介, 在本书中, 我们不可
能详尽的描述Maple 的所有命令, 因为Maple 包含了数以千计的命令. 为了了解这些命令的使
用方法, 可以使用Maple 软件带有的一个自足的参考手册, 即Maple 的帮助系统. 借助帮助系
1.5 Maple 的组织结构13
统, 可以按名字或主题查询Maple 命令及其特点. 此外用户还可以自行选择关键词或术语, 来
迅速打开含有这些文字的帮助页面. 在每个帮助页面中还提供了超连接, 使用户可以阅读相关
的页面.
在帮助系统中,Maple 提供了三种方法定位信息: 按目录、按主题和按全文查找. 从Help 菜
单中选择Contents, 帮助窗口将变为帮助系统的一个简单目录, 用户可以通过超连接的方式浏
览帮助系统. 这就是按目录的查找方法. 通过这种方法我们可以大致了解Maple V 的基本功
能, 但是要从中找到某个特定的主题还是很困难的. 按主题查找的方法是: 从Help 菜单中选择
Topic Search, 此时帮助窗口将弹出一个对话框, 在其中添入需要查找的主题, 点击OK 键, 就可
以阅读相应的帮助文档. 如果已经知道希望阅读的主题词, 也可以直接从工作区访问该页面, 办
法是在Maple 提示符后键入?topic, 回车后就可阅读相应的页面.
在大多数Maple 版本中(唯一的例外是Maple V Realese 4 版本), 进入帮助系统后,Maple
会打开帮助浏览器, 通过帮助浏览器可以方便地找到你需要的帮助.
有的时候, 在解决某个数学问题时不知道应该使用Maple 的什么命令, 但是由数学问题本
身出发, 有理由推测, 在这些命令的帮助页面应当包含某些特定单词, 此时就要用到全文查找的
方法. 例如我要解一个微分方程, 但是不知道应该用什么命令, 我们可以推测, 在这个命令的帮
助中应该包含solve, di erential 和equation 等单词, 此时可以在Help 菜单中选择Full Text
Search, 在弹出的对话框中, 输入要查找的关键词, 例如solve di erential equation 等, 然后单击
Search 按钮, 通知Maple 开始检索.Maple 将列出匹配的主题, 并附带数值, 表明匹配的程度, 用
户可从列表中选择最感兴趣的主题.
此外从Help 菜单中选定Balloon Help 项以后, 当鼠标停留在某个按钮或菜单上时,Maple
就显示简短的说明. 这也是一个很有用的功能.
1.5 Maple 的组织结构
Maple 是由加拿大Waterloo 大学的符号计算组开发的计算机代数系统. 它可以在各种计
算机上运行, 从超级计算机, 例如Cray Y/MP, 到用于桌面的微型计算机, 例如IBM PC 兼容
机.Maple 既可以在单用户的操作系统, 例如MS-Windows 上
③ 我要用matlab求解一个包含12个一阶微分方程的方程组,怎么写一个类似ode45的函数呢
第一章Maple 系统简介
本章首先对计算机代数系统进行简要的介绍. 主要内容包括计算机代数系统的发展历史、
计算机代数系统的基本功能及特征以及网络资源. 然后介绍Maple V 的基本功能, 窗口环境以
及组织结构.
1.1 计算机代数系统的发展历史
什么是计算机代数系统? 从历史的角度来看\COMPUTE” 的涵义是\数值的计算". 数值
计算的涵义不仅仅是数的算术计算, 还包括其它复杂的计算, 例如: 数学函数的计算、求多项式
的根、矩阵的计算、矩阵特征值的计算等等. 数值计算的一个本质的特征是它不能保证绝对的
准确, 原因在于, 在数值计算的过程中我们是用浮点数进行计算的, 对于简单的问题, 我们可以
用纸和笔手工计算, 对于复杂的问题, 就需要用计算器或计算机进行计算. 然而, 对计算机来说,
要想绝对精确的表达一个浮点数几乎是不可能的, 在计算的过程中必然会产生误差.
数学的计算除了数值计算以外还有另一个重要的分枝, 我们称之为符号计算或代数计算. 简
单的讲, 就是对代表数学对象的符号进行计算. 这些符号可以代表整数、有理数、实数、复数或
代数数, 也可以代表其它的数学对象如多项式、有理函数、矩阵、方程组, 或者其它抽象的数学
对象如群、环、域等等. 对于这些抽象的数学符号, 我们通常是手工计算的, 这也是数学家传统
的工作方式. 然而随着计算机技术的发展, 以及对符号算法的深入研究, 用计算机代替人工进行
符号计算已经成为可能.
从二十世纪六十年代以来, 符号计算这个研究领域获得了极大的发展. 一系列符号计算算
法的提出为现代计算机代数系统奠定了理论基础. 比较着名的算法包括: 计算多项式理想的
Grobner 基算法、多项式分解的Berlekamp 算法、计算有理函数积分的Risch 算法.
在二十世纪六十年代, 比较流行的计算机程序语言是FORTRAN 和ALGOL. 这两种语言
主要是用来作数值计算的, 至今FORTRAN 依然是数值计算领域的标准语言之一. 然而FORTRAN 语言和ALGOL 语言并不适合于编写符号计算软件. 六十年代初出现的LISP 语言为符
④ 有关数学的问题
传记类数学名着1《数字情种》(爱多士传) 作者:保罗.霍夫曼 2 《我的大脑敞开了——天才数学家保罗·爱多士传奇》 作者布鲁斯.谢克特[美] 3 《女数学家传奇》 作者:徐品方 4《一个数学家的辩白》 作者: 哈代 译者: 王希勇 5《数学大师》 译者: 徐源 作者: (美)E·T·贝尔 副标题: 从芝诺到庞加莱 6 现代数学家传略辞典 作 者 张奠宙 7 世界着名数学家传记(上、下集) 作 者 吴文俊 8 数学精英 9 最后的炼金术士——牛顿传 作者 (英)怀特专业数学名着1 《从微分观点看拓扑》J.W.米尔诺 2 无穷小分析引论 Introction to analysis of the infinite [作者]:欧拉 3 《自然哲学之数学原理》 作者:伊萨克.牛顿 4 几何原本(13卷视图全本) 作者:(古希腊)欧几里得原着, 燕晓东编译 5 《数论报告》希尔伯特 6 《算术研究》高斯 7 《代数几何原理》哈里斯(Harris) 8. 《微积分学教程》菲赫金哥尔兹 9. 《有限群表示》J.P.塞尔 10. 《曲线和曲面的微分几何》杜卡谟 11. 《曲面论》达布 12. 《数论导引》华罗庚 13. 《代数学基础》贾柯伯逊 14. 《交换代数》阿蒂亚培养兴趣:《幻方与素数》《趣味数学》 奥数方面的书等。更深的研究:《古今数学思想》莫里斯·克莱因着 有名的数学着作,列在了下面,摘自一个博客,都已分门别类,可按自己的兴趣选择,希望对你有帮助^^ http://blog.sina.com.cn/s/blog_5ee55a950100cdev.html 重要数学着作列表转载标签:杂谈 几何 《几何原本》(希腊文∑τοιχε�6�4α)是古希腊数学家欧几里德所着的一部数学着作,共13卷。这本着作是现代数学的基础,在西方是仅次于《圣经》而流传最广的书籍。 1-6卷:平面几何 7-9卷:数论 10卷:无理数 11-13卷:立体几何 出版时期: 约公元前300年 网上版本: 交互式Java版 简述: 这可能不仅是几何最重要的着作而且也是数学最重要的着作。它包含很多几何,数论的重要结果和第一个算法。原本现在依然是有价值的资源和对算法的一个好的导引。比这本书中任何特定的结果更为重要的是,似乎该书最大的成就是把逻辑和数学证明作为一种解决问题的方法推广开来。 重要性: 课题创立,突破,影响,综述,最现代且最优秀(虽然它是第一个,但是有些结果仍然是最现代的) La Géométrie (几何学)简述: La Géométrie 出版于1637年,笛卡尔着。该书对于直角坐标系的发展有重大影响,特别是对通过实数来表示平面上的点进行了讨论;此外还有关于通过方程来表示曲线的论述。 重要性: 课题开创者, 突破, 影响力 逻辑 概念文字(Begriffsschrift) 哥特洛布.弗雷格着简介: 出版于1879年,标题Begriffsschrift通常译为概念写作或概念记号;概述的完整标题把它等同为"一个纯粹思想的公式语言,建模于算术语言".弗雷格发展他的形式逻辑系统的动机和莱布尼兹想要找一个计算推论器(calculus ratiocinator)是相似的.弗雷格定义了一个逻辑计算法来支持他在数学基础方面的研究.Begriffsschrift既是书名又是里面定义的计算法的名字. 重要性: 可以称的上逻辑方面自亚里士多德以来最重要的着作. 数学公式汇编(Formulario mathematico) 皮亚洛着简介: 初版于1895年,Formulario mathematico是第一部完整的使用形式化语言书写的数学书.它包含的数理逻辑的表述和很多数学其它分支的很多重要定理.很多该书引入的概念在今天成为日常使用的概念. 重要性:影响力 数学原理(Principia Mathematica) 罗素和怀特海着简介: 数学原理是关于数学基础的三部头着作,作者罗素和怀特海得,出版于1910年-1913年。它是使用符号逻辑中的定义严谨的公理集和推理规则来导出所有数学真理的一个尝试。是否可以从原理的公理集导出矛盾,以及是否存在不能在该系统中被证明或证否的数学命题的问题依然存在。这些问题以一种令人有些失望的方式于1931年为歌德尔不完备定理所解决。 数论 算术研究(Disquisitiones Arithmeticae,或译整数论研考) 高斯着简介: 算术研究是德国数学家卡尔·弗雷德里希·高斯所着的数论教科书,初版于1801年,高斯24岁。在该书中,高斯把诸如费马,欧拉,拉格朗日和勒让德等数学家的数论结果收到一起并加上了他自己的重要新成果。 关于小于给定值的质数 (On the Number of Primes Less Than a Given Magnitude) 黎曼着简介: 关于小于给定值的质数 ( �0�5ber die Anzahl der Primzahlen unter einer gegebenen Gr�0�2sse)是一篇有开创性的论文,作者黎曼,发表于1859年11月版的柏林科学院每月汇报。虽然这是他唯一发表过的数论论文,它包含了影响了19世纪后期开始直到今天的几十位研究者的思想。该论文主要由定义、启发式论证、证明概略和强力的解析方法的应用;所有这些成了现代解析数论的基本概念和工具。 数论讲义(Vorlesungen über Zahlentheorie) 狄利克雷和戴德金着简介: 数论讲义是德国数学家狄利克雷和戴德金所着的数论教科书,发表于1863年。讲义可以看作是费马、雅各比和高斯的经典数论和戴德金、黎曼和希尔伯特的现代数论之间的分水岭。狄利克雷没有显式的识别出现代代数的中心概念群,但是很多他的证明表明他有对群论的隐含的理解。 早期手稿 兰德数学纸草书(Rhind Mathematical Papyrus) 简介: 这是最老的数学文本之一,属于古埃及第二中间期。它是由抄写员Ahmes (properly Ahmose)从更老的中王国纸草所做的复件。除了描述了如何得到π的近似方法,精度达到1%,它也描述了最早对化圆为方问题的尝试之一,并在这个过程中显示了有说服力的证据,表明埃及人刻意造金字塔来用其中的比例来神化π值的理论是不对的。虽然说纸草代表了即使是对解析几何的原始尝试也是过于夸张,但Ahmes的确是用了类似余切的概念。 九章算术简介: 中国数学书,可能成书于公元1世纪,也可能是公元前200年。它的内容包括:采用西方后来称为试位法(false position rule)的原则来进行的线性问题求解。多未知数问题求解(涉及由南宋数学家秦九韶受周易启发发明的“大衍求一术”和“孙子剩余定理”),采用和高斯消去法类似的原则。涉及到西方称为毕达哥拉斯定理(在中国又称之为“勾股定理”)的原则的问题。 阿基米德重写本简介: 虽然作者仅有的数学工具是今天看来的中学几何,他用罕见的智慧使用的这些方法,显式的采用了无穷小来解决现在用积分学处理的问题。这些问题包括求实心半球的重心,求圆形抛物面台的重心,以及抛物线和它的一条割线所围成的区域的面积。和某些20世纪微积分教科书中对历史无知的说法相反,他没有用任何象黎曼和这样的东西,包括在这个重写本中的工作和他的其他着作中。他所用的方法的显式细节请参看阿基米德如何使用无穷小。 教科书 纯数学教程(Course of Pure Mathematics) 作者:哈代简介: 入门级数学分析经典教科书,作者哈代。初版于1908年,有很多版本。它旨在帮助革新英国的数学教育,特别是在剑桥大学的,以及准备培养剑桥的数学系学生的学校中的。所以,它直接瞄准"奖学金等级"的学生 — 能力上排上面的10%到20%的。该书含有大量难题。内容包括入门微积分和无穷级数理论。 重要性: 入门 问题求解艺术(Art of Problem Solving) Richard Rusczyk 和 Sandor Lehoczky 简介: 问题求解艺术从Richard Rusczyk和Sandor Lehoczky合着的两本书开始。这些书,总共约750页,是给对数学有兴趣的及/或要在数学竞赛中比赛的学生准备的。 原逻辑:标准一阶逻辑的元理论入门 Geoffrey Hunter 着简介: 逻辑的形式化系统的数学理论的优秀介绍性书籍,涉及完备性证明,一致性证明,等等,甚至包括集合论。 算术 算术或者说艺术的基础(Arithmetick: or, The Grounde of Arts) Robert Recorde着简介: 着于1542年,它是第一本英语写成的流行算数书。 校长的助手,实用和理论算术的综述 Thomas Dilworth 着简介: 早期流行英语教科书,18世纪出版于美国。该书在五节中从入门课题延伸到高等课题。 博弈论 论数字和博弈(On Numbers and Games) John Conway 简介: 该书分为两部, {0,1|}, 两部分。第零部分关于数字,第一部分关于博弈 - 包括博弈的价值和一些真正可玩的博弈,例如Nim, Hackenbush, Col 和Snort和其他很多。 数学玩家的制胜之道(Winning Ways for your Mathematical Plays) Elwyn Berlekamp, John Conway 和 Richard K. Guy 简介: 数学博弈的信息的综述。它初版于1982年,分为两部,一部主要集中于组合博弈和超实数,另一部主要关于一些特定的博弈。 代数几何 代数几何和解析几何(Géométrie Algébrique et Géométrie Analytique) Jean-Pierre Serre 简介: 数学上,代数几何和解析几何是紧密相关的主题,其中解析几何是复流形的理论而更一般的解析空间用多复变量的解析函数的0点集来局部的定义。两者的关系的(数学)理论在1950年代初出现,作为给代数几何打基础的工作的一部分,例如,霍奇理论(Hodge theory)的技术。(注意虽然解析几何作为直角坐标的使用也在某种意义上属于代数几何的范围,但这不是本文的主题。)巩固这个理论的主要论文就是Serre的Géometrie Algébrique et Géométrie Analytique,现在常用GAGA表示。 GAGA风格的结果现在表示比较的定理,它使得代数几何的对象及其态射的范畴和解析几何的定义严谨的一个子范畴的对象及其全纯映射建立了一个通道。 重要性: 课题创立, 突破, 影响力 代数几何基础(�0�7léments de géométrie algébrique) 格罗登迪克(Alexander Grothendieck) 在Jean Dieudonne的帮助下完成, 这是格罗登迪克对他对代数几何的基础的重建工作的解说。它成了现代代数几何最重要的基础性着作。EGA中解释的工作,正像这些书着名的原因一样,改变了这个领域并导致了里程碑式的进展。 重要性: 革新了领域的开创性工作 拓扑 拓扑学 James Munkres 简介: 这本精彩的入门教科书是标准的大学点集拓扑和代数拓扑的教科书。Munkres能够在以数学的严格性教授很多主题的同时直观的给出概念的来源。 微分观点看拓扑(Topology from the Differentiable Viewpoint) John Milnor 简介: 这本小书用米尔诺清晰而干练的风格介绍了微分拓扑的主要概念。虽然本书涉及不是很广,它用一种澄清所有细节的漂亮方式解释了它的主题。 重要性: 影响力 代数拓扑 Allen Hatcher 出版信息: 剑桥大学出版社, 2002年. 在线版本: http://www.math.cornell.e/~hatcher/AT/ATpage.html 简介: 这是旨在涵盖所有基础内容的同时保持第一次看到这个主题的初学者可读的三本教科书的系列中的第一本。这第一本书包含了基本的核心题材以及一些相对较基本的可选题材。 重要性: 入门
⑤ (近世代数)证明:M是R的极大理想,当且仅当R/M是单环。
阵列形式的零点定理 设R是一个QF环. 下述三个问题是非常重要的. 借鉴Hilbert Nullstellensatz定理的含义, 把它们总称为阵列形式的零点问题.
问题A(弱零点问题):若I是R[X]的理想, 且I与R[X]不相等, 则是否存一个非全零阵列b, 使得 b是AnnM(I)中的元素 ? 问题B(零点问题):下述恒等式是否成立 I=AnnR[X](AnnM(I)) (1)
Macaulay 在名着[9]中着力研究的逆系(Inverse Systems)问题与问题A, B是密切相关的. 在证明(2)式时, 他采用了dialytic arrays方法. 然而,我们认为Macaulay的方法只适合于理想 是零维时的情形. D. G. Northcott(1974)[11]给出了公式(1)的完全证明.
问题C(强零点问题): 设R是QF环, 给定R[X]的一个多项式理想I, 是否存在一个由有限个LRA阵列生成的R[X]-子模M, 使得I=AnnR[X](M)
. 当R=F是域时, 问题C是多维线性系统理论中的一个重要研究课题. 这个问题实质上是问能否用有限个行为(behavior)数据确定整个系统. C. Heij(1992)得到了一些进展. 这个问题直到最近才由 S. Zampieri(1997)[13] 对F[X]=F[x,y]时给出了的肯定的解答. 我们发现Macaulay[9]有个论断: 对R[X]的任意理想I, Ann(I)一定是有限生成R[X]-模. 如果利用Macaulay的这个论断, 再利用Macaulay的公式(3),则问题C似乎可以轻松地解决. 然而, 经过细致地分析, 我们发现Macaulay的这个论断是不对的, 他的证明只有当$I$是零维理想时才通得过. 那么, 要使Macaulay的论断成立, 是否一定要加上$I$是零维理想这个条件吗? 本文将解决这个问题。
定理A (弱零点定理): 设R是QF环, I是 R[X] 的任意一个理想. 则AnnM(I)非零 当且仅当 I与R[X]不等。
定理B (零点定理): 设R是QF环, I是R[X]的任意一个理想. 则 I=Ann(Ann(I)) 定理C(强零点定理): 设R是QF环, I是R[X]的任意一个理想. 则存在M的一个有限生成R[X]-子模M, 使得I=AnnR[X](M).
问题D: 设 M是任意一个由有限个R上的LRA生成的M的R[X]-子模, 是否存在R[X]的一个理想I, 使得M=AnnM(I)? 当R是一个域时, Macaulay([9],p71)用 dialytic方法证明了这个‘定理’. 然而,我们认为,这个证明也只能在 是有限生成R-模时才能通过. 实际上,我们将证明: 定理D: 设R是一个QF环, M是M的有限生成R[X]-子模, 则M是R[X]的某理想的零化阵列模, 当且仅当M是有限生成R-模. 定理E: 设R 是一个有限域,M=<a,…b> 是M的有限生成R[X]-子模, 其中a,…, b是阵列. 则存在R[X]的理想I使得M=Ann(I) 当且仅当每个LRS阵列a,b最终周期的(即:不计初始的有限项外是周期的).三、零化阵列模的结构与Nechaev问题
问题E: 设I是 R[X]的一个理想, 给出I恰是某个LRA阵列的特征理想的判别准则, 即给出充要条件.
当n=1且R是一个唯一因子分解整环(简记为UFD)时, 问题就不简单.当n=1且R是一个有零因子的环时,问题更难以处理。当R为Potential整环时, 即要求R和R[[x]]都是UFD时, Fitzpatrick 和 Norton(1995)[7]证明R[x]中的理想I恰是一个LRS的特征理想的充分必要条件是I是由一个首一多项式生成的主理想。我们要在R是一般的UFD上给出R上LRS的特征理想的刻画。 问题F:设R是QF环, 给定R[X]的一个理想I. 问在什么条件下,AnnM(I)是一个循环R[X]-模. 我们得到下面简明的解析判别公式。 定理F:设F是一个域,F[X]的零维理想I是F上一个LRA阵列的特征理想,当且仅当
dimF (I:rad(I))/I =dimR F[X]/rad(I).
上述判别公式中的数值是容易用Grobner基理论中常规的算法计算, 所有这些计算须对I进行准素分解.
当R是Artin局部主理想环且$I$是准素理想时, Nechaev[10]给出了Ann(I)恰是一个R上的一个LRS生成的循环模的判别准则, 该判别需用到对I的准素分解。他在该文中提出了如下三个未解决的问题. Nechaev公开问题1: 设R是局部Artin主理想环, I 是R[x]的理想, 给出一个判别零化序列模Ann(I)是循环R[x]-模的准则, 且要求该判别只与理想I(或I的生成元)有关, 而不依赖于I的准素分解的. Nechaev公开问题2: 当R是任意QF环时, 对R[x]的任意一个理想I,建立规范生成系(简记CGS)(Canonical Generator System)的概念, 以便能够方便地判别理想I的代表元的归属问题, 即:对任意f(x) in R[x], 能否有算法方便地判别f(x) in I与否. Nechaev公开问题3:} 在Nechaev问题2相同的条件下, 给出构造性的方法求出R[x]-模Ann(I)的生成元系并进一步给出循环性的判别. 我们利用定理F的结果和方法,解决了Nechaev公开问题1。上述三个Nechaev问题中,真正有实在意义和难度的是Nechaev问题1。因为, 我们证明了 定理G: Nechaev的CGS恰是极小Grobner 基.
因此, 只要QF环R拥有如下两个附加条件:
a. R中的元素能够用计算机可接受的形式表示出,
b. 能用计算机实现“+", “x"运算和求解系数在R上线性方程.
则我们可以借助环上的Grobner基理论, 解决Nechaev问题2, 并用解决Nechaev问题1的同样方法解决Nechaev问题3.
四、理想的零化阵列模的基构造
当R是有限域, R[X]=R[x,y]是两个变元的多项式环时, 文献[8]通过刻划I的约化Grobner基的标准型, 给出了类似于(2)式中一维LRS的基的具有漂亮组合性质的二维LRA基.
我们采用与[8]中不同的方法, 对任意n和任意零维理想I, 求出Ann(I)的生成元组. 我们的工作是基于Grobner基理论和一些基本的同调代数知识. 实际上, 我们利用如下的对偶定理。
定理H: 设I是R[X]的任意理想, 则Ann(I)与Hom(R[X]/I,R) 是R[X]-模同构
五、Galois环上的阵列
八十年代以来, Nechaev[10], Kurakin, Kuzmin等对环上的LRS和LRA作了大量的研究. 有关的综述报告参见Mikhalev & Nechaev(1996) [15]. 进入九十年代, 由于Calderbank等[6]关于Galois环上的代数编码理论的突破性进展, 由于剩余类环Z/(m)环上的编码成功地应用于编码与调制相结合体制, 因而Galois环上的编码问题,在国际信息论学术界引起了极大的兴趣和研究热潮.
A. A. Nechaev 的论文[10]是研究交换环上LRS的一篇重要文献. 该文主要做了两项工作. 1). 在R上线性递归序列的有限生成子模格与单变元多项式环R[x]中的首一理想格之间建立了Galois对应. 2). 在更特殊的Artin主理想环上, 对R[x]中的理想I, 给出I的零化线性递归序列R-模Ann_R(I)是循环R[x]-模的判别准则. 应该注意的是, [10]中给出的循环模的判别准则是基于构造Ann(I)的R-模生成元组, 然后根据这些生成元之间的复杂关系, 给出Ann(I)是循环R[x]-模的判别准则, 而且他的判别准则涉及到对理想的准素分解. 求对多项式理想的准素分解的算法一直是一个困难的问题, 尽管可以用Grobner 理论给予解决, 但是这些算法依然是很复杂的.
六、 LRA的综合问题
如何有效地求解综合问题一直是信息论, 系统论, 控制论和密码学等许多学科中活跃的重要研究课题. 域上有限序列最小特征多项式的综合问题是由Berlekamp(1968)[17]和Massey(1969)解决的. 他们给出的着名的B-M算法已成为工业标准. B-M算法的计算复杂性是O(m2), 其中 是序列的长度. 而用常规的解线性方程组的方法的复杂性是O(m3). BM算法解决KeyEquation的求解。
在R=Z/(m)剩余类环, 且n=1时, Reed 和 Sloane(1985)[12]给出了BM算法的推广. KeyEquation缺乏代数的结构性. 作者(1993)[3]提出用齐次关键方程HKeyEquation代替KeyEquation的新方法, 这样不但有极好的代数结构性质, 具有更广的适用性. 我们已证明, 求KeyEquation的解与求HKeyEquation的解是等价的[3]. HKeyEquation容易推广到对LRA的综合, 且可以用于代数几何码的译码. 基于我们齐次化方法的同样思路, 周锦君等(1996)[14]将HKeyEquation推广用于求解剩余类环上的阵列的综合. 最近, J. Althaler & A. Dur (1996)[5]也开始使用齐次化方法研究序列的综合,但他们用逆幂级数表示序列,而相应的特征多项式是常规的多项式, 因此序列和特征多项式不在同一个环中,无法直接利用Grobner基理论和Syzygy的计算。 实际上,他们给出的综合算法必须要借助已有叠代算法. 通过齐次化方法, 我们(1993[3])已证明LRA的综合算法与Grobner基有很好的联系. 本文将进一步揭示综合算法的每一步与Grobner基有精密联系.
七、 主要结果
我们简要列举本文得到的主要新结果.
设R是局部Artin主理想环(或更广的Quasi-Frobeniou环), 是R的极大理想, F=R/m是域, R[X]多元多项式环, I,J 是R[X]的任意理想. M,N是R上的某些阵列构成的R[X]-模. 则:
1. (弱零点定理):Ann(I)=0当且仅当I=R[X].
2. (零点定理): Ann(Ann(I))=I.
3. (强零点定理):存在有限个阵列生成的R[X]-模M, 使得 I=Ann(M).
4. Ann(I)是有限个阵列生成的R[X]-模, 当且仅当, I是零维理想, 当且仅当
Ann(I)是有限个阵列生成的R-模.
5. 有限个阵列生成的R[X]-模M是R[X]的某理想的零化阵列模当且仅当M 是有限生成R-
模.当R是域, I 是R[X]的零维理想. 则存在阵列a使得I=Ann(a) 当且仅当
dimF (I:rad(I))/I =dimR F[X]/rad(I).
6. 解决Nechaev 的3个Open问题
7. Ann(Ann(M))=M 当且仅当M是有限生成R-模. 这样既推广了Macaulay的逆系定理, 又指出Macaulay的原逆系定理的不确切之处, 并给出了逆系定理成立的充要条件.
8. 当R是主理想局部环时, 给出R[x]的理想I的Grobner基的标准型, 和计算I的Grobner基的快速算法, 并给出对I准素分解的基于Grobner基理论的算法.
9. 给出阵列的代数表示和计算Ann(I) 的 R-模基的新方法.
10. 揭示序列综合的Belerkamp-Massey 与Grobner 基之间的紧密联系
11. 当R是UFD, I是R[x]的理想. 则I是某个LRS序列的特征理想当且仅当I是由首一多项式生成的主理想. 从而推广了Fitzpatrick 的结果.
⑥ 多项式A=x^3+x^2+2x+2在模3运算下有几个不可约因子利用Berlekamp算法在模3运算下求其不可约分解
⑦ 想做编程的程序员需要什么本领
少量二值算法确实有非常优雅的迭代实现方法,也往往可以有非常优雅的电路运算图来进行表示。
典型如极化码, 原作者初始版的蝶形图非常让我着迷,无论是编码还是解码。。后来主要的介绍类文章都喜欢换一种电路序来介绍,但是我自己画草图的时候,始终不自觉的画作者的那个原版。
还有一个就是用于turbo码和ldpc码的置信扩散解码算法,,真的就是个运算放大器啊。。后来我也用那个对应的和积算法思路来算一些组合题目。 个人其实也对Berlekamp-Massey algorithm 之类的思路挺感兴趣的。
但要说更多的喜欢,那真的确实没有了。 软的和硬的 其实还是有点距离的。正是因为了解,才知道自己能力有限,而且动手能力不强,画点抽象的运算电路还行,真要做点啥,需要考虑的方方面面真的是太复杂了,非我所能。
不过我也知道了硬件运算电路一般喜欢啥:可以用移位寄存器的电路(设计方便容易,而且提升频率的限制少),大部分情况能迭代收敛的闭合(或者叫反馈)运算电路(运算快),蝶形的电路(可以用多个小电路来组合成大电路,方便扩展)。。。这就是当时想要发文章时候的脑回路:任何一点修改&优化,都想想,是否更方便了硬件实现啊,是否更方便了硬件时序的并行啊。
⑧ 约翰·何顿·康威的贡献
组合博弈论的开创者之一
创立新的数字系统超实数
数学游戏:
发明生命游戏
和Michael Stewart Paterson发明豆芽游戏
和Elwyn Berlekamp、理乍得·盖伊发明哲学家的足球
分析、研究其他游戏,如索玛立方块。
发明康威链式箭号表示法,用来表示大数。
为了计算某天是星期几,发明Doomsday算法。
研究有限简单群的分类,提出康威群。
证明15-定理
纽结理论:
Tangle
提出了一种表示不同纽结的方法——基于亚历山大多项式的康威多项式。
4m+2幻方的构作方法
⑨ maple 在初中数学的应用
Maple
简介
计算机代数系统的基本功能及特征以及网络资源. 然后介绍Maple V 的基本功能, 窗口环境以
及组织结构.
1.1 计算机代数系统的发展历史
什么是计算机代数系统? 从历史的角度来看\COMPUTE” 的涵义是\数值的计算". 数值
计算的涵义不仅仅是数的算术计算, 还包括其它复杂的计算, 例如: 数学函数的计算、求多项式
的根、矩阵的计算、矩阵特征值的计算等等. 数值计算的一个本质的特征是它不能保证绝对的
准确, 原因在于, 在数值计算的过程中我们是用浮点数进行计算的, 对于简单的问题, 我们可以
用纸和笔手工计算, 对于复杂的问题, 就需要用计算器或计算机进行计算. 然而, 对计算机来说,
要想绝对精确的表达一个浮点数几乎是不可能的, 在计算的过程中必然会产生误差.
数学的计算除了数值计算以外还有另一个重要的分枝, 我们称之为符号计算或代数计算. 简
单的讲, 就是对代表数学对象的符号进行计算. 这些符号可以代表整数、有理数、实数、复数或
代数数, 也可以代表其它的数学对象如多项式、有理函数、矩阵、方程组, 或者其它抽象的数学
对象如群、环、域等等. 对于这些抽象的数学符号, 我们通常是手工计算的, 这也是数学家传统
的工作方式. 然而随着计算机技术的发展, 以及对符号算法的深入研究, 用计算机代替人工进行
符号计算已经成为可能.
从二十世纪六十年代以来, 符号计算这个研究领域获得了极大的发展. 一系列符号计算算
法的提出为现代计算机代数系统奠定了理论基础. 比较着名的算法包括: 计算多项式理想的
Grobner 基算法、多项式分解的Berlekamp 算法、计算有理函数积分的Risch 算法.
在二十世纪六十年代, 比较流行的计算机程序语言是FORTRAN 和ALGOL. 这两种语言
主要是用来作数值计算的, 至今FORTRAN 依然是数值计算领域的标准语言之一. 然而FORTRAN 语言和ALGOL 语言并不适合于编写符号计算软件. 六十年代初出现的LISP 语言为符
号计算软件提供了合适的语言环境, 因此早期的符号计算软件都是用LISP 语言编写的. 其中最
着名的符号计算系统是REDUCE, REDUCE 系统是由Stanford 大学的Tony Hearn 开发的基
于LISP 语言的交互式符号计算系统, 最初的目的是用来进行物理计算. 到了二十世纪七十年代
初, 由麻省理工学院的Joel Moses, Willian Martin 等人开发的MACSYMA 系统诞生了, 它是那
个时代功能最强大的符号计算系统. 它的功能除了标准的代数计算以外, 还包括极限的计算、符
号积分、解方程等. 事实上, 许多符号计算的标准算法都是由麻省理工学院的研究小组提出的.
由G. Collins 和R. Loos 开发的SAC/ALDES 系统是另外一种类型的符号计算系统, 它的
前身是G. Collins 在IBM 编写的PM 系统(它是一个处理多项式的符号计算系统). SAC 是一
个非交互的系统, 它是由ALDES(ALgebraic DEScription) 语言编写的模块组成的, 并且带有一
个转换程序, 可以把结果转换成FORTRAN 语言. 到了1990 年, H. Hong 用C 语言重写了SAC
系统, 形成了新的SACLIB 系统. 这个系统提供了完整的C 语言源代码, 可以自由的从国际互
联网上下载.
在二十世纪七十年代的第四个通用的符号计算系统是muMATH. 它是由Hawaii 大学的
David Stoutemyer 和Albert Rich 开发的第一个可以在IBM 的PC 机上运行的计算机代数系统.
1
2 第一章Maple 系统简介
它所使用的开发语言是LISP 语言的一个子集称为muSIMP.
进入二十世纪八十年代, 随着个人PC 机的普及, 计算机代数系统也获得了飞速的发展. 在
这个时代推出的计算机代数系统大部分是用C 语言编写的, 比较着名的系统包括Maple, Mathematica, DERIVE 等. 有关Maple 的特点我们将在后面介绍, 这里, 我们简单介绍一下DERIVE
和Mathematica.
DERIVE 是muMATH 的后继版本, 它是第一个在PC 机上运行的符号计算系统.DERIVE
具有友好的菜单驱动界面和图形接口, 可以很方便的显示二维和三维图形. 它唯一的缺陷是没
有编程功能, 直到1994 年DERIVE 的第三版问世时, 才提供了有限的编程功能. 现在DERIVE
的大部分功能都被移植到由HP 公司和Texas 公司生产的图形计算器上.
Mathematica 是由Stephen Wolfram 开发的符号计算软件,Mathematica 系统的计算能力非
常强, 它的函数很多, 而且用户自己可以编程. 它的最大优点是, 在带有图形用户接口的计算机
上Mathematica 支持一个专用的Notebook 接口. 通过Notebook 接口, 我们可以向Mathematica
核心输入命令, 可以显示Mathematica 的输出结果, 显示图形、动画、播放声音. 通过Notebook,
我们可以书写报告、论文, 甚至整本书. 事实上, 有关Mathematica 的论文, 软件, 杂志大部分都
是用Notebook 写的, 并且在Internet 网络上广泛传播.Mathematica 的另一个重要特点是它具
有Mathlink 协议, 通过Mathlink, 我们可以把Mathematica 的核心与其它高级语言连接, 我们
可以用其它语言调用Mathematica, 也可以在Mathematica 中调用其它语言编写的程序. 到现
在为止, 能够与Mathlink 连接的语言包括C 语言,Excel,Word 等. 事实上Notebook 就是通过
Mathlink 与Mathematica 核心相连接的.
上面我们介绍的软件都是通用的符号计算系统, 其它通用的符号计算系统还有IBM 公司
的Thomas J. Watson 研究中心开发的AXIOM, 它的前身称为SCRATCHPAD.
除了上述通用的符号计算系统以外, 还有一些在某个领域专用的符号计算系统. 例如: 用于
高能物理计算的SCHOONSCHIP, 用于广义相对论计算的SHEEP 和STENSOR. 在数学领域
中用于群论的Cayley 和GAP, 用于数论的PARI, SIMATH 和KANT. 在代数几何和交换代数
领域中常用的系统是CoCoA 和Macaulay. 还有专门计算Lie 群的Lie 等等.
1.2 计算机代数系统的网络资源
进入二十世纪九十年代以来, 随着国际互联网的迅速发展, 符号计算系统的发展变的更加
迅速和开放. 从国际互联网上可以获取各种符号计算系统, 以及其他数学软件的相关信息. 有些
新的符号计算系统甚至提供源代码. 有些数学软件还有新闻组或讨论组, 通过讨论组, 用户可以
彼此交流信息、解答问题. 厂家也可以及时发现软件的问题, 进行修改. 下面我们介绍一些常用
数学软件的网络资源, 以及主要研究机构的地址.
Mathematica 的网络资源:
http://www.wolfram.com
http://www.mathsource.com
http://www.matheverywhere.com
http://smc.vnet.net/MathTensor.html
ftp://ftp.mathsource.com
news://comp.soft-sys.math.mathematica
1.3 Maple 的基本功能3
maillist:[email protected]
Maple 的网络资源:
http://www.maplesoft.com
http://daisy.uwaterloo.ca
ftp://ftp.maplesoft.com
maillist:[email protected]
Matlab 的网络资源:
http://www.mathworks.com
ftp://ftp.mathworks.com
news://comp.soft-sys.matlab
REDUCE 的网络资源:
http://www.rrz.uni-koeln.de/REDUCE
http://www.zib.de/Symbolik/rece
ftp://ftp.rand.org/software_and_data/rece
符号计算研究机构及信息中心
http://symbolicnet.mcs.kent.e
http://www.cain.nl/
http://www.risc.uni-linz.ac.at
news://sci.math.symbolic
其它符号计算软件的网络地址:
Derive http://www.derive.com
Macaulay2 http://www.math.uiuc.e/Macaulay2/
Macsyma http://www.macsyma.com
Magma http://www.maths.usyd.e.au:8000/u/magma/
Mathcad http://www.mathsoft.com
MuPad http://www.mupad.de
Scilab http://www-rocq.inria.fr/scilab/
1.3 Maple 的基本功能
计算机代数系统与其它计算机语言的本质区别是: 计算机代数系统具有符号计算的能力,
为用户提供交互式的计算环境, 可以进行常规的数学计算, 可以根据给定的数学函数画出函数
的二维或三维图形. 下面我们简要描述Maple 的基本功能.
数值计算
对于普通的数,Maple 总是进行精确的计算, 这种规则对于有理数和无理数是相同的. 因此
对于无理数Maple 按照有关的数学规则进行计算, 只有当用户需要计算浮点数近似值时,Maple
才按照用户要求的精度计算.
> 1/5+1/4;
9
20
4 第一章Maple 系统简介
> 5!/21;
40
7
> evalf(%);
5:714285714
> evalf(Pi,40);
3:
> 2.496745643/2;
1:248372822
> abs(3+5*I);
p34
> (3+4*I)/(1+I);
71
+ I
22
从上面的例子可以看到, 对于复数Maple 按照复数的规则进行计算.
多项式
符号计算系统的最基本功能是处理符号表达式, 多项式则是最基本的符号表达式. 从下面
的例子中可以看到Maple 可以用各种方式处理多项式、三角表达式、指数与对数等许多数学表
达式.
> factor(x^4+2*x^3-12*x^2+40*x-64);
(x . 2) (x 3 +4 x 2 . 4 x + 32)
> expand((x+1)^5);
x 5 +5 x 4 + 10 x 3 + 10 x 2 +5 x +1
> simplify(exp(x*log(y)));
x
y
> simplify(sin(x)^2+cos(x)^2);
1
> expand((x^2-a)^3*(x+b-1));
x 7 + x 6 b . x 6 . 3 x 5 a . 3 x 4 ab +3 x 4 a +3 x 3 a 2 +3 x 2 a 2 b . 3 x 2 a 2 . a 3 x . a 3 b + a 3
> expand(cos(4*x)+4*cos(2*x)+3,trig);
8 cos(x)4
1.3 Maple 的基本功能5
> combine(4*cos(x)^3,trig);
cos(3 x) + 3 cos(x)
解方程
用Maple 来解简单的方程是毫无问题的, 即使是很复杂的方程,Maple 也可以用数值计算的
方法来处理.
> solve(x^2-3*x=2,x);
31 31
2+
2
p17, 2 . 2
p17
> glsys:=f2*x+3*y+z=1,x-y-z=4,3*x+7*z=3g:
> solve(glsys);
..24 97 ..43
fz =
41 ;x =
41;y =
41 }
> fsolve(fx^2+y^2=10,x^y=2g,fx,yg);
fx =3:102449071;y = :6122170880}
矩阵计算
Maple 还有许多命令可以处理矩阵和向量, 不过需要调用线性代数软件包linalg. 还有一
点特别的是, 作矩阵的乘法需要一个特殊的算子&*.
> with(linalg):
Warning, new definition for norm
Warning, new definition for trace
> a:=matrix([[2,3],[1,4]]);
> inverse(a),det(a);
a :=
. ..
23
14
. ..
2..
4 ..3
55
..12
55
3..
, 5
> b:=matrix([[w,x],[y,z]]);
b :=
. ..
wx
. .5
yz
第一章Maple 系统简介
> evalm(a+b);
. ..
2+ w 3+ x
1+ y 4+ z
. ..
> evalm(a &* b);
. ..
2 w +3 y 2 x +3 z
w +4 yx +4 z
. ..
极限, 求和与乘积
对于普通的求极限问题, 可以直接用Maple 来计算, 它还可以符号的计算级数的和与积. 当
符号计算不成功时, 还可以作数值计算.
> limit((sqrt(1+x)-1)/x,x=0);
1
2
> limit(x!/x^x,x=infinity);
0
> sum(1/2^n, n=1..infinity);
1
> evalf(proct(1+1/x^2, x=1..infinity));
3:676077910
微分与积分
用Maple 来求微分是相当容易的, 使用diff 命令即可以求出数学表达式的微分, 不过求出
的结果可能是相当复杂, 因此通常还要用simplify 命令进行化简. 求数学表达式的定积分和不
定积分就相对复杂一些, 需要某些特定的算法. 对于复杂的函数, 求出的结果可能是某些特殊函
数. 对于定积分, 还可以用evalf 求出积分的数值.
> simplify(diff((x-1)/(x^2+1),x));
x2 . 1 . 2 x
. (x2 + 1)2
> diff(sin(x*y),x);
cos(xy) y
> int(1/(1+x+x^2),x);
21
p3 arctan( (2 x + 1) p3)
33
1.3 Maple 的基本功能7
> int(sin(x^2),x=a..b);
1
FresnelS( b p2) p2 pπ .
1
FresnelS(a p2) p2 p
2 pπ 2 pπ
> int(sin(x)/x,x=0..5);
Si(5)
> evalf(%);
1:549931245
微分方程
对于不太复杂的常微分方程,Maple 可以求出它的符号解. 如果你没有给初始条件, 或者给
的初始条件或边界条件不全, 在解的公式中会带有积分常量.
> deq:=diff(y(x),x)*y(x)*(1+x^2)=x;
deq := ( . y(x)) y(x)(1 + x 2)= x
@x
> dsolve(fdeq,y(0)=0g,fy(x)g);
y(x)= pln(1 + x2), y(x)= ..pln(1 + x2)
> dsolve((y(x)^2-x)*D(y)(x)+x^2-y(x)=0,fy(x)} );
11
x 3 . y(x) x + y(x)3 = C1
33
级数展开
当数学问题比较复杂时, 求出准确解通常是不可能的, 用series 作级数展开是有帮助的.
> series(sin(x),x=0, 10);
11 5 11 10)
x . 6 x 3 +
120 x . 5040 x 7 +
362880 x 9 + O(x
例如在下列微分方程中, 就是用级数方式求出的微分方程级数解.
> Order:=10:
> deq:=diff(y(x),x$2)+diff(y(x),x)+y(x)=x+sin(x );
@2 @
deq :=( y(x))+( y(x)) + y(x)= x + sin(x)
@x2 @x
> sln1:=dsolve(fdeq, y(0)=0, D(y)(0)=0g,fy(x)g,series);
1 3 1 4 1 5 +
1 6 1 7 1 8 +
1 10)
sln1 := y(x)=
3 x . 12 x . 120 x 240 x . 5040 x . 20160 x 181440 x 9 + O(x
第一章Maple 系统简介
Laplace 和Fourier 变换
Laplace 变换和Fourier 变换是常用的数学变换. 在Maple 中有一个积分变换的程序包
inttrans 提供了各种积分变换和它们的逆变换.
> with(inttrans):
> laplace(cos(t-a),t,s);
s cos(a) + sin(a)
s2 +1
> invlaplace(%,s,t);
cos(a) cos(t) + sin(a) sin(t)
> combine(%,trig);
cos(t . a)
> alias(sigma=Heaviside):
> f:=sigma(t+1)-sigma(t-1):
> g:=simplify(fourier(f,t,w));
g := 2 I (π Dirac(w) w . I) sin(w)
w
插值与函数拟合
interp命令可以由n 个点出发计算n . 1 阶的插值多项式. 在下例中,x 的取值是1 到10,
y 的值是1 到10 之间的10 个随机数.f 是相应的插值多项式.
> datax:=[seq(i,i=1..10)]:
> datay:=[seq(rand(10)(),i=1..10)]:
> dataxy:=zip((x,y)->[x,y], datax, datay);
dataxy := [[1, 1], [2, 0], [3, 7], [4, 3], [5, 6], [6, 8], [7, 5], [8, 8], [9, 1], [10, 9]]
> f:=interp(datax, datay, x);
17 9 517 11699 7 3719 27323 176741 4 652577 3f :=
51840 x . 40320 x 8 +
60480 x . 2880 x 6 +
17280 x 5 +
5760 x . 3240 x
1816483 2 1669153
+ xx + 293
3360 . 2520
使用数值逼近程序包numapprox 中的pade 命令可以计算一个给定函数的有理逼近函数,
以及其它类型的逼近函数.
> with(numapprox):
> x0:=solve(x^2=Pi/2)[1];
x0 :=
1 p2 p
2
1.3 Maple 的基本功能9
> f:=pade(tan(x^2), x=x0, [3,3]);
8 10
f := (..17280 19=2 p2 + 10800 %1 7 + 43200 %13 . 7680 %13
12
. 3072 %12 25=2 p2 . 32400 15=2 p2 + 3840 23=2 p2 + 28800 %1 9 + 3072 %13
+ 23040 %12 21=2 p2 + 14400 %12 17=2 p2 . 11520 %1 11) .(
(..11520 11 + 1024 13 . 14400 9 . 10800 7) %13
+ (7680 23=2 p2 . 11520 19=2 p2 + 21600 15=2 p2) %12
+(..7680 12 + 34560 10 + 64800 8) %1)
%1 := x .
1 p2 pπ
2
> evalf(normal(f));
6:(..:4532958122 109 x 2 . :1125313130 109 + :1054184360 109 x 3 + :5353835473 109 x)
((2:x . 2:506628274)
(..:1097168700 109 x 2 + :8958248690 109 x . :1356288866 1010))
图形
最常用的画图命令是plot和plot3d.下面的例子说明了使用在两个命令的方法.
>plot(sin(x)*exp(1)^(-x/7),x=0..4*Pi);
-0.4-0.200.20.40.60.824681012x>plot3d(sin(x)*exp(1)^y,x=0..2*Pi,y=0..Pi,axes=boxed);
20-1001020
Maple 编程
Maple 不仅可以对数学表达式进行计算, 还可以编程. 他的编程语言和其它的结构化编程
语言很相似.
10 第一章Maple 系统简介
> f:=proc(x::nonnegint)
> option remember;
> if x=0 then 0
> elif x=1 then 1
> else f(x-1)+f(x-2) end if
> end proc:
> f(40);
102334155
1.4 Maple 系统的交互使用
Maple 的窗口环境提供了先进的工作区界面, 其扩充的数学功能简明易用, 用户可以在其
中展现数学思想, 创建复杂的技术报告, 充分发挥Maple 的功能.
图1.1: Maple 的窗口环境
A Maple 的工具条
B 内容工具条, 它还包含一个输入和编辑文本的区域
C 节的头部及标题
D Maple 的输入, 提示符为\>", 显示为红色
1.4 Maple 系统的交互使用11
E Maple 的输出, 既执行Maple 命令的结果, 通常显示为蓝色
F 一组Maple 命令及其输出
G Maple 的工作区
H 工作区元素组成的节
I 节的范围: 用一个大的方括号\[” 表示
J 省缺的Maple 输入提示符
K 符号模板, 包含了许多常用的数学符号
L 表达式模板
M 矩阵模板
N 向量模板
Maple 工作区界面
Maple 的图形界面具有现代应用软件界面的常见功能, 它支持鼠标操作, 包括剪切和粘贴等
功能, 如果你已经习惯了这些用法, 那就具备了使用Maple 工作区界面的基本知识. 现在你可
以执行一些标准的操作, 例如: 打开文件、保存和打印文件等.
对于Windows 平台, 只要双击Maple 图标即可启动Maple. 在Unix 系统下, 可在提示符
之后键入xmaple 命令来启动.Maple 启动后将开启一个新的工作区.
在窗口上端是菜单条, 包括File 和Edit 等菜单项, 菜单条之下是工具条, 其中有若干用于
经常性操作的快捷按钮, 如文件打开, 保存和打印等. 工具条之下是内容指示条, 其中有一些控
件规定当前执行的任务. 再向下是较大的工作区区域, 也就是你的工作区. 窗口的最下端是状态
条, 其中显示系统信息.
作为Maple 用户界面的一个组成部分, 工作区是用户交互的求解问题和把工作写成文档的
集成环境. 所谓交互的求解问题, 简单的说就是输入适当的Maple 命令, 得到结果. 在工作区中
可以修改命令, 重新执行并获得新的结果. 除了Maple 命令及其结果以外, 还可以在文档中加入
许多其他类型信息. 主要包括:
可以加入文本, 用户能够逐个字符地控制文本段落.
.
在文本段中, 可以加入数学表达式和Maple 命令.
.
可以加入超连接, 当用鼠标单击某特定文本区域时, 能跳转到工作区的其他位置, 或其它文
.
本中.
可以规定文档的结构, 包括超连接, 节与小节的划分.
.
在Windows 平台上, 用户可以嵌入其他对象, 可借助OLE 2( 对象连接与嵌入标准) 嵌入图
.
形和表格.
添加标题
在Maple 的工作区中不仅可以作数学计算, 还可以编写文档. 首先我们可以给文档加标题.
具体步骤是: 将光标移到第一行, 在Insert 菜单的Execution Group 中选择Region Before
项, 此时在顶部出现一个新区域. 这个区域包含一个Maple 输入的提示符, 这意味着此时是输入
Maple 命令的状态. 点击工具条上的
T 按钮或从Insert 菜单中选择Text Input 项, 就把这个
区域变成了文本输入状态, 现在就可以输入文本. 此时在工具条下面又出现了一个新的文本选
择工具条, 从中你可以选择文本的字体格式等. 如果你输入的是文章的标题, 就可以在文本格式
12 第一章Maple 系统简介
的下拉菜单中选择标题格式. 输入标题后回车, 系统会自动要求你输入作者的名字, 输入完作者
名以后就可以输入正文了.
添加小标题
对文档的进一步加工是把文档分解为节. 具体作法是首先用鼠标选定相关的区域, 然后点
击工具条中的. 键, 此时就在选定的区域前面出现了一个小方块, 下拉一个大括号, 括住了选
定的区域. 并且在这个区域的第一条命令之前插入一个文本区域, 此时你可以输入节的标题, 回
车后还可以输入其他说明文本. 如果需要开始新的一节, 可以在Insert 菜单中选择section.
就可以在这一节之后创建新的一节.
行内数学表达式
在一个文档中有时需要插入数学表达式, 例如下面一段文字:
Look at the integral . x2 sin(x . a)dx. Notice that its integrand, x2 sin(x . a), depends
on the parameter a.
在其中插入数学公式的方法是: 首先将光标移到相应的位置, 从Insert 菜单中选择Math Input
项, 然后输入对应于. x2 sin(x . a)dx 的Maple 代码, 即Int(x^2*sin(x), x), 注意观察内容指
示条中的编码区域, 其中显示输入的代码, 而工作区中则显示使用标准数学符号的积分表达式.
在数学表达式输入完成后, 再将输入状态变成文本输入状态, 就可以继续输入其他文本. 这样就
完成了我们的文档, 它既可以保存也可以打印.
添加超连接
在Maple 系统中, 用户可以同时打开多个工作区, 在不同的工作区之间可以通过建立超连
接的方式建立联系. 建立超连接的方法是: 在一个工作区中用鼠标选定一个位置, 在Insert 菜
单中选择Hyperlink 项. 此时弹出一个对话框, 它要求用户输入联接的文字和另一个工作区的
文件名. 填写完成后单击OK 键就完成了超连接.
建立书签
在工作区中可以插入书签, 以便迅速的查找内容. 单击指向书签的超连接,Maple 将立即转
至书签位置. 建立书签的方法是: 首先将光标移动到要插入书签的位置, 从View 菜单中选择
Edit Bookmark 项. 在弹出的对话框中键入一段文字, 例如\expr command” 作为书签文本, 单
击OK 按钮插入书签. 当你移动光标到工作区的任何位置时, 从View 菜单中选择Bookmark, 再
从弹出的菜单中选择expr command 项, 就可以跳到你插入书签的位置.
此外超连接的方式也可以使用书签. 具体作法是: 首先按照前面的方法建立书签, 将光标
移动到建立超连接的位置, 在Insert 菜单中选择Hyperlink 项. 在弹出的对话框中输入联接的
文字, 然后在Book Mark 区域添入你已经建立的书签的标记, 例如\expr command", 单击OK 键
就完成了超连接.
帮助系统
前面我们介绍了Maple 的计算和排版方面的能力, 然而这只能是简介, 在本书中, 我们不可
能详尽的描述Maple 的所有命令, 因为Maple 包含了数以千计的命令. 为了了解这些命令的使
用方法, 可以使用Maple 软件带有的一个自足的参考手册, 即Maple 的帮助系统. 借助帮助系
1.5 Maple 的组织结构13
统, 可以按名字或主题查询Maple 命令及其特点. 此外用户还可以自行选择关键词或术语, 来
迅速打开含有这些文字的帮助页面. 在每个帮助页面中还提供了超连接, 使用户可以阅读相关
的页面.
在帮助系统中,Maple 提供了三种方法定位信息: 按目录、按主题和按全文查找. 从Help 菜
单中选择Contents, 帮助窗口将变为帮助系统的一个简单目录, 用户可以通过超连接的方式浏
览帮助系统. 这就是按目录的查找方法. 通过这种方法我们可以大致了解Maple V 的基本功
能, 但是要从中找到某个特定的主题还是很困难的. 按主题查找的方法是: 从Help 菜单中选择
Topic Search, 此时帮助窗口将弹出一个对话框, 在其中添入需要查找的主题, 点击OK 键, 就可
以阅读相应的帮助文档. 如果已经知道希望阅读的主题词, 也可以直接从工作区访问该页面, 办
法是在Maple 提示符后键入?topic, 回车后就可阅读相应的页面.
在大多数Maple 版本中(唯一的例外是Maple V Realese 4 版本), 进入帮助系统后,Maple
会打开帮助浏览器, 通过帮助浏览器可以方便地找到你需要的帮助.
有的时候, 在解决某个数学问题时不知道应该使用Maple 的什么命令, 但是由数学问题本
身出发, 有理由推测, 在这些命令的帮助页面应当包含某些特定单词, 此时就要用到全文查找的
方法. 例如我要解一个微分方程, 但是不知道应该用什么命令, 我们可以推测, 在这个命令的帮
助中应该包含solve, di erential 和equation 等单词, 此时可以在Help 菜单中选择Full Text
Search, 在弹出的对话框中, 输入要查找的关键词, 例如solve di erential equation 等, 然后单击
Search 按钮, 通知Maple 开始检索.Maple 将列出匹配的主题, 并附带数值, 表明匹配的程度, 用
户可从列表中选择最感兴趣的主题.
此外从Help 菜单中选定Balloon Help 项以后, 当鼠标停留在某个按钮或菜单上时,Maple
就显示简短的说明. 这也是一个很有用的功能.
1.5 Maple 的组织结构
Maple 是由加拿大Waterloo 大学的符号计算组开发的计算机代数系统. 它可以在各种计
算机上运行, 从超级计算机, 例如Cray Y/MP, 到用于桌面的微型计算机, 例如IBM PC 兼容
机.Maple 既可以在单用户的操作系统, 例如MS-Windows 上
⑩ 请问历史上的数学家以及他们的着作!!
几何原本
欧几里得
出版时期: 约公元前300年
网上版本: 交互式Java版
简述: 这可能不仅是几何最重要的着作而且也是数学最重要的着作。它包含很多几何,数论的重要结果和第一个算法。原本现在依然是有价值的资源和对算法的一个好的导引。比这本书中任何特定的结果更为重要的是,似乎该书最大的成就是把逻辑和数学证明作为一种解决问题的方法推广开来。
重要性: 课题创立,突破,影响,综述,最现代且最优秀(虽然它是第一个,但是有些结果仍然是最现代的)
[编辑] La Géométrie(几何学)
笛卡尔
简述: La Géométrie 出版于1637年,笛卡尔着。该书对于直角坐标系的发展有重大影响,特别是对通过实数来表示平面上的点进行了讨论;此外还有关于通过方程来表示曲线的论述。
重要性: 课题开创者, 突破, 影响力
概念文字(Begriffsschrift)
哥特洛布·弗雷格(Gottlob Frege)
简介: 出版于1879年,标题Begriffsschrift通常译为概念写作或概念记号;概述的完整标题把它等同为"一个纯粹思想的公式语言,建模于算术语言".弗雷格发展他的形式逻辑系统的动机和莱布尼兹想要找一个计算推论器(calculus ratiocinator)是相似的.弗雷格定义了一个逻辑计算法来支持他在数学基础方面的研究.Begriffsschrift既是书名又是里面定义的计算法的名字.
重要性: 可以称的上逻辑方面自亚里士多德以来最重要的着作.
[编辑] 数学公式汇编(Formulario mathematico)
皮亚诺(Giuseppe Peano)
简介: 初版于1895年,Formulario mathematico是第一部完整的使用形式化语言书写的数学书.它包含的数理逻辑的表述和很多数学其它分支的很多重要定理.很多该书引入的概念在今天成为日常使用的概念.
重要性:影响力
[编辑] 数学原理(Principia Mathematica)
罗素(Bertrand Russell)和怀特海得(Alfred North Whitehead)
简介: 数学原理 是关于数学基础的三部头着作,作者罗素和怀特海德,出版于1910年-1913年。它是使用符号逻辑中的定义严谨的公理集和推理规则来导出所有数学真理的一个尝试。是否可以从原理的公理集导出矛盾,以及是否存在不能在该系统中被证明或证否的数学命题的问题依然存在。这些问题以一种令人有些失望的方式于1931年为歌德尔不完备定理所解决。
重要性: 影响力
[编辑] 哥德尔不完备定理
(Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme, Monatshefte für Mathematik und Physik, vol. 38 (1931).)
哥德尔
在线版本: 在线版本
简述: 在数理逻辑中,哥德尔不完备定理(Gödel's incompleteness theorems)是哥德尔于1930年证明的两个着名定理。 第一个不完备定理表明:
对于满足下列条件的任何形式系统(1)它是ω-一致的 (ω-一致), (2) 它有递归可定义的公理集和推导规则,(3)每个自然数的递归关系在其上可定义,存在该系统的一个公式,按照系统所设想的解释,它表达关于自然数的一个事实,但它不是该系统的一个定理。
重要性: 突破, 影响力
算术研究(Disquisitiones Arithmeticae,或译整数论研考)
高斯(Carl Friedrich Gauss)
简介: 《算术研究》是德国数学家卡尔·弗雷德里希·高斯所着的数论教科书,初版于1801年,高斯24岁。在该书中,高斯把诸如费马,欧拉,拉格朗日和勒让德等数学家的数论结果收到一起并加上了他自己的重要新成果。
重要性: 突破, 影响力。
[编辑] 关于小于给定值的质数(On the Number of Primes Less Than a Given Magnitude)
黎曼(Bernhard Riemann)
简介: 关于小于给定值的质数 ( Über die Anzahl der Primzahlen unter einer gegebenen Grösse)是一篇有开创性的论文,作者黎曼,发表于1859年11月版的柏林科学院每月汇报。虽然这是他唯一发表过的数论论文,它包含了影响了19世纪后期开始直到今天的几十位研究者的思想。该论文主要由定义、启发式论证、证明概略和强力的解析方法的应用;所有这些成了现代解析数论的基本概念和工具。
重要性: 突破, 影响力
[编辑] 数论讲义(Vorlesungen über Zahlentheorie)
狄利克雷(Johann Peter Gustav Lejeune Dirichlet)和戴德金(Richard Dedekind)
简介: 数论讲义是德国数学家狄利克雷和戴德金所着的数论教科书,发表于1863年。 讲义可以看作是费马、雅各比和高斯的经典数论和戴德金、黎曼和希尔伯特的现代数论之间的分水岭。狄利克雷没有显式的识别出现代代数的中心概念群,但是很多他的证明表明他有对群论的隐含的理解。
重要性: 突破, 影响力
[编辑] 数论,从汉默拉比到勒让德的历史的方法(Number Theory, An approach through history from Hammurapi to Legendre)
Andre Weil
简介: 由该领域的20世纪最伟大的研究者之一所着的数论历史研究。该书涉及了36个世纪的算术着作,但是大部分主要用于费马、欧拉、拉格朗日和勒让德的工作的仔细研究和解说。作者希望把读者带到他所述的人物的工作场所去分享他们的成功和失败。这是一个少有的通过一个主题的最伟大的实践者之一的思想来观看它的历史发展的机会。
重要性:
[编辑] 数论导引(An Introction to the Theory of Numbers)
高德菲·哈罗德·哈代
简介: 经典数论教材
博弈的演变和理论(Evolution and the Theory of Games)
John Maynard Smith
[编辑] 博弈和经济行为的理论(Theory of Games and Economic Behavior)
(博弈和经济行为的理论, 第三版,普林斯顿大学出版社1953年)
摩根斯坦(Oskar Morgenstern), 冯·诺伊曼(John von Neumann)
简介: 这么书导致了对现代博弈论作为重要数学分支的研究。者本身克的着作包含了寻找二人零和博弈的最优解的方法。
重要性: 影响力, 课题创立, 突破
[编辑] 论数字和博弈(On Numbers and Games)
John Conway
简介: 该书分为两部, {0,1|}, 两部分。第零部分关于数字,第一部分关于博弈 - 包括博弈的价值和一些真正可玩的博弈,例如Nim, Hackenbush, Col 和Snort和其他很多。
重要性:
[编辑] 数学玩家的制胜之道(Winning Ways for your Mathematical Plays)
Elwyn Berlekamp, John Conway 和 Richard K. Guy
简介: 数学博弈的信息的综述。它初版于1982年,分为两部,一部主要集中于组合博弈和超实数,另一部主要关于一些特定的博弈