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虛擬全書中的相關內容[編輯]