據(jù)科學(xué)工具箱:WolframAlpha 計(jì)算知識引擎數(shù)學(xué)實(shí)戰(zhàn)指南)
Virgilio 數(shù)據(jù)科學(xué)工具箱WolframAlpha 計(jì)算知識引擎數(shù)學(xué)實(shí)戰(zhàn)指南【免費(fèi)下載鏈接】VirgilioYour new Mentor for Data Science E-Learning.項(xiàng)目地址: https://gitcode.com/gh_mirrors/vi/VirgilioWolframAlphaWA是一個計(jì)算知識引擎它不只是搜索引擎而是一個能夠直接回答數(shù)學(xué)問題、執(zhí)行符號計(jì)算并返回結(jié)果的平臺。本指南以 Virgilio 開源學(xué)習(xí)倉庫中的 Tools/WolframAlpha.md 為骨架系統(tǒng)覆蓋從基礎(chǔ)運(yùn)算、函數(shù)繪圖、方程與不等式求解到矩陣代數(shù)、級數(shù)、微積分與極限的全部核心查詢語法并補(bǔ)充倉庫內(nèi)可驗(yàn)證的實(shí)操細(xì)節(jié)。讀完本文你將掌握 WA 的自然語言與 Mathematica 風(fēng)格兩套查詢范式能夠把 WolframAlpha 變成學(xué)習(xí)微積分、線性代數(shù)與數(shù)據(jù)科學(xué)數(shù)學(xué)基礎(chǔ)時隨身攜帶的解題伙伴。目錄WolframAlpha 是什么從能回答問題到能算數(shù)學(xué)訪問途徑在線網(wǎng)頁與本地 Mathematica上手三件事可分享的查詢鏈接、寬松語法與分步解答基礎(chǔ)計(jì)算把 WA 當(dāng)成一個高級計(jì)算器函數(shù)繪圖從plot x^2到Plot3D解方程符號計(jì)算、參數(shù)方程與方程組解不等式用Reduce[]求解不等式組矩陣代數(shù)行列式、特征值、逆矩陣與 Jordan 標(biāo)準(zhǔn)形級數(shù)與求和Sum[]與Product[]求導(dǎo)一元、高階、偏導(dǎo)與向量微積分計(jì)算積分定積分、不定積分與數(shù)值積分求極限單側(cè)極限與一個 π/2 的證明雜項(xiàng)素數(shù)判定與第 n 個素數(shù)把 WolframAlpha 嵌入 Virgilio 的數(shù)據(jù)科學(xué)學(xué)習(xí)路徑WolframAlpha 是什么從能回答問題到能算數(shù)學(xué)WolframAlpha通??s寫為 WA是一個計(jì)算知識引擎computational knowledge engine。說得直白一點(diǎn)它是一個可以直接回答你的問題的平臺——它最著名的能力集中在數(shù)學(xué)領(lǐng)域是一臺非常強(qiáng)大的計(jì)算輔助工具。在 Virgilio 的學(xué)習(xí)體系中這篇指南被收錄在進(jìn)階區(qū)Inferno的Tools工具專區(qū)對應(yīng)倉庫文件 content/inferno/tools/wolfram-alpha.md與 GeoGebra、LaTeX 等工具指南并列見 content/inferno/welcome-to-inferno/welcome-to-inferno.md 中關(guān)于 Inferno 結(jié)構(gòu)Tools工具或庫專項(xiàng)指南的說明。它面向的典型場景是當(dāng)你學(xué)習(xí) content/purgatorio/fundamentals/math-fundamentals.md 中列出的微積分、線性代數(shù)與矩陣代數(shù)時需要一個能隨時驗(yàn)證計(jì)算結(jié)果的工具——WolframAlpha 恰好填補(bǔ)這個位置。訪問途徑在線網(wǎng)頁與本地 MathematicaWolframAlpha 的知識引擎有兩種主要訪問方式在線網(wǎng)頁直接通過 wolframalpha.com 訪問免費(fèi)、無需安裝輸入查詢即得結(jié)果適合日??焖儆?jì)算。本地桌面端 Mathematica如果你所在的高校、研究中心或公司提供了許可證可以安裝 Wolfram Mathematica。官方將其描述為一個覆蓋技術(shù)計(jì)算大多數(shù)領(lǐng)域的現(xiàn)代技術(shù)計(jì)算系統(tǒng)——包括神經(jīng)網(wǎng)絡(luò)、機(jī)器學(xué)習(xí)、圖像處理、幾何、數(shù)據(jù)科學(xué)、可視化等。兩種方式共享同一套查詢語法且 WolframAlpha 支持 Mathematica 語言的一個子集因此下面絕大多數(shù)示例在兩者中均可直接使用。上手三件事可分享的查詢鏈接、寬松語法與分步解答在正式學(xué)習(xí)各類計(jì)算之前先掌握三個影響使用體驗(yàn)的關(guān)鍵事實(shí)第一每一次查詢都會生成一個可分享的鏈接。你在 WA 中輸入的任何內(nèi)容都會對應(yīng)一個查詢 URL你可以把這個鏈接發(fā)給別人對方打開就能看到你問了什么 WA 回答了什么。原文檔舉了一個例子查詢美國現(xiàn)任總統(tǒng)是誰即可通過鏈接分享。同理查詢What is the 345th decimal place of piπ 的第 345 位小數(shù)也會生成對應(yīng)鏈接答案是5。倉庫佐證該數(shù)值可以在倉庫內(nèi) Tools/regex-bin/pi.txt 提供的 π 小數(shù)位數(shù)據(jù)中實(shí)際驗(yàn)證——這份文件以純文本形式存放了數(shù)十萬位 π 的小數(shù)展開是倉庫中配合正則表達(dá)式工具使用的真實(shí)數(shù)據(jù)樣本。按該文件第 345 位小數(shù)核對結(jié)果正是 5與原文檔一致。第二查詢語法很寬松。你不需要遵循嚴(yán)格的語法就能向 WA 提問用自然語言直接描述即可當(dāng)然語法越規(guī)范、越貼近 WA 的解析習(xí)慣結(jié)果越穩(wěn)定。第三前綴開啟分步解答需要 Mathematica。如果你擁有 Mathematica 環(huán)境在命令前加上就可以獲得極限、積分、導(dǎo)數(shù)等問題僅舉幾例的逐步求解過程——這是用 WA 輔助學(xué)習(xí)微積分時最實(shí)用的功能之一。另外需要特別記住的語法規(guī)則是Mathematica 語言用方括號[]表示函數(shù)調(diào)用而非其他語言的圓括號()且所有函數(shù)名首字母大寫。例如平方根寫作Sqrt[n]而許多編程語言中通常寫作sqrt(n)?;A(chǔ)計(jì)算把 WA 當(dāng)成一個高級計(jì)算器WolframAlpha 首先是一個功能強(qiáng)大的計(jì)算器。輸入2^100立即得到精確的大整數(shù)結(jié)果2^100 1267650600228229401496703205376常用運(yùn)算符與函數(shù)速查表如下均為 WA 直接支持的語法運(yùn)算寫法等價 Mathematica 寫法加 / 減 / 乘 / 除/-/*//同左冪運(yùn)算x^yPower[x, y]取余模運(yùn)算x mod mMod[x, y]平方根 / n 次方根Sqrt[x]/Root[x, n]同左階乘n!Factorial[n]對數(shù) / 指數(shù)函數(shù)Log[x]/Exp[x]同左三角函數(shù)Tan[x]、Sin[x]、ArcCos[x]等同左幾個值得注意的細(xì)節(jié)n 次方根8 的立方根輸入Root[8, 3]即可得到 2。三角函數(shù)命名名稱與數(shù)學(xué)慣例一致但首字母大寫正切、正弦、反余弦分別寫作Tan[x]、Sin[x]、ArcCos[x]。函數(shù)繪圖從plot x^2到Plot3DWA 支持多種繪圖方式。最基本的是一元實(shí)函數(shù)圖像輸入plot x^2或plot Power[x, 2]即可繪制拋物線。自定義自變量范圍當(dāng)你不想要 WA 默認(rèn)的繪圖區(qū)間時追加范圍說明即可plot x^2 from -5 to 1這會把繪圖區(qū)間從默認(rèn)改為 [-5, 1]。從自然語言過渡到 Mathematica 語法簡單繪圖用自然語言足夠但復(fù)雜繪圖更適合 Mathematica 語法。上面的查詢等價于Plot[x^2, {x, -5, 1}]其中Plot[]表示要繪圖第一個參數(shù)x^2是要繪制的函數(shù)第二個參數(shù){x, -5, 1}是一個列表Mathematica 中用{}表示列表依次為變量名、左端點(diǎn)、右端點(diǎn)。一次繪制多個函數(shù)把函數(shù)放進(jìn)一個列表作為第一個參數(shù)Plot[ {x^2, x^3, x^4}, {x, 1, 5} ]這會在區(qū)間 [1, 5] 上一次繪制三個多項(xiàng)式。二元函數(shù)的三維曲面使用Plot3D為每個變量各給一個范圍Plot3D[x^2 y^2 x*y, {x, -2, 2}, {y, -2, 0}]即繪制函數(shù)x^2 y^2 xy其中 x 在 -2 到 2 之間、y 在 -2 到 0 之間變化。解方程符號計(jì)算、參數(shù)方程與方程組解方程是 WA 最省心的功能之一。自然語言直接輸入solve x^2 x - 1 0 for x等價于 Mathematica 寫法Solve[x^2 x - 1 0, x]注意等號要寫成雙等號表示數(shù)學(xué)上的相等關(guān)系單等號是賦值。符號計(jì)算與參數(shù)方程WA 與 Mathematica 的招牌能力是符號計(jì)算——方程中可以帶有參數(shù)或其他未知量WA 會給出用參數(shù)表達(dá)的答案。例如求一元四次多項(xiàng)式方程的通解公式Solve[x^4 b*x^3 c*x^2 d*x e 0, x]會返回一套相當(dāng)猙獰的公式。非多項(xiàng)式方程同樣支持方程不必是多項(xiàng)式例如Solve[Log[x] Exp[x] 1, x]會給出滿足Log[x] Exp[x] 1的 x 的值。求解方程組與Plot[]傳函數(shù)列表類似Solve[]接受方程列表作為第一個參數(shù)。例如求解Log[x] y 1與Log[x] Log[y] 2組成的方程組Solve[ {Log[x] y 1, Log[y] Log[x] 2}, {x,y} ]這里有兩個極易踩坑的要點(diǎn)答案中可能出現(xiàn)陌生函數(shù)。WA 的結(jié)果里包含函數(shù)W大多數(shù)人沒見過WA 會在結(jié)果右側(cè)用小字標(biāo)注每個成分的含義——此處會注明W(z) 是乘積對數(shù)函數(shù)product log function據(jù)此再去搜索學(xué)習(xí)即可。這也是 WA 輔助自學(xué)的典型模式它給出的提示本身就是學(xué)習(xí)的起點(diǎn)。第二個參數(shù)必須列出全部變量。上面的查詢第二個參數(shù)寫的是{x,y}而不是x如果只寫xWA 求解的將是另一個完全不同的問題Solve[ {Log[x] y 1, Log[y] Log[x] 2}, x ]結(jié)果會因?yàn)槲粗獢?shù)個數(shù)與方程個數(shù)不匹配而偏離預(yù)期。解不等式用Reduce[]求解不等式組求解不等式的方式與方程類似只是改用函數(shù)Reduce[]。例如求解由x y 3與x y 0組成的不等式組Reduce[{x y 0, x y 3}, {x,y}]Reduce[]與Solve[]的差別在于Solve傾向于給出解集的具體表達(dá)式而Reduce會給出保持等價關(guān)系的、通常更完整的條件描述適合處理不等式與邏輯條件。矩陣代數(shù)行列式、特征值、逆矩陣與 Jordan 標(biāo)準(zhǔn)形矩陣計(jì)算是大學(xué)課程與數(shù)據(jù)科學(xué)中的高頻需求驗(yàn)證行列式、求特征值與特征向量、求逆矩陣。WA 對此有完整支持。矩陣的表示方式在 WA 中矩陣是列表的列表——外層列表收集所有行內(nèi)層列表是每一行的元素。例如 2 階單位矩陣寫作{ {1, 0}, {0, 1} }只輸入矩陣本身WA 就會自動返回關(guān)于該矩陣的大量信息行列式、跡、秩、特征值、逆矩陣等。行列式與跡Det[{ {a, b}, {c, d} }] 一般 2×2 矩陣的行列式 Trace[{ {a, b}, {c, d} }] 該矩陣的跡逆矩陣Inverse[{ {a, b}, {c, d} }]特征值與特征向量Eigenvalues[{ {a, b}, {c, d} }] Eigenvectors[{ {a, b}, {c, d} }]通常求其中一個WA 也會順便給出另一個。數(shù)值矩陣同樣適用。上面的例子用符號參數(shù) a、b、c、d 展示了符號計(jì)算能力換成具體數(shù)字完全沒問題。例如計(jì)算一個 5×5 矩陣的特征值Eigenvalues[{ {1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20},{21,22,23,24,25} }]結(jié)果是0, 0, 0, -3.642, 68.64前三個特征值為 0后兩個為近似值。矩陣對角化與 Jordan 標(biāo)準(zhǔn)形對大學(xué)課程更有用的是 WA 的矩陣分解能力JordanDecomposition[{ {1, 2}, {0, 3} }]它會同時給出相似變換矩陣與原矩陣的對角/Jordan 標(biāo)準(zhǔn)形。級數(shù)與求和Sum[]與Product[]求和與級數(shù)是 WA 的強(qiáng)項(xiàng)無論上限是具體數(shù)還是符號。一個經(jīng)典例子記不住幾何級數(shù)前 n 項(xiàng)和公式時直接輸入sum x^i with i from 0 to nWA 會給出那個總是記不住的公式。等價地用 Mathematica 語法函數(shù)Sum[]第一個參數(shù)是求和表達(dá)式第二個參數(shù)是啞變量的范圍Sum[x^i, {i, 0, n}]有限和例如前 20 個階乘之和Sum[Factorial[n], {n, 1, 20}]結(jié)果是2561327494111820313。無窮級數(shù)把啞變量上限換成infty即表示無窮級數(shù)。例如Sum[1/n, {n, 1, infty}]WA 會告訴你經(jīng)典的結(jié)論——調(diào)和級數(shù)發(fā)散。而Sum[1/n^2, {n, 1, infty}]給出著名結(jié)果pi^2/6巴塞爾問題。有限/無窮乘積乘積與求和用法一致只是改用函數(shù)Product[]。一個與 π 相關(guān)的經(jīng)典乘積是 Wallis 型公式取前 100 項(xiàng)已經(jīng)非常接近 π/2Product[(4i^2)/((2i-1)*(2i1)), {i, 1, 100}]該結(jié)果逼近Pi/2這一例子的深入驗(yàn)證見下文求極限一節(jié)。求導(dǎo)一元、高階、偏導(dǎo)與向量微積分求導(dǎo)可以很繁瑣WA 讓這件事幾乎零成本。自然語言寫法differentiate cos(sin(x)) wrt x等價的 Mathematica 寫法用函數(shù)D[]D 代表 differentiate/derivativeD[Cos[Sin[x]], x]第一個參數(shù)是要微分的函數(shù)第二個參數(shù)是求導(dǎo)的變量。高階導(dǎo)數(shù)指定變量與階數(shù)即可。例如求x^5的 5 階導(dǎo)數(shù)D[x^5, {x, 5}]多元函數(shù)偏導(dǎo)WA 與 Mathematica 會把除指定變量外的一切都當(dāng)作常數(shù)處理。例如D[x^2 y^2, x]立即得到2x?;旌掀珜?dǎo)把函數(shù)放在第一個參數(shù)然后按順序列出所有求導(dǎo)變量D[f[a,b,c], a, b, c]即對 f 依次關(guān)于 a、b、c 求混合偏導(dǎo)。注意這里 WA 返回的是符號表達(dá)式f 是泛函數(shù)——這意味著我們還能讓 WA 演示微分法則。例如對乘積f(x)g(x)求導(dǎo)D[f[x] * g[x], x]得到乘積法則(fg) fg fg。向量微積分以三元函數(shù)f(x, y, z)為例變量個數(shù)可隨意增減運(yùn)算WA 自然語言Mathematica 寫法梯度gradient f[x,y,z]D[f[x,y,z], { {x,y,z} }]散度對向量函數(shù) (f1, f2, f3)divergence {f1[x,y,z], f2[x,y,z], f3[x,y,z]}Div[{f1[x, y, z], f2[x, y, z], f3[x, y, z]}, {x, y, z}]旋度把divergence換成curl用Curl[]代替Div[]拉普拉斯算子laplacian f[x,y,z]Laplacian[f[x, y, z], {x, y, z}]應(yīng)用提示梯度、散度、旋度與拉普拉斯算子正是機(jī)器學(xué)習(xí)優(yōu)化理論如梯度下降與數(shù)據(jù)科學(xué)數(shù)學(xué)基礎(chǔ)見 content/purgatorio/fundamentals/math-fundamentals.md 中微積分與優(yōu)化章節(jié)中的核心概念WA 可作為隨堂驗(yàn)算工具。計(jì)算積分定積分、不定積分與數(shù)值積分原文檔在這里開了一個小玩笑很不幸用 WolframAlpha 算積分非常困難……當(dāng)然不是——積分在 WA 里和別的一切一樣簡單直接輸入即可。例如integrate exp(-x^2) with x from 0 to infinityMathematica 寫法Integrate[ Exp[-x^2], {x, 0, infty}]積分變量可以是任意字母上下限可以自由修改也可以包含正負(fù)無窮。不定積分原函數(shù)省略變量的上下限即可。例如求cos(sin(x))tan(x)的一個原函數(shù)Integrate[Cos[Sin[x]]Tan[x], x]會得到一個很長的答案。有時 WA 找不到原函數(shù)它會明確告訴你這一點(diǎn)。數(shù)值積分如果只需要精確的數(shù)值結(jié)果、不需要精確表達(dá)式WA 會盡可能給出精確答案可以顯式使用NIntegrate[]替代Integrate[]NIntegrate[Cos[1/x Pi/2]^5, {x,1,infty}]關(guān)于對答案的最后提醒如果用 WA/Mathematica 核對你的不定積分結(jié)果請記住一個函數(shù)可能不止一個原函數(shù)。如果你求函數(shù) h 的原函數(shù)得到 f而 WA 得到的是另一個函數(shù) g這并不一定意味著你算錯了——把你的 f 求導(dǎo)驗(yàn)證一下如果導(dǎo)數(shù)確實(shí)是 h那就是對的。求極限單側(cè)極限與一個 π/2 的證明求極限同樣自然。自然語言limit of 1/x as x goes to -inftyMathematica 函數(shù)Limit[]與其他函數(shù)結(jié)構(gòu)一致第一個參數(shù)是表達(dá)式第二個參數(shù)是變量唯一需要注意的是告訴 WA變量趨近于哪里的寫法Limit[1/x, x - -infty]單側(cè)極限經(jīng)常需要指定變量從哪一側(cè)趨近。例如1/x在 x → 0 時的極限會因趨近方向不同而變化可以實(shí)際驗(yàn)證Limit[1/x, x - 0^] 從右側(cè)趨近 0結(jié)果為 ∞ Limit[1/x, x - 0^-] 從左側(cè)趨近 0結(jié)果為 -∞這里的上標(biāo)記號0^與0^-正是用來指定趨近方向的。用一個完整案例串起級數(shù)與極限在級數(shù)與求和一節(jié)提到的 Wallis 型乘積取其無窮形式Product[(4i^2)/((2i-1)*(2i1)), {i, 1, infty}]WA 其實(shí)給不出它的精確值而是退而求其次給出取前 5 項(xiàng)的數(shù)值并給出前 n 項(xiàng)的閉式Product[(4i^2)/((2i-1)*(2i1)), {i, 1, n}]于是可以把閉式放進(jìn)Limit[]讓 n 趨于無窮來證明該乘積確實(shí)收斂到 π/2Limit[(Pi Gamma[1 n]^2)/(2 Gamma[1/2 n] Gamma[3/2 n]), n - infty]結(jié)果正是pi/2。這個例子展示了 WA 典型的工作流先讓引擎給出閉式再用極限工具驗(yàn)證猜想——這也是做數(shù)學(xué)研究時的標(biāo)準(zhǔn)姿勢。雜項(xiàng)素數(shù)判定與第 n 個素數(shù)素數(shù)判定用PrimeQ[]PrimeQ[4234523457]結(jié)論4234523457 不是素數(shù)因?yàn)?234523457 3×53×97×463×593WA 會直接給出這個分解。第 n 個素數(shù)用Prime[]Prime[4234523457]WA 告訴你第 4234523457 個素數(shù)是102951556637。把 WolframAlpha 嵌入 Virgilio 的數(shù)據(jù)科學(xué)學(xué)習(xí)路徑在 Virgilio 的倉庫結(jié)構(gòu)中這篇指南屬于進(jìn)階區(qū) Inferno 的 Tools 專區(qū)content/inferno/tools/wolfram-alpha.md其定位是工具或庫專項(xiàng)指南見 content/inferno/welcome-to-inferno/welcome-to-inferno.md。它可以與倉庫中以下資源形成完整的學(xué)習(xí)閉環(huán)數(shù)學(xué)基礎(chǔ)學(xué)習(xí)路徑content/purgatorio/fundamentals/math-fundamentals.md及早期版本 Topics/math-fundamentals.md規(guī)劃了微積分、線性代數(shù)與矩陣代數(shù)、優(yōu)化三條主線——本文覆蓋的求導(dǎo)、積分、極限、矩陣特征值、行列式、梯度等內(nèi)容正是這些主線中最需要反復(fù)練習(xí)與驗(yàn)算的部分。同區(qū)工具指南Tools 專區(qū)還收錄了 GeoGebraTools/GeoGebra.md、content/inferno/tools/geo-gebra.md與 LaTeXTools/Latex.md、content/inferno/tools/latex.md。GeoGebra 適合動態(tài)可視化的幾何探索WolframAlpha 適合符號計(jì)算與快速驗(yàn)算兩者互補(bǔ)。倉庫內(nèi)可驗(yàn)證的數(shù)據(jù)樣本本文開頭驗(yàn)證的 π 第 345 位小數(shù)可直接用 Tools/regex-bin/pi.txt 中的數(shù)據(jù)復(fù)核Tools/regex-bin/regexPrinter.py 則展示了如何在 Python 中程序化處理這類文本數(shù)據(jù)。進(jìn)階應(yīng)用示例倉庫的計(jì)算機(jī)視覺 Notebook如 content/inferno/computer-vision/Object_detection_based_on_Deep_Learning.ipynb中反復(fù)出現(xiàn)的矩陣運(yùn)算與優(yōu)化思想都可以先用 WA 驗(yàn)證局部數(shù)學(xué)結(jié)論再落地為代碼??偨Y(jié)WolframAlpha 的本質(zhì)是一個能回答數(shù)學(xué)問題的計(jì)算知識引擎。掌握它需要記住三件事函數(shù)用方括號、函數(shù)名首字母大寫、等號寫雙等號Mathematica 語法子集自然語言與 Mathematica 語法兩套表達(dá)方式按復(fù)雜度取舍遇到不認(rèn)識的答案成分如乘積對數(shù)函數(shù) W、Gamma 函數(shù)時WA 的注解本身就是學(xué)習(xí)線索。從2^100這樣的基礎(chǔ)運(yùn)算到Plot3D的三維繪圖、Solve/Reduce的符號方程與不等式、Det/Eigenvalues/JordanDecomposition的矩陣代數(shù)、Sum/Product的級數(shù)、D/Integrate/Limit的微積分再到PrimeQ/Prime的數(shù)論雜項(xiàng)——這份速查涵蓋了數(shù)據(jù)科學(xué)數(shù)學(xué)基礎(chǔ)中絕大多數(shù)需要動手算一遍的場景。把它作為 Virgilio 學(xué)習(xí)路徑上的隨身影子導(dǎo)師既能快速驗(yàn)證手算結(jié)果也能在符號計(jì)算中反向理解公式的結(jié)構(gòu)。本文整理自 Virgilio 開源學(xué)習(xí)倉庫中的 Tools/WolframAlpha.md及其網(wǎng)絡(luò)版 content/inferno/tools/wolfram-alpha.md原文檔由 Mathspp 博客編輯 RojerGS 撰寫Virgilio 團(tuán)隊(duì)整理收錄?!久赓M(fèi)下載鏈接】VirgilioYour new Mentor for Data Science E-Learning.項(xiàng)目地址: https://gitcode.com/gh_mirrors/vi/Virgilio創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考