1. 程式人生 > >線性代數、微積分學習與回顧

線性代數、微積分學習與回顧

   大學階段,我們也修了這門課,當時就疑問這個東西有什麼用啊,對我學習程式設計有什麼好處嗎。 當時的我沒有看到它的應用範圍,也沒有做好基礎調查工作。本可以做的好一點的。在那個階段,我是無可救藥的 蠢貨,連學習C語言都感覺受挫。 為什麼我寫的程式總是編譯不過,為什麼別人都已經在老師手下做專案,為什麼? 終日惶恐不安。不過,我也不喜歡因為一個知識點有用而現在準備著,將來有可能用到, 這樣的方式是低效的。應該是我們需要什麼,就去學習什麼。所以,在那個階段,我不是個好學生。    去年做遊戲的時候,我就在一直自學圖形學的東西。用到了線性代數,所以就買了本教材Linear Algebra and its Application。據簡介,這是美國大學中廣泛採用的一本教材。講的還是很細緻的。我很喜歡這本書。我們學校的線性代數的教材是很薄的一本書,好像是學校內部編寫的,習題還有錯誤,也是服了。    最近在看一本書,《線性代數應該這樣學》(Linear Algebra Done Right), 豆瓣和知乎上都有推薦。這本書提供了另外一個角度來學習線性代數。這個角度換的好大,剛看前幾個章節,都不知為何要把概念拓展的這麼深入。看完了一遍,也是雲裡霧裡的。看來,我還是修行不夠啊。 另外,還有一本小冊子值得推薦一下,Matrix Cookbook,也很不錯。    我大學時代也並沒有深入的學習微積分,或者說,沒有發現學習它的必要性。直到14年夏,DIP的教材裡大量使用了這個基礎,CV中肯定也會大量使用的。我開始複習,到今年才真正的抽出時間認真對待之,想來,這個時候了還在學習這些基礎的東西,我也是醉了。It's better later than never. 我吭哧吭哧努力一把,興許還能有個機會。年中一直在看《古今數學思想》第二冊,是有關微積分的整個發展史的。我看著比較有意思。不難,就是講講整個發展史上做出了大的貢獻的那些數學家的事情,沒什麼壓力。學一個東西,最好先了解它的歷史。之後我才複習《微積分學教程》。我晚上回家都會抽出一兩個小時來閱讀學習,斷斷續續在三個月的時間內過了一遍。這本書的確比Thomas Calculus 深入不少,有很多的例子。我比較喜歡這種風格。我不求能有學習的多麼深入,我目前只要求自己能夠看懂書上的那些公式、大致的推導過程即可。    年初的時候,我們團隊中有一位浙大機械系的博士來兼職,做物理引擎方向的工作,偶爾看到他在推導複雜的偏微分、線性代數的方程,並用程式碼實現出來。我甚是佩服,要理論有理論基礎,要程式碼有程式碼,他是我的學習榜樣。八月來這邊指導工作的教授,很年輕,被我們稱為碼神,物理引擎程式碼被短時間重寫,用新的數學模型,程式效率蹭蹭的往上漲。數學系的master在他面前也是拜服。從他身上我看到:做事要踏實,一步一步慢慢來。積累一點是一點。好了,就這麼多。