Mathematica數學學習快速入門指南


阿里網盤pdf文件分享

1 進入數學快速入門官網文檔

image-20210818092328825

進入到

image-20210818092355321

拉到網頁最下面

image-20210818092440359

點擊面向數學學習的快速入門指南即可進入官方數學學習教程

2 面向數學學習的快速入門指南

2.1 內容輸入

在網絡或桌面 Wolfram 筆記本中,只須輸入內容,然后按下 SHIFT+ENTER 進行計算:

In[1]:= img
Out[1]= img

In[n] 和 Out[n] 標示出相鄰的輸入和輸出. % 符號指代最近的輸出:

In[1]:= Click for copyable input
Out[1]= img
In[2]:= Click for copyable input
Out[2]= img

執行完計算以后,建議欄會提供下一步計算的建議:

img

在數學運算中可以使用標准符號:

(用空格或 * 表示乘法,不要用字符 “x”.)

In[1]:= Click for copyable input
Out[1]= img

用小括號(不是中括號或大括號)顯示不同層次的組合:

In[2]:= Click for copyable input
Out[2]= img

Wolfram 語言有大約 6,000 個內置函數,涵蓋了各個方面的數學知識.

用逗號分隔內置函數的參數,並將其置於方括號內:

In[1]:= Click for copyable inputGCD[12, 15]
Out[1]= img

如果不知道使用哪個函數,在行的開始處鍵入 = 即可進行自然語言輸入

In[2]:= imgplot a sine curve
Out[2]= img

Lists 表示一些項的集合,用 { ... } 表示:

In[1]:= Click for copyable input{1, 2, 3} {x, y, z}

列表是有序的. 可以包含數字、變量、計算,甚至是其他列表:

許多運算是被應用到每個元素上的:

In[2]:= Click for copyable input{1, 2, 3} + 2
Out[2]= img

從 1 開始,可以用 [[ ... ]] 來提取列表的元素:

In[3]:= Click for copyable input{a, b, c, d}[[3]]
Out[3]= img

通過使用如 Range 這樣的函數可以輕松構建列表

In[1]:= Click for copyable inputRange[10]
Out[1]= img

2.2 分數與小數

在 Wolfram 語言中,精確輸入(如分數)會提供精確的輸出

(用 CTRL+ / 輸入分數.)

In[1]:= Click for copyable input1/4 + 1/3
Out[1]= img

Together 寫成最小公分母的形式:

In[2]:= Click for copyable inputTogether[1/a + 1/b]
Out[2]= img

任何含有小數的輸入給出近似輸出:

In[1]:= Click for copyable input.25 + 1/3
Out[1]= img

N 得到結果的數字近似值:

In[2]:= Click for copyable inputN[1/4 + 1/7]
Out[2]= img

指定所示答案的准確度:

In[3]:= Click for copyable inputN[1/4 + 1/7, 10]
Out[3]= img

有些數字表示成 ScientificForm 形式會更合適:

In[1]:= Click for copyable inputScientificForm[0.00123]
Out[1]= img

在適合的情況下,系統自動使用 ScientificForm 形式:

In[2]:= Click for copyable inputN[100!]
Out[2]= img

2.3 變量與函數

變量以字母開頭,可以含有數字:

(最好是用小寫字母,把大寫開頭留給內置函數.)

In[1]:= Click for copyable inputa1/2
Out[1]= img

兩個變量或數字間的空格表示相乘:

(換句話說,“a b” 表示 a 乘以 b,而 “ab” 則為變量 ab.)

In[2]:= Click for copyable inputa b + 5 x x
Out[2]= img

/.-> 在表達式中進行替代操作:

(可用 -> 輸入 “rule” -> .)

In[3]:= Click for copyable input1 + 2 x /. x -> 2
Out[3]= img

= 符號賦值:

In[1]:= Click for copyable inputx = 2
Out[1]= img

在表達式和命令中使用變量:

In[2]:= Click for copyable input1 + 2 x
Out[2]= img

清除賦值,x 保持未計算狀態:

In[3]:= Click for copyable inputClear[x] 1 + 2 x
Out[3]= img

f[x_]:= 來定義自己的函數:

In[1]:= Click for copyable inputf[x_] := 1 + 2 x

x_ 表示 x 是一個模式,任何值都可以取代它.

:= 表示在計算時傳遞給 f 的任何參數將被代入右側:

In[2]:= Click for copyable inputf[2]
Out[2]= img

2.4 代數

可以因式分解展開代數表達式:

(用 CTRL+6 輸入排版式指數.)

In[1]:= Click for copyable inputFactor[x^2 + 2 x + 1]
Out[1]= img

Wolfram 語言用 == (兩個等號)檢測是否相等:

In[1]:= Click for copyable input2 + 2 == 4
Out[1]= img

== 把代數表達式組合在一起表示方程:

In[2]:= Click for copyable input1 + z == 15
Out[2]= img

Solve 這樣的命令給出的是方程的精確解:

In[1]:= Click for copyable inputSolve[x^2 + 5 x - 6 == 0, x]
Out[1]= img

如果想要得到近似結果,用 NSolve

In[2]:= Click for copyable inputNSolve[7 x^2 + 3 x - 5 == 0, x]
Out[2]= img

以列表形式把一個方程組傳遞給函數:

In[3]:= Click for copyable inputSolve[{x^2 + 5 == y, 7 x - 5 == y}, {x, y}]
Out[3]= img

求方程的根:

||Or 的符號.)

In[1]:= Click for copyable inputRoots[x^2 + 3 x - 4 == 0, x]
Out[1]= img

如果一個多項式不易被因式分解,近似結果可能更有用:

In[2]:= Click for copyable input
NRoots[360 + 234 x - 1051 x^2 + 11 x^3 + 304 x^4 - 20 x^5 == 0, x]
Out[2]= img

Reduce 命令可把一組不等式化簡成簡單的形式:

(可鍵入 <= 得到 符號.)

In[1]:= Click for copyable inputReduce[{0 < x < 2, 1 <= x <= 4}, x]
Out[1]= img

簡化形式可以包含多個區間:

In[2]:= Click for copyable inputReduce[(x - 1) (x - 2) (x - 3) (x - 4) > 0, x]
Out[2]= img

NumberLinePlot 是可視化這些結果的簡便方法:

In[3]:= Click for copyable input NumberLinePlot[x < 1 || 2 < x < 3 || x > 4, {x, -10, 10}]
Out[3]= img

通過自然語言輸入可以得到許多方程和公式:

In[1]:= imgquadratic equation
Out[1]= img

2.5 二維繪圖

生成多項式函數的二維曲線

(區間 {x,min,max} 定義了繪圖范圍.)

In[1]:= Click for copyable inputPlot[x^2 + 2 x + 1, {x, -10, 10}]
Out[1]= img

或者繪制一組不等式的二維區域

&&And 的符號.)

In[2]:= Click for copyable input RegionPlot[Reduce[{x^2 + y < 2 && x + y < 1}], {x, -3, 3}, {y, -3, 3}]
Out[2]= img

有許多有用的選項可以用來自定義可視化,比如,可以加上圖例

In[1]:= Click for copyable input Plot[{x^3, x^2, x}, {x, -2, 2}, PlotLegends -> "Expressions"]
Out[1]= img

或對繪圖進行填充來查看曲線下的面積:

In[2]:= Click for copyable inputPlot[1/x, {x, -3, 3}, Filling -> Axis]
Out[2]= img

Show 來組合不同的繪圖類型:

In[1]:= Click for copyable input Show[{Plot[x^2 + 2, {x, -3, 3}], RegionPlot[2 x > y - 3, {x, -3, 3}, {y, 0, 9}]}]
Out[1]= img

2.6 幾何

Graphics 命令可以生成各種各樣的二維形狀:

In[1]:= Click for copyable inputGraphics[Disk[]]
Out[1]= img

許多幾何對象接受一系列坐標(列表)作為參數:

In[2]:= Click for copyable inputGraphics[Rectangle[{0, 0}, {4, 2}]]
Out[2]= img

指令一起以列表形式傳遞參數,把圖形組合在一起並改變它們的樣式:

In[3]:= Click for copyable input Graphics[{Green, Rectangle[{0, 0}, {2, 2}], Red, Disk[]}]
Out[3]= img

用諸如 SASTriangle 這樣的命令生成三角形:

(鍵入 ESC+deg+ESC 可輸入 ° 符號.)

In[1]:= Click for copyable inputtr = SASTriangle[1, 90 \[Degree], 2]
Out[1]= img

可以直接算出如面積這樣的屬性:

In[2]:= Click for copyable inputArea[tr]
Out[2]= img

把該表達式傳遞給 Graphics

In[3]:= Click for copyable inputGraphics[tr]
Out[3]= img

同樣,可以用 Graphics3D 顯示三維物體:

In[1]:= Click for copyable inputGraphics3D[Ball[]]
Out[1]= img

計算體積及其他屬性:

(如果沒有給出參數,圓柱的半徑為1,高度為 2.)

In[2]:= Click for copyable inputVolume[Cylinder[]]
Out[2]= img

還可以用自然語言輸入查找公式和其他信息:

In[3]:= imgvolume of a cone
Out[3]= img

系統還內置有幾何變換,如 RotateTranslateScale

In[1]:= Click for copyable inputGraphics[Rotate[Rectangle[], 45 \[Degree]]]
Out[1]= img

2.7 三角函數

對於基本的三角函數,可以使用標准的縮寫形式(首字母大寫):

In[1]:= Click for copyable inputSin[x]/Cos[x] == Tan[x]
Out[1]= img

加上 “Arc” 求反函數:

In[2]:= Click for copyable inputArcTan[1]
Out[2]= img

在弧度表達式中使用 Pi

(鍵入 ESC+pi+ESC 來輸入 π 字符.)

In[1]:= Click for copyable inputSin[\[Pi]/2]
Out[1]= img

或輸入 ESCd+eg+ESC 得到內置的 Degree 符號:

In[2]:= Click for copyable inputSin[90 \[Degree]]
Out[2]= img

用恆等式自動展開(或化簡)三角表達式:

In[1]:= Click for copyable inputTrigExpand[Sin[2 x]]
Out[1]= img

因式分解三角多項式:

In[2]:= Click for copyable inputTrigFactor[Cos[x]^2 - Sin[x]^2]
Out[2]= img

也可以使用像 Solve 這樣的函數:

In[1]:= Click for copyable inputSolve[Cos[x]^2 + Sin[x]^2 == x]
Out[1]= img

指定解的值域:

In[2]:= Click for copyable inputSolve[{Tan[x] == 1, 0 < x < 2 Pi}]
Out[2]= img

2.8 極坐標

創建二維極坐標圖

(鍵入 ESC+th+ESC 可得到 θ 符號.)

In[1]:= Click for copyable input PolarPlot[Sin[2 \[Theta]] + Cos[2 \[Theta]], {\[Theta], 0, 2 Pi}]
Out[1]= img

顯示極坐標軸

In[2]:= Click for copyable input PolarPlot[Sin[2 \[Theta]] + Cos[2 \[Theta]], {\[Theta], 0, 2 Pi}, PolarAxes -> Automatic, PolarTicks -> {0 \[Degree], 90 \[Degree], 180 \[Degree], 270 \[Degree]}]
Out[2]= img

把直角坐標轉換成極坐標:

In[1]:= Click for copyable inputToPolarCoordinates[{1, 1}]
Out[1]= img

2.9 指數和對數

Wolfram 語言用 E 表示指數常數.

Log 給出一個表達式的自然對數:

In[1]:= Click for copyable inputLog[E^2]
Out[1]= img

計算以 2 為基數的對數:

In[2]:= Click for copyable inputLog[2, 64]
Out[2]= img

在對數刻度上繪圖:

In[1]:= Click for copyable inputLogPlot[E^x, {x, 1, 5}]
Out[1]= img

把兩個坐標軸都設成對數刻度:

In[2]:= Click for copyable inputLogLogPlot[x^2 + x^3, {x, 1, 100}]
Out[2]= img

2.10 極限

計算表達式的極限值

(鍵入 -> 可得到 符號.)

In[1]:= Click for copyable inputLimit[(x^3 - 1)/(x - 1), x -> 1]
Out[1]= img

Infinity 處的極限:

(鍵入 ESC+inf+ESC 可得到 符號.)

In[2]:= Click for copyable inputLimit[(2 x^3 - 1)/(5 x^3 + x - 1), x -> \[Infinity]]
Out[2]= img

還可以指定極限的方向.

設置為 1 時從左側逼近極限:

In[1]:= Click for copyable inputLimit[1/x, x -> 0, Direction -> 1]
Out[1]= img

設置為 -1 時從右側逼近極限:

In[2]:= Click for copyable inputLimit[1/x, x -> 0, Direction -> -1]
Out[2]= img

HoldForm 將表達式保持為未計算狀態:

TraditionalForm 用傳統的數學排版形式顯示.)

In[1]:= Click for copyable input TraditionalForm[HoldForm[Limit[1/x, x -> Infinity]]]
Out[1]= img

2.11 導數

用命令 D 計算導數:

In[1]:= Click for copyable inputD[x^6, x]
Out[1]= img

或者使用角分符號:

In[2]:= Click for copyable inputSin'[x]
Out[2]= img

對用戶定義的函數求導:

In[1]:= Click for copyable input
f[x_] := x^2 + 2 x + 1; f'[x]
Out[1]= img

繪制導數:

In[2]:= Click for copyable inputPlot[{f[x], f'[x]}, {x, -3, 3}]
Out[2]= img

還可以多次求導:

In[1]:= Click for copyable inputD[x^6, {x, 3}]
Out[1]= img

或者多次使用 ' 符號:

In[2]:= Click for copyable inputSin''[x]
Out[2]= img

和前面討論過的主題一樣,也可以通過自然語言輸入得到微積分公式:

In[1]:= imgproduct rule formula
Out[1]= img

2.12 積分

Integrate 計算積分:

In[1]:= Click for copyable inputIntegrate[8 x^4, x]
Out[1]= img

或輸入 ESC+intt+ESC 得到一個可填充的數學表達式:

(如果想了解更多關於可填充表達式的信息,請參閱數學排版顯示.)

In[2]:= Click for copyable input\[Integral]8 x^4 \[DifferentialD]x
Out[2]= img

對於定積分,輸入 ESC+dintt+ESC 並指定上下限:

In[1]:= Click for copyable input \!\( \*SubsuperscriptBox[\(\[Integral]\), \(0\), \(\[Pi]\)]\(Sin[ x] \[DifferentialD]x\)\)
Out[1]= img

NIntegrate 來得到數值近似:

In[2]:= Click for copyable input
NIntegrate[x^3 Sin[x] + 2 Log[3 x]^2, {x, 0, Pi}]
Out[2]= img

2.13 序列、求和與級數

在 Wolfram 語言中,用列表表示整數序列.

Table 來定義一個簡單的序列:

In[1]:= Click for copyable inputTable[x^2, {x, 1, 7}]
Out[1]= img

系統內置有大家熟知的序列:

In[2]:= Click for copyable inputTable[Fibonacci[x], {x, 1, 7}]
Out[2]= img

RecurrenceTable 定義遞歸序列:

(注意 {x,min,max} 表示法的使用.)

In[1]:= Click for copyable input
RecurrenceTable[{a[x] == 2 a[x - 1], a[1] == 1}, a, {x, 1, 8}]
Out[1]= img

計算序列的 Total

In[2]:= Click for copyable inputTotal[%]
Out[2]= img

根據母函數計算序列的 Sum

In[1]:= Click for copyable inputSum[i (i + 1), {i, 1, 10}]
Out[1]= img

ESC+sumt+ESC 得到可填充的排版形式:

In[2]:= Click for copyable input
\!\( \*UnderoverscriptBox[\(\[Sum]\), \(i = 1\), \(10\)]\(i \((i + 1)\)\)\)
Out[2]= img

可以進行不定求和與多重求和計算:

In[3]:= Click for copyable input
\!\( \*UnderoverscriptBox[\(\[Sum]\), \(i = 1\), \(n\)]\( \*UnderoverscriptBox[\(\[Sum]\), \(j = 1\), \(n\)]i\ j\)\)
Out[3]= img

計算序列的母函數

In[1]:= Click for copyable inputFindSequenceFunction[{2, 4, 6, 8}, n]
Out[1]= img

生成幾乎任意內置函數的組合的冪級數近似:

In[1]:= Click for copyable inputSeries[Exp[x^2], {x, 0, 8}]
Out[1]= img

O[x]9 表示省略掉的更高次數的項;用 Normal 來截斷這些項:

In[2]:= Click for copyable inputNormal[%]
Out[2]= img

給定一個未知或未定義的函數,Series 返回用導數表示的冪級數:

In[3]:= Click for copyable inputSeries[2 f[x] - 3, {x, 0, 3}]
Out[3]= img

系統可自動化簡收斂級數:

In[1]:= Click for copyable input\!\( \*UnderoverscriptBox[\(\[Sum]\), \(n = 0\), \(\[Infinity]\)] \*SuperscriptBox[\(0.5\), \(n\)]\)
Out[1]= img

2.14 更多二維繪圖

ParametricPlot 來繪制一組參數方程:

In[1]:= Click for copyable inputParametricPlot[{2 Cos[t] - Cos[2 t], 2 Sin[t] - Sin[2 t]}, {t, 0, 2 Pi}]
Out[1]= img

用多個變量繪制函數的 ContourPlot

In[1]:= Click for copyable inputContourPlot[Sqrt[x^2 + y^2], {x, -1, 1}, {y, -1, 1}]
Out[1]= img

DensityPlot 繪制連續形式的圖:

In[2]:= Click for copyable inputDensityPlot[Sqrt[x^2 + y^2], {x, -1, 1}, {y, -1, 1}]
Out[2]= img

2.15 三維繪圖

Plot3D 可繪制三維的笛卡爾曲線或曲面:

In[1]:= Click for copyable inputPlot3D[x^2 - y^2 , {x, -3, 3}, {y, -3, 3}]
Out[1]= img

ParametricPlot3D 繪制三維空間曲線:

In[2]:= Click for copyable input
ParametricPlot3D[{Sin[u], Cos[u], u/10}, {u, 0, 20}]
Out[2]= img

如果想在球面坐標系中繪圖,用 SphericalPlot3D

In[3]:= Click for copyable input
SphericalPlot3D[Sin[\[Theta]], {\[Theta], 0, Pi}, {\[Phi], 0, 2 Pi}]
Out[3]= img

RevolutionPlot3D 通過繞軸旋轉一個表達式構建曲面:

In[1]:= Click for copyable inputRevolutionPlot3D[x^4 - x^2, {x, -1, 1}]
Out[1]= img

2.16 多變量微積分

D 可用於求偏導數,只需指定對哪個或哪些變量求導:

In[1]:= Click for copyable inputD[x^3 z + 2 y^2 x + y z^3, y, z]
Out[1]= img

或使用 符號:

(鍵入 ESC+pd+ESC 可以輸入 CTRL+- 產生下標.)

In[2]:= Click for copyable input
\!\( \*SubscriptBox[\(\[PartialD]\), \(x, y\)]\(( \*SuperscriptBox[\(x\), \(2\)] - 2 x\ y + x\ y\ z)\)\)
Out[2]= img

多重積分與單個積分的符號是一樣的:

(鍵入 ESC+int+ESC 可得到 ,用 ESC+dd+ESC 得到 image-20210818095739845.)

In[1]:= Click for copyable input
\[Integral]\[Integral]\[Integral](x^2 + y^2 + z^2) \[DifferentialD]y \[DifferentialD]x \[DifferentialD]z
Out[1]= img

符號式結果常常相當復雜:

In[2]:= Click for copyable input
\!\( \*SubsuperscriptBox[\(\[Integral]\), \(-1\), \(1\)]\( \*SubsuperscriptBox[\(\[Integral]\), \(-2\), \(x\)]\((x\ Sin[ \*SuperscriptBox[\(y\), \(2\)]] + y\ Cos[ \*SuperscriptBox[\(x\), \(2\)]])\) \[DifferentialD]y \ \[DifferentialD]x\)\)
Out[2]= img

這種情況下,總可以通過使用 N 命令得到近似結果:

In[3]:= Click for copyable inputN[%, 5]
Out[3]= img

2.17 矢量分析與可視化

在 Wolfram 語言中,用長度為 n 的列表表示 n 維矢量.

計算兩個矢量的點積

In[1]:= Click for copyable input{1, 2, 3}.{a, b, c}
Out[1]= img

輸入 ESC+cross+ESC 得到叉乘符號:

In[2]:= Click for copyable input{1, 2, c}\[Cross]{a, b, c}
Out[2]= img

計算矢量的

In[1]:= Click for copyable inputNorm[{1, 1, 1}]
Out[1]= img

求矢量在 x 軸上的投影

In[2]:= Click for copyable inputProjection[{8, 6, 7}, {1, 0, 0}]
Out[2]= img

求兩個矢量的夾角:

In[3]:= Click for copyable inputVectorAngle[{1, 0}, {0, 1}]
Out[3]= img

計算矢量的梯度

(用 ESC+grad+ESC 輸入 符號.)

In[1]:= Click for copyable input
\!\( \*SubscriptBox[\(\[Del]\), \({x, y}\)]\({ \*SuperscriptBox[\(x\), \(2\)] + y, x + \*SuperscriptBox[\(y\), \(2\)]}\)\)
Out[1]= img

計算向量場的散度旋度

In[2]:= Click for copyable input
Div[{f[x, y, z], g[x, y, z], h[x, y, z]}, {x, y, z}]
Out[2]= img

Wolfram 語言擁有適合於可視化向量場的二維和三維函數:

In[1]:= Click for copyable inputVectorPlot[{y, -x}, {x, -3, 3}, {y, -3, 3}]
Out[1]= img
In[2]:= Click for copyable input
VectorPlot3D[{y, -x, z}, {x, -3, 3}, {y, -3, 3}, {z, -3, 3}]
Out[2]= img

在切片曲面上繪制向量場:

In[3]:= Click for copyable input
SliceVectorPlot3D[{y, -x, z}, "CenterPlanes", {x, -2, 2}, {y, -2, 2}, {z, -2, 2}]
Out[3]= img

2.18 微分方程

Wolfram 語言可以求解常微分方程、偏微分方程和時滯微分方程 (ODE、PDE 和 DDE).

DSolveValue 接受微分方程並返回通解:

C[1] 表示積分常數.)

In[1]:= Click for copyable inputsol = DSolveValue[y'[x] + y[x] == x, y[x], x]
Out[1]= img

/. 替換常數:

In[2]:= Click for copyable inputsol /. C[1] -> 1
Out[2]= img

或為特解加上條件:

In[3]:= Click for copyable input
DSolveValue[{y'[x] + y[x] == x, y[0] == -1}, y[x], x]
Out[3]= img

NDSolveValue 可求出數值解:

In[1]:= Click for copyable input
NDSolveValue[{y'[x] == Cos[x^2], y[0] == 0}, y[x], {x, -5, 5}]
Out[1]= img

可直接繪制 InterpolatingFunction

In[2]:= Click for copyable inputPlot[%, {x, -5, 5}]
Out[2]= img

如果想要求解微分方程組,把所有方程和條件都放在列表中:

(注意:換行符沒有任何影響.)

In[1]:= Click for copyable input {xsol, ysol} = NDSolveValue[ {x'[t] == -y[t] - x[t]^2, y'[t] == 2 x[t] - y[t]^3, x[0] == y[0] == 1}, {x, y}, {t, 20}]
Out[1]= img

用參數圖可視化解:

In[2]:= Click for copyable inputParametricPlot[{xsol[t], ysol[t]}, {t, 0, 20}]
Out[2]= img

2.19 復分析

虛部單位 img 表示為 I

In[1]:= Click for copyable inputI^2
Out[1]= img

許多運算可以自動處理復數:

In[2]:= Click for copyable input(1 + I) (2 - 3 I)
Out[2]= img

展開復數表達式:

In[1]:= Click for copyable inputComplexExpand[Sin[x + I y]]
Out[1]= img

在指數形式和三角函數形式之間轉換表達式:

In[2]:= Click for copyable inputExpToTrig[E^(I x)]
Out[2]= img
In[3]:= Click for copyable inputTrigToExp[%]
Out[3]= img

輸入 ESC+co+ESC 可得到 Conjugate 符號:

In[1]:= Click for copyable input(3 + 2 I)\[Conjugate]
Out[1]= img

提取表達式的實部和虛部:

In[2]:= Click for copyable inputReIm[3 + 2 I]
Out[2]= img

或求絕對值和輻角:

In[3]:= Click for copyable inputAbsArg[(1 + I)]
Out[3]= img

ParametricPlot 繪制保角映射:

In[1]:= Click for copyable input
ParametricPlot[ReIm[E^(I \[Omega])], {\[Omega], 0, 2 \[Pi]}]
Out[1]= img

PolarPlot 中使用 AbsArg

In[2]:= Click for copyable input
PolarPlot[AbsArg[E^(I \[Omega])], {\[Omega], 0, \[Pi]}]
Out[2]= img

DensityPlot 可視化復分量:

In[3]:= Click for copyable input
DensityPlot[Im[ArcSin[(x + I y)^2]], {x, -2, 2}, {y, -2, 2}]
Out[3]= img

2.20 矩陣與線性代數

Wolfram 語言用列表的列表表示矩陣:

In[1]:= Click for copyable input{{1, 2}, {3, 4}}

輸入一個表格,用 CTRL+ ENTER 輸入行,用 CTRL+ , 輸入列:

In[2]:= Click for copyable input{ {a, b}, {c, d} }
Out[2]= img

MatrixForm 將輸出顯示為一個矩陣:

In[3]:= Click for copyable inputMatrixForm[{{a, b}, {c, d}}]
Out[3]= img

可以用迭代函數構建矩陣

In[1]:= Click for copyable inputTable[x + y, {x, 1, 3}, {y, 0, 2}]
Out[1]= img

導入表示矩陣的數據:

In[2]:= Click for copyable inputImport["data.csv"]
Out[2]= img

IdentityMatrixDiagonalMatrix 和其他類似命令為內置符號.

標准的矩陣運算對元素進行操作:

In[1]:= Click for copyable input{1, 2, 3} {a, b, c}
Out[1]= img

計算兩個矩陣的點積

In[2]:= Click for copyable input{{1, 2}, {3, 4}}.{{a, b}, {c, d}}
Out[2]= img

行列式

In[3]:= Click for copyable inputDet[{{a, b}, {c, d}}]
Out[3]= img

獲取矩陣的

In[4]:= Click for copyable inputInverse[{{1, 1}, {0, 1}}]
Out[4]= img

LinearSolve 求解線性系統:

In[1]:= Click for copyable inputLinearSolve[{{1, 1}, {0, 1}}, {x, y}]
Out[1]= img

還有用於最小化矩陣分解的函數.

2.21 離散數學

進行基本的數論運算,如因子分解

In[1]:= Click for copyable inputFactorInteger[30]
Out[1]= img

求任意兩個整數的最大公約數(或最小公倍數 ):

In[2]:= Click for copyable inputGCD[24, 60]
Out[2]= img

顯示第 4 個質數

In[1]:= Click for copyable inputPrime[4]
Out[1]= img

判斷一個數是否是質數:

In[2]:= Click for copyable inputPrimeQ[%]
Out[2]= img

也可以進行互質判定:

In[3]:= Click for copyable inputCoprimeQ[51, 15]
Out[3]= img

Mod 函數求余數:

In[1]:= Click for copyable inputMod[17, 5]
Out[1]= img

獲取一個列表所有可能的排列

In[1]:= Click for copyable inputPermutations[{a, b, c}]
Out[1]= img

用不相交 Cycles 對列表應用 Permute

Cycles 接受列表的列表作為參數.)

In[2]:= Click for copyable input
Permute[{a, b, c, d}, Cycles[{{2, 4}, {1, 3}}]]
Out[2]= img

置換階數

In[3]:= Click for copyable inputPermutationOrder[Cycles[{{2, 4}, {1, 3}}]]
Out[3]= img

根據邊的列表生成 Graph

(用 ESC+ue+ESC 輸入 UndirectedEdge,或用 ESC+de+ESC 輸入 DirectedEdge.)

In[1]:= Click for copyable input
Graph[{1 <-> 2, 2 \[DirectedEdge] 3, 3 \[DirectedEdge] 4, 4 <-> 1, 3 \[DirectedEdge] 1, 2 \[DirectedEdge] 2}, VertexLabels -> All]
Out[1]= img

求兩個頂點間最短的路徑:

In[2]:= Click for copyable inputFindShortestPath[%, 3, 2]
Out[2]= img

自然語言輸入了解眾所周知的圖:

In[3]:= imgpappus graph image
Out[3]= img

2.22 概率

Wolfram 語言含有范圍廣泛的概率函數,以及幾百個符號分布.

用數學符號計算階乘

In[1]:= Click for copyable input5!
Out[1]= img

對於組合,可使用 Binomial

In[2]:= Click for copyable inputBinomial[4, 3]
Out[2]= img

計算二項分布的概率

(鍵入 ESC+dist+ESC 可得到image-20210818100548104 符號.)

In[1]:= Click for copyable input Probability[x == 1, x \[Distributed] BinomialDistribution[1, 1/2]]
Out[1]= img

計算多項式的期望

In[2]:= Click for copyable input Expectation[2 x + 3, x \[Distributed] NormalDistribution[]]
Out[2]= img

獲取正態分布的符號式 PDF

In[1]:= Click for copyable inputPDF[NormalDistribution[0, 1], x]
Out[1]= img

對結果繪圖

In[2]:= Click for copyable inputPlot[%, {x, -5, 5}, Filling -> Axis]
Out[2]= img

自由格式輸入可用來計算現實世界事件的概率:

In[1]:= imgbirthday problem 18 people
Out[1]= img

2.23 統計

在 Wolfram 語言中,統計函數可接受列表或符號分布作為參數:

計算一組數字的均值

In[1]:= Click for copyable inputMean[{1, 2, 4, 5}]
Out[1]= img

求多個列表的相關

In[2]:= Click for copyable inputCorrelation[{1, 3, 5}, {6, 4, 2}]
Out[2]= img

求泊松分布的標准差

In[3]:= Click for copyable inputStandardDeviation[PoissonDistribution[2]]
Out[3]= img

計算一組符號的

In[1]:= Click for copyable inputMoment[{x, y, z}, 2]
Out[1]= img

獲取分布的矩母函數

(鍵入 ESC+m+ESC 可得到 μ,或鍵入 ESC+s+ESC 得到 σ.)

In[2]:= Click for copyable inputMomentGeneratingFunction[NormalDistribution[\[Mu], \[Sigma]], t]
Out[2]= img

RandomVariate 產生統計數據:

(用 //Short 來得到輸出的簡短總結.)

In[1]:= Click for copyable input
RandomVariate[NormalDistribution[0, 1], {500, 2}] // Short
Out[1]= img

可視化所得數據:

In[2]:= Click for copyable inputHistogram3D[%]
Out[2]= img

2.24 繪制數據與最佳擬合曲線

ListPlot 繪制數據點:

In[1]:= Click for copyable inputListPlot[{1, 3, 4, 7, 9, 15}]
Out[1]= img

或用圖表顯示信息:

In[2]:= Click for copyable inputBarChart[{1, 2, 3, 4, 5}]
Out[2]= img

有專門的函數繪制時間序列金融數據,還有許多其他繪圖函數.

自動對多個數據集添加不同的顏色以示區分:

In[1]:= Click for copyable input
ListLinePlot[{{1, 2, 3, 4, 5}, {1, 3, 7, 10, 17}}]
Out[1]= img

通過使用如 PlotTheme 這樣的選項可以改變繪圖的樣式和外觀.

Fit 命令找到最佳擬合曲線:

({1,x,x2} 表示 x 的二次擬合.)

In[1]:= Click for copyable inputFit[{2, 3, 5, 7, 11, 13}, {1, x, x^2}, x]
Out[1]= img

Show 將曲線與數據點相比較:

In[2]:= Click for copyable inputShow[{Plot[%, {x, 1, 6}], ListPlot[{2, 3, 5, 7, 11, 13}]}]
Out[2]= img

2.25 群論

SymmetricGroupAlternatingGroupDihedralGroup 和許多其他已命名群屬於內置符號.

獲取群的元素列表:

In[1]:= Click for copyable inputGroupElements[SymmetricGroup[2]]
Out[1]= img

確定群的生成元

In[2]:= Click for copyable inputGroupGenerators[SymmetricGroup[3]]
Out[2]= img

用兩個生成元創建一個置換群

In[1]:= Click for copyable input
PermutationGroup[{Cycles[{{3, 1, 2}}], Cycles[{{2, 5, 6}}]}]

計算階數:

In[2]:= Click for copyable inputGroupOrder[%]
Out[2]= img

顯示群的乘法表

In[1]:= Click for copyable inputTableForm[GroupMultiplicationTable[DihedralGroup[2]], TableHeadings -> Automatic]
Out[1]= img

Cayley 圖可視化:

In[2]:= Click for copyable inputCayleyGraph[DihedralGroup[2]]
Out[2]= img

2.26 數學難題

Wolfram 語言是解決極具挑戰性的數學難題和游戲的絕佳平台. 一旦明白其中的原理,用它來做研究就會得心應手.

假設你想在 100 萬以內找出與 100 萬沒有公因子的正整數的個數.

那就從用 CoprimeQ 把前 100 萬個正整數與 100 萬相比開始.

In[1]:= Click for copyable inputCoprimeQ[Range[1000000], 1000000] // Short
Out[1]= img

通過用 Nothing 替換結果為 False 的項,自動將其移除:

In[2]:= Click for copyable input% /. False -> Nothing // Short
Out[2]= img

然后計算所得列表的長度

In[3]:= Click for copyable inputLength[%]
Out[3]= img

把這些步驟放在一條命令中:

In[4]:= Click for copyable input
Length[CoprimeQ[Range[1000000], 1000000] /. False -> Nothing]
Out[4]= img

符號表達式經常能給出直接解. 給定一個正整數 k,你能找出計算 1k+2k+...+nk 的和的公式嗎?

k=2 時的解:

In[1]:= Click for copyable input
\!\( \*UnderoverscriptBox[\(\[Sum]\), \(i = 1\), \(n\)] \*SuperscriptBox[\(i\), \(2\)]\)
Out[1]= img

通用解是第 n 個階數為 k調和數

In[2]:= Click for copyable input
\!\( \*UnderoverscriptBox[\(\[Sum]\), \(i = 1\), \(n\)] \*SuperscriptBox[\(i\), \(k\)]\)
Out[2]= img

利用內置圖形可以很容易地可視化幾何問題. 來看下面的圖形:

In[1]:= Click for copyable input
Labeled[Graphics[ shape = {Rectangle[], Rectangle[{0, 1}], Rectangle[{1, 0}]}], n]
Out[1]= img

對於給定的基底長度 n,可不可能用類似的基底長度為 1 的形狀來填充這個圖形?

n=2 時的解:

In[2]:= Click for copyable input
Graphics[{ Scale[shape, 2, {0, 0}], {Yellow, shape}, {Green, Translate[shape, {1, 1}]}, {Blue, Translate[Rotate[shape, -90 \[Degree]], {0, 2}]}, {Red, Translate[Rotate[shape, 90 \[Degree]], {2, 0}]} }]
Out[2]= img

n=3 時的解:

In[3]:= Click for copyable input
Graphics[{ Scale[shape, 3, {0, 0}], {Orange, shape}, {Magenta, Translate[Rotate[shape, -90 \[Degree]], {0, 2}]}, {Green, Translate[shape, {1, 1}]}, {Red, Translate[Rotate[shape, 90 \[Degree]], {2, 0}]}, {Black, Translate[shape, {0, 4}]}, {Blue, Translate[Rotate[shape, 180 \[Degree]], {1, 4}]}, {Gray, Translate[shape, {2, 2}]}, {Purple, Translate[Rotate[shape, -90 \[Degree]], {4, 1}]}, {Yellow, Translate[Rotate[shape, 90 \[Degree]], {4, 0}]} }]
Out[3]= img

可以通過自然語言輸入獲取有名的游戲、難題和謎題:

In[1]:= imgTower of Hanoi 2 disk solution
Out[1]= img

2.27 交互模型

通過 Manipulate 命令可以交互式地實時查看改變參數會發生什么:

In[1]:= Click for copyable input
Manipulate[Plot[Sin[f x], {x, -3, 3}, Filling -> Axis], {f, 1, 5}]
Out[1]= img

一個單獨的 Manipulate 命令中可以有多個控件,Wolfram 語言將自動選擇控件最合適的布局:

In[1]:= Click for copyable input
Manipulate[Plot[Sin[f*x + p], {x, -3, 3}, Filling -> fill, PlotStyle -> color], {f, 1, 5}, {p, 3, 9}, {fill, {Bottom, Top, Axis}}, {color, Red}]
Out[1]= img

Wolfram 語言中的任意表達式都可被操控,包括非圖形表達式:

In[1]:= Click for copyable inputManipulate[Expand[(a + b)^n], {n, 1, 20, 1}]
Out[1]= img

2.28 數學排版顯示

鍵盤快捷鍵(如 CTRL+/ 可用於分數的輸入)插入可填充的排版表達式:

(點擊方框突出顯示並填充,或按下 TAB 在各方框間移動.)

img

這是輸入指數 (CTRL+6)、下標 (CTRL+-) 和其他常見表達式的簡單方法.

在筆記本中按下 ESC 鍵得到 image-20210818102118972 符號,可用在鍵盤快捷輸入形式image-20210818102206040

(在文檔中常記為 ESC+alias+ESC )中.

鍵入正確的別名,當右側的image-20210818102118972輸入完成后,表達式就會發生改變:

(偏微分 “partial derivative” 的別名是 “pd”.)

img

產生求和、積分和其他高級表達式的方法為:

(定積分 “definite integral” 的別名是 “dintt”.)

img

許多希臘字母和其他特殊字符也使用這種形式.

在桌面版的筆記本中,可以選擇面板菜單中的“數學助手”查看可用的排版形式.

點擊面板上的按鈕即可在鼠標所在處插入一個可填充表達式:

img

使用 TraditionalForm 命令以傳統數學符號顯示任意表達式:

In[1]:= Click for copyable inputTraditionalForm[(y + 3)^2/((y - 2) (y + 5))]
Out[1]= img

SHIFT+CMD+TSHIFT+ALT+T)把現有單元轉換成 TraditionalForm

TraditionalForm 形式的表達式仍然是可計算的.)

In[2]:= Click for copyable inputLimit[(x^2 - 1)/(x - 1), x -> 0]
In[3]:= Click for copyable input
\!\(\*UnderscriptBox[\(lim\), \(x \[Rule] 0\)]\)( x^2 - 1)/(x - 1)
Out[3]= img

2.29 筆記本文檔

可以在桌面或網頁上使用 Wolfram 筆記本,它成功地把文字、圖形、界面等與計算融合在一起:

img

筆記本是按單元組織的,並由右邊的方括號指定,

雙擊單元方括號打開或關閉單元組,

在單元間點擊可以獲取水平插入條,以便創建一個新的單元;

拷貝、粘貼、刪除任何單元集合等.

選中任何單元集合並按住 SHIFT+ENTER 對輸入進行計算.

在筆記本中可以加上標題、章節或文本單元:

img

把筆記本轉換成幻燈片也是易如反掌:

img

與 Wolfram 語言的其他內容一樣,文檔也是可被程序化改變的符號表達式.

2.30 雲部署

CloudDeploy 可把對象部署到 Wolfram Cloud.

創建一個有正弦波圖片的網頁:

In[1]:= Click for copyable inputCloudDeploy[Plot[Sin[x], {x, 0, 50}]]

[Out1]=img

img

部署一個動態界面:

In[1]:= Click for copyable input
CloudDeploy[Manipulate[Plot[Sin[f x], {x, 0, 2 Pi}], {f, 1, 10}]]

[Out1]=img

img

無論是否是動態部署,從筆記本部署的內容都會保留其樣式.

CloudDeploy[Delayed[...]] 部署表達式,每次被請求時都對其重新進行計算.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM