Mathematica/简单的运算

维基教科书,自由的教学读本

上一章:开始使用Mathematica 下一章:查看帮助


算术[编辑]

Mathematica最简单的用法就是像计算器一样输入您的算式,然后按Shift+Enter。比如说我们在上一章里已经进行过的计算:[1]

 In[1]:=	2 + 2
Out[1]=	4

和别的计算机语言一样,Mathematica分别用+、-、*、/、^来表示加、减、乘、除、幂,用圆括号(和)来控制运算顺序。此外,乘法也可以用空格表示:

 In[2]:=	2 3 + 2 (1 + 2)
Out[2]=	12

在Mathematica中,数的大小和精度是不受限制的[2],比如说我们可以计算100的阶乘

 In[3]:=	100!
Out[3]=	9332621544394415268169923885626670049071596826438162146859296389521759\
	9993229915608941463976156518286253697920827223758251185210916864000000\
	000000000000000000

Mathematica把不带小数点的数都当成精确值。一般情况下,当您输入的数字都是精确值时,输出也将是精确值:

 In[4]:=	1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1))))
Out[4]=	138  

只要输入的数当中有一个带有小数点,比如说,把“1”改成“1.”,Mathematica就会把它当成近似值,这样输出的也将是近似值:

 In[5]:=	1. + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1))))
Out[5]=	1.625


使用函数[编辑]

当我们要进行复杂一点的计算时,就要用到数学函数了。与我们平时写数学公式的习惯不同,Mathematica中函数的自变量都括在方括号中,这样是为了与控制运算顺序的圆括号相区别。比如说计算4的算术平方根,就要用到表示平方根的函数Sqrt:

 In[6]:=	Sqrt[4]
Out[6]=	2

同样,我们也能计算2的算术平方根:

 In[7]:=	Sqrt[2]
Out[7]=	2

这看起来有些奇怪,它好像什么都没算。事实上,我们前面已经说过,当您输入的数字都是精确值时,输出也将是精确值。根号2的精确值自然就是,而不是1.414。

Mathematica中大小写是严格区分的,Mathematica内建的函数首字母都是大写。除了一些一些常见的数学常数在Mathematica也用首字母是大写的符号来表示,如Pi表示圆周率、E表示自然对数的底、I表示虚数单位。这都和我们平常写数学公式的习惯不同。

 In[8]:=	Exp[Pi I]
Out[8]=	-1

这就是著名的欧拉恒等式,用平常的数学公式写出来就是

下表列出了一些常用的数学函数:

Sqrt[x] 平方根
Exp[x] 指数函数
Log[x] 自然对数;注意Mathematica中Log表示的是以e为底的对数)
Log[b,x] b为底的对数
Sin[x],Cos[x],Tan[x] 三角函数;注意Mathematica中角的单位都是弧度)
ArcSin[x],ArcCos[x],ArcTan[x] 反三角函数
Abs[x] 绝对值
Round[x] 取离x最近的整数[3](注意这个函数即使输入的是近似值输出也将是精确值)

Mathematica内建的数学函数非常丰富,涉及到数学的各个不同领域。最新版本的Mathematica中数学函数的全表可以参见Mathematica帮助中的Mathematical Functions


代数运算[编辑]

Mathematica是一个计算机代数系统,它的强项就是代数运算。 比如说,您可以(在没有给a赋值的情况下)输入a+a。在一般的计算机语言中,这样输入可能会导致错误,因为您没有告诉计算机a是多少。但是,只要学过一点初等代数,我们不需要知道a的值也能知道a+a等于2a。在Mathematica中也是如此:

 In[9]:=	a + a
Out[9]=	2 a

Mathematica中变量的符号不仅可以是英文字母,还可以是希腊字母,甚至别的符号,或者符号的组合:

 In[10]:=	 + αβα + 
Out[10]=	2 喵 + αβα

复杂一点的代数运算就要用到与代数运算相关的Mathematica函数了。比如说,因式分解:

 In[11]:=	Factor[a^12 - b^12]
Out[11]=	(a - b) (a + b) (a2 + b2) (a2 - a b + b2) (a2 + a b + b2) (a4 - a2 b2 + b4)

与代数运算有关一个很有用的Mathematica函数是Simplify。事实上,Mathematica很懒,一般的式子它不会自动帮您化简,只会做一下调整顺序、合并同类项之类的工作。例如:

 In[12]:=	Sin[x]^2 + Cos[x]^2
Out[12]=	Cos[x]2 + Sin[x]2

而Simplify则能够帮我们化简这些式子:

 In[13]:=	Simplify[Sin[x]^2 + Cos[x]^2]
Out[13]=	1

Simplify有时不能把式子化到最简。Mathematica提供了另一个函数FullSimplify,它化简式子时运用的变换规则比Simplify更多,化简能力比Simplify更强,但花的时间比Simplify要长。


输出近似值[编辑]

前面说过,当您输入的数字都是精确值时,输出也将是精确的。如果我们希望Mathematica输出的结果是近似值,可以在输入的末尾加上//N:

 In[14]:=	Sqrt[2] // N
Out[14]=	1.41421

“//N”这种奇怪的写法其实是使用N这个函数时的另一种写法[4],Sqrt[2]//N就相当于N[Sqrt[2]]:

 In[15]:=	N[Sqrt[2]]
Out[15]=	1.41421

N是表示数值(也就是近似值)的函数。N[expr]表示表示expr的近似值,N[expr, n]表示expr的有n位精度的近似值。比如说,求圆周率的前100位:

 In[16]:=	N[Pi, 100]
Out[16]=	3.14159265358979323846264338327950288419716939937510582097494459230781\
	6406286208998628034825342117068

Mathematica输出的近似值的精度不受限制。

注记[编辑]

  1. 这里为了排版的美观,在数和运算符号间添加了空格,但输入时不必添加,加上也不影响运算结果。但下面说的表示乘法的空格不能省略。
  2. 其实,这一说法并不准确,数的大小还是受到计算机本身的限制的,比如说Mathematica能算的最大的数一般在10323228429左右(12.1版中为1.605216761933662×101355718576299609),依计算机系统的不同而不同,这个“最大的数”的具体数值在Mathematica中用$MaxNumber表示。
  3. x等于n.5时取离x最近的偶数。注意这与我们通常的四舍五入不同,它采用的是四舍六入五留双的规则。
  4. 类似的语法糖还有:Sqrt@2等价于Sqrt[2],3~Mod~2等价于Mod[3,2]。


Mathematica虚拟全书中的相关内容[编辑]