这篇文章,是介绍Maxima 这套数学软件,在学习线性代数的应用。Maxima 是一个所谓的“电脑代数系统”(Computer Algebra System, CAS),这种系统比较为人熟知的还有Mathematica 和Maple 等等。我们选定Maxima 做为我们使用的程序,主要有三个原因:
免费
Maxima 是免费,又是各平台都有的。所有的人可以在自己的电脑上练习。
功能完整
Maxima 虽然不要钱,并不代表不好。Maxima 不论计算或图形功能都十分完整。事实上,Maxima 是最早的全功能CAS 系统Macsyma 的后代。
具代表性
许多新的CAS 系统,如Maple, Mathematica 都多少受到Macsyma 的启发。所以学会Maxima,要学会Maple 或Mathematica 等软件都是很容易的事。
这篇文章主要是介绍线性代数相关功能。我们不假设同学已会基本的Maxima 使用方式,所以我们会用到的概念,也许不纯粹是线性代数的,也会一并介绍。专就线性代数而言,我们要会的其实并不多。想要快速进入状况,可以跳过前面的部份,直接看线性代数相关指令,在操作上有问题时,再回头看有问题部份的相关说明即可。
如果同学们比较喜欢使用Mathematica,Maple,或是Matlab 等商业软件也是可以的。我们系上的电脑室有提供这些软件,可以上机试用看看。
我们先介绍一下Maxima 操作的方式。
Maxima 当计算器
我们先来看,如果我们要把Maxima 当计算器用,会是什么情况?
(%i1) 1+1;&">nbsp;
(%o1) 2
(%i2) 3*4*7;
(%o2) 84
(%i3) 9/3;
(%o3) 3
到目前为止,似乎还没什么特别。除了可以做复杂一点点的运算,和平常的计算机或数值计算软件也没什么不同。以下的例子就不一样了:
(%i4) 7/3;
7
(%o4) -
3
(%i5) 1/2+2/3;
7
(%o5) -
6
从(%o4)我们看到,7/3这种运算,Maxima 不是告诉我们2.3333...,而是分数的形式!难道Maxima 真的懂分数?不要怀疑,这就是所谓电脑代数系统(CAS) 的特长。我们可以像(%o5)的例子一样,输入个分数的四则运算试试即知。
如果坚持要用浮点数,那只要加个float 指令即可:
(%i6) float(7/3);
(%o6) 2.333333333333334
为了完整,我们顺便再介绍指数,根号,阶乘表示法:
(%i7) 2^10;
(%o7) 1024
(%i8) sqrt(9);
(%o8) 3
(%i9) 5!;
(%o9) 120
我们可以看出,这些运算不是自然的数学符号,就是和我们平常电脑程序语言的写法。
指令结尾
在上面的例子中,我们发现,在Maxima 下指令,结束时一定要打上分号“;”,让Maxima 知道我们下的指令已结束。为什么要多这一个动作,主要是为了有时打比较长的指令可以换行之故。另一个结束方式是打入“$”的符号。不同于分号的地方是“运算结果不会显示出来”:
(%i10) 2+3$
(%i11) 2+3;
(%o11) 5
有一些CAS 程序,如Matehmatica 是用分号表示不显示运算结果。不过Maxima 中分号已用上,必需用其他字符。