摘要:微積分微積分的課程我們也同樣是推薦和的課程。還有一個斯坦福大學(xué)的統(tǒng)計學(xué)習(xí)入門英文字幕相當(dāng)不錯。所以,除了繪制數(shù)學(xué)圖形外,學(xué)習(xí)數(shù)學(xué)就應(yīng)該完全與編程有機(jī)結(jié)合。
無論是三大數(shù)學(xué)軟件Matlab(通信、控制等工程例外)、Maple、Mathematica,還是三大統(tǒng)計軟件Spass、Stata、SAS,這些可視化的軟件本身就是編程的一個體現(xiàn),它們在一定程度上降低了我們使用數(shù)學(xué)的門檻,但另一方面它們背后的功能是可以被編程取代的,而Python在數(shù)學(xué)和數(shù)據(jù)科學(xué)領(lǐng)域的流行,也是逐漸取代這些軟件的一個過程。
在職業(yè)方面,精算師、金融工程、商業(yè)分析、數(shù)據(jù)分析師、數(shù)據(jù)挖掘、數(shù)據(jù)建模、量化工程師、算法工程師、數(shù)據(jù)產(chǎn)品經(jīng)理、數(shù)據(jù)運(yùn)營、數(shù)字營銷、大數(shù)據(jù)、游戲開發(fā)、人工智能等諸多職業(yè)崗位都對數(shù)學(xué)有要求,但是我們會發(fā)現(xiàn)這些崗位對數(shù)學(xué)的應(yīng)用都需要使用到數(shù)學(xué)軟件以及需要與編程結(jié)合,可以說我們要應(yīng)用數(shù)學(xué),天然就應(yīng)該與編程有機(jī)結(jié)合起來。而在數(shù)學(xué)、數(shù)據(jù)領(lǐng)域,由于Python編程語言的膠水性質(zhì)以及極為豐富的第三方庫,Python漸已成為學(xué)數(shù)學(xué)最值得推薦的編程語言。
用Python學(xué)數(shù)學(xué)技術(shù)專欄就嘗試如何將數(shù)學(xué)與編程有機(jī)結(jié)合起來,讓數(shù)學(xué)的學(xué)習(xí)回歸到基礎(chǔ)概念的理解和實(shí)際應(yīng)用之中去。(當(dāng)然專欄的目的主要是為數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)等的基礎(chǔ)服務(wù))
為什么數(shù)學(xué)那么難學(xué)且無用?所謂將數(shù)學(xué)與編程有機(jī)結(jié)合,一是在數(shù)學(xué)學(xué)習(xí)的方向上就以數(shù)學(xué)的實(shí)際應(yīng)用為重心;二是數(shù)學(xué)在符號上、圖形上等的表現(xiàn)形式應(yīng)該與編程語言無縫結(jié)合。
在我們學(xué)生時代的數(shù)學(xué)教學(xué)存在著諸多弊端:
一是以往的教育過于強(qiáng)調(diào)具體的計算能力,很多數(shù)學(xué)學(xué)得好的,不過是解題高手,一些極其復(fù)雜的微分方程、矩陣等還停留在筆算技巧和筆算能力上,而且對數(shù)學(xué)的應(yīng)用需要死記硬背大量復(fù)雜的數(shù)學(xué)公式,這無疑加大了數(shù)學(xué)學(xué)習(xí)的難度,也偏離了數(shù)學(xué)原本的方向;在專欄的代數(shù)符號運(yùn)算里面,我們就提到過可以借助于Sympy這種CAS工具來進(jìn)行復(fù)雜的數(shù)學(xué)運(yùn)算,從此數(shù)學(xué)公式的記憶與筆算不再是學(xué)習(xí)的重點(diǎn);
二是真正好的數(shù)學(xué)教學(xué)是應(yīng)該要復(fù)雜的數(shù)學(xué)理論知識簡化,國內(nèi)大學(xué)教程相比于國外存在很多不足之處,所以接下來我們也會推薦一些比較好的數(shù)學(xué)教程。很多人數(shù)學(xué)學(xué)不好、學(xué)不會在很大程度上也與教程對數(shù)學(xué)概念的講解有一定的關(guān)系;
三是結(jié)合Python編程是可以對一些數(shù)學(xué)的問題進(jìn)行建模的,通過編程來進(jìn)行數(shù)學(xué)建模在前面我們提到的那么多職業(yè),他們對數(shù)學(xué)的要求基礎(chǔ)大多是微積分、概率統(tǒng)計、線性代數(shù)相關(guān)的知識,只是在以往的學(xué)習(xí)里,我們看不到數(shù)學(xué)是如何應(yīng)用到這些職業(yè)里的;
四是結(jié)合Python以及一些數(shù)學(xué)軟件,我們可以做出一些動態(tài)圖形,加深大家對數(shù)學(xué)公式的理解
精選數(shù)學(xué)教程到了大學(xué)之后,線性代數(shù)、概率統(tǒng)計、微積分等數(shù)學(xué)知識的難度較中學(xué)時代更高,整個數(shù)學(xué)的畫風(fēng)變化過大,很多概念開始變得難以理解,不知道怎么突然就冒出來了,也不知道學(xué)了有什么用。關(guān)于這些,其實(shí)有一部分是我們教材的原因,國內(nèi)大學(xué)教材的編寫者沒有產(chǎn)品經(jīng)理思維,沒有切實(shí)站在學(xué)生的角度、沒有以學(xué)生為中心來寫教材。這里推薦一些公認(rèn)比較好的教材:
線性代數(shù)
關(guān)于線性代數(shù)這里我們推薦兩個教程,一個是William Gilbert Strang(威廉·吉爾伯特·斯特朗)的視頻教程麻省理工公開課:線性代數(shù),這個視頻教程有配套的教材線性代數(shù)導(dǎo)論,價格有點(diǎn)性感,不過不看書也是OK的。Strang是麻省理工MIT的教授,寫過很多經(jīng)典的數(shù)學(xué)教材。他親自傳授的這個線性代數(shù)課程也是享有盛譽(yù)。我們還可以在MIT的開放課程里查看更多關(guān)于課程的信息:MIT線性代數(shù)課程官網(wǎng)。這個課程還有配套的習(xí)題課,在網(wǎng)易云課堂上也可以看到MIT線性代數(shù)習(xí)題課
二是3Blue1Brown的線性代數(shù)的本質(zhì)。3Blue1Brown是斯坦福大學(xué)畢業(yè)的一個小哥創(chuàng)辦的Youtube頻道,擅長用直觀的方法來闡述難以理解的概念,非常推薦。
微積分
微積分的課程我們也同樣是推薦MIT和3Blue1Brown的課程。微積分在MIT分為單變量微積分和多變量微積分,而且都有配套的習(xí)題視頻,在網(wǎng)易云課堂都可以看到。
單變量微積分、單變量微積分習(xí)題課、多變量微積分、多變量微積分習(xí)題課。如果想看更多視頻內(nèi)容也可以去MIT官網(wǎng)上了解一下,單變量微積分官網(wǎng)、多變量微積分官網(wǎng)。
3Blue1Brown的微積分的本質(zhì)講的也是一如既往的好,可以在學(xué)習(xí)MIT課程前先看。
統(tǒng)計學(xué)
統(tǒng)計學(xué)是一門非常重要的知識,這里我們推薦Khan Academy可汗學(xué)院的統(tǒng)計學(xué)教程,雖然也有MIT統(tǒng)計學(xué)教程,可惜的是沒有字幕,如果你聽不懂,可以去Youtube上借助AI字幕來看,也可以去MIT統(tǒng)計學(xué)基礎(chǔ)官網(wǎng)上獲取更多資料。還有一個斯坦福大學(xué)的統(tǒng)計學(xué)習(xí)入門(英文字幕)相當(dāng)不錯。
以上教程可能有的使用的R或MATLAB,這些都是可以用Python來代替的。
有趣的數(shù)學(xué)圖形
為了加深我們對數(shù)學(xué)公式的理解,我們通常都需要輔之以一些圖形,比如函數(shù)的圖形、幾何圖形、空間圖形等。以往我們作圖都是通過在紙上手繪一些圖形,不僅麻煩,而且非常不精確,更無法讓圖形根據(jù)變量取值的變化來直觀的調(diào)整圖形。
比如下面這個公式:
$$y=x^{frac{2}{3}}+0.9sqrt{3.3-x^2}sinleft(pi x
ight)$$
為了手繪出這個圖形,我們不僅要研究這個數(shù)學(xué)公式的特性(比如最高點(diǎn)、最低點(diǎn)、拐點(diǎn)、凹凸性)、還要通過賦值的方式來確定圖形的輪廓。當(dāng)然由于賦值的有限,圖形自然是無法做到精準(zhǔn)的。這還是只有一個變量的情況下,有時我們?yōu)榱搜芯繑?shù)學(xué)公式,可能會有多個變量,比如下面的公式除了x這個變量以外,還會有變量b:
$$y=x^{frac{2}{3}}+0.9sqrt{3.3-x^2}sinleft(bpi x
ight)$$
由于公式過于復(fù)雜,學(xué)生時代數(shù)學(xué)公式的圖形繪制也花了我們大量的時間。但是圖形卻又是有必要的,因?yàn)樗梢约由钗覀儗?shù)學(xué)公式的理解。其實(shí)我們是可以借助于計算機(jī)軟件來實(shí)現(xiàn)這個公式的圖形的。
數(shù)學(xué)圖形繪制軟件
那上面這個數(shù)學(xué)公式圖形的動畫效果是怎么做的呢,可以使用Desmos或Geogebra 在線版本來繪制,雖然萬能的Wolfram Alpha( Mathematica產(chǎn)品也是該公司的)也可以做到,不過體驗(yàn)比較差還收費(fèi)。Desmos、Geogebra、Wolfram Alpha(收費(fèi))都有非常不錯的App產(chǎn)品,非常值得學(xué)習(xí)數(shù)學(xué)的朋友使用這些軟件來增進(jìn)對數(shù)學(xué)公式、概念等的理解。
Desmos、Geogebra可以通過虛擬鍵盤的方式來輸入公式,非常方便,而且公式輸入框里面的公式格式是LaTex,可以直接復(fù)制公式到VS Code的Markdown里,加上$$$$符號即可顯示,對LaTex不了解的童鞋可以閱讀本專欄用Python學(xué)數(shù)學(xué)里面的《使用Markdown輸出LaTex數(shù)學(xué)公式》。同時你也可以直接把LaTex格式的數(shù)學(xué)公式直接粘貼到Desmos、Geogebra的數(shù)學(xué)公式輸入框里面。比如把下面LaTex格式的數(shù)學(xué)公式粘貼到數(shù)學(xué)公式輸入框里面,將b作為變量:
x^{frac{2}{3}}+0.9sqrt{3.3-x^2}sinleft(bpi x ight)
Desmos、Geogebra可以給數(shù)學(xué)公式添加變量,你可以使用Slider來調(diào)整變量的值,圖形會實(shí)時繪制并展示出來,堪稱教學(xué)神器,以后再也不用手繪數(shù)學(xué)圖形啦~
其他數(shù)學(xué)相關(guān)軟件(含App)既然都已經(jīng)是互聯(lián)網(wǎng)時代了,借助于PC端在線版本的軟件以及手機(jī)端的App來學(xué)習(xí)數(shù)學(xué)是理所應(yīng)當(dāng)?shù)?,在美國等國家,這些數(shù)學(xué)軟件早已走進(jìn)了課堂(對中小學(xué)數(shù)學(xué)軟件感興趣的朋友可以自行搜索整理了解一下,這里就不介紹了)。
Symbolab:告訴你運(yùn)算步驟的數(shù)學(xué)軟件
Symbolab :這是一個高等數(shù)學(xué)計算器,支持Online版本(也有不錯的App軟件),可以用來計算一些基礎(chǔ)的代數(shù)、函數(shù)、三角、微積分等數(shù)學(xué)公式以及化學(xué)公式的運(yùn)算,它最有特色的功能是可以給出比較詳細(xì)運(yùn)算的步驟,如果你想計算下列數(shù)學(xué)公式的值:
$$int left(x^2+ax-3 ight)^2dx$$
用Symbolab來計算,除了可以得出如下結(jié)果:
$$int left(x^2+ax-3 ight)^2dx=frac{ax^4}{2}+frac{x^5}{5}-2x^3+frac{a^2x^3}{3}-3ax^2+9x+C$$
它還會把整個運(yùn)算步驟的細(xì)節(jié)也給你展示出來,非常適合學(xué)生再做數(shù)學(xué)習(xí)題時,來檢查自己運(yùn)算步驟是否錯誤,也適合老師出數(shù)學(xué)習(xí)題。
類似這樣的數(shù)學(xué)軟件還有MathPapa(整體感覺比Symbolab要差),Photomath (有手機(jī)App,除了可以拍照識別公式外,也不如Symbolab)、Mathway(也比較一般,手機(jī)App倒是不錯)。你也可以在應(yīng)用商店通過搜索“Math”來獲取其他數(shù)學(xué)App,不過它們的功能和以上所說的這些都是類似的。
Python是萬能的我們一直強(qiáng)調(diào)的是以上所述所有數(shù)學(xué)軟件都是可以被Python取代的(需要GUI圖形點(diǎn)擊操作也可以,只是比較復(fù)雜,不推薦而已),用數(shù)學(xué)軟件是很難做到與編程結(jié)合的,也無法使用到一些API將數(shù)據(jù)對接到生產(chǎn)環(huán)節(jié)里去。不能與編程結(jié)合,數(shù)學(xué)公式就是死的,不能有效將數(shù)據(jù)應(yīng)用到生產(chǎn)實(shí)踐里,數(shù)據(jù)的商業(yè)價值就大打折扣。所以,除了繪制數(shù)學(xué)圖形外,學(xué)習(xí)數(shù)學(xué)就應(yīng)該完全與編程有機(jī)結(jié)合。
那Python怎么繪制數(shù)學(xué)圖形呢?我們可以使用最常用的數(shù)據(jù)可視化庫matplotlib以及可以做代數(shù)符號運(yùn)算的Sympy來繪制數(shù)學(xué)圖形。
使用matplotlib繪制 $3x+2x-4$的數(shù)學(xué)圖形:
import numpy as np import matplotlib.pyplot as plt def graph(formula, x_range): x = np.array(x_range) y = eval(formula) plt.plot(x, y) plt.show() graph("x**3+2*x-4", range(-10, 11))
使用Sympy繪制$x^2$和$x$交叉的數(shù)學(xué)圖形:
from sympy import symbols from sympy.plotting import plot x = symbols("x") p1 = plot(x*x, show=False) p2 = plot(x, show=False) p1.append(p2[0]) p1.show()
另:使用Python的Sympy Gamma也同樣獲得解題的詳細(xì)步驟,不過使用體驗(yàn)上是沒法和Symbolab相比的
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/43808.html
摘要:在上篇文章里,為大家推薦了一些數(shù)學(xué)學(xué)習(xí)的軟件和微積分線性代數(shù)概率統(tǒng)計的學(xué)習(xí)視頻,今天再推薦一些精心挑選的經(jīng)典教材,并為大家提供電子書的下載鏈接,和視頻搭配起來一起學(xué)習(xí),效果會更好。我們要使用的以及等都包含在里面,無需額外下載。 在上篇文章里,為大家推薦了一些數(shù)學(xué)學(xué)習(xí)的軟件和微積分、線性代數(shù)、概率統(tǒng)計的學(xué)習(xí)視頻,今天再推薦一些精心挑選的經(jīng)典教材,并為大家提供電子書的下載鏈接,和視頻搭配起...
摘要:的符號運(yùn)算如果之前是學(xué)數(shù)學(xué)相關(guān)專業(yè)了解計算機(jī)代數(shù)系統(tǒng),就會對數(shù)學(xué)符號的運(yùn)算比較熟悉,而如果之前是程序員,可能會有點(diǎn)不太明白,下面我們就來了解一下。 在我們初、高中和大學(xué)近10年的學(xué)習(xí)時間里,數(shù)學(xué)一直占據(jù)著非常大的分量,但是回憶過去可以發(fā)現(xiàn),我們把大量的時間都花在反復(fù)解題、不斷運(yùn)算上,計算方法、運(yùn)算技巧、筆算能力以及數(shù)學(xué)公式的記憶仿佛成了我們學(xué)習(xí)數(shù)學(xué)的全部。這些記憶和技巧沒幾年就忘掉了,...
摘要:在這里我分享下我個人入門機(jī)器學(xué)習(xí)的經(jīng)歷,希望能對大家能有所幫助。相關(guān)學(xué)習(xí)鏈接,,入門后的體驗(yàn)在入門了機(jī)器學(xué)習(xí)之后,在實(shí)際工作中,絕大多數(shù)的情況下你并不需要去創(chuàng)造一個新的算法。 機(jī)器學(xué)習(xí)在很多眼里就是香餑餑,因?yàn)闄C(jī)器學(xué)習(xí)相關(guān)的崗位在當(dāng)前市場待遇不錯,但同時機(jī)器學(xué)習(xí)在很多人面前又是一座大山,因?yàn)榘l(fā)現(xiàn)它太難學(xué)了。在這里我分享下我個人入門機(jī)器學(xué)習(xí)的經(jīng)歷,希望能對大家能有所幫助。 PS:這篇文章...
閱讀 3471·2019-08-30 15:44
閱讀 812·2019-08-30 13:46
閱讀 2105·2019-08-30 11:05
閱讀 3348·2019-08-29 18:32
閱讀 2168·2019-08-29 13:56
閱讀 1306·2019-08-29 12:57
閱讀 772·2019-08-28 18:21
閱讀 1761·2019-08-26 12:16