研究數值分析的真正用途是什麼?從長遠來說,有必要研究數值分析嗎?
好老的一個問題,現在怎麼又冒出來了。。。。
數值分析正常理解是關於數值微分與數值積分,非線性方程與線性方程組的數值解法等相關知識的,不知道你是否說的是這些東西,為什麼放到「互聯網數據分析」中去呢?姑且認為你說的數值分析和我理解的數值分析是一回事吧。
簡單的說,在計算機計算能力不斷提高的今天,我們在解很多線性方程組和非線性方程組的時候沒必要再向過去那樣苦逼的一步步推公式來求通解或者特解了,可能那種解很精確,也很完美,但也是在做了很多問題簡化後才得到的,現在很多工程問題異常複雜,不是簡單幾個公式能夠描述清楚的,不同變數相互影響,用過去的方法很難得到正確的解,而數值分析方法由於計算資源的廉價而得到廣泛應用。
簡單的拿高斯積分做說明,如果f(x)在-1到1之間積分,數值積分則可以用f(x)的若干個採樣點的值乘以一個權值來近似,如下公式:
當採樣點數目(n)逐漸增多時,結果也就越趨向精確解,我們只要取一定數目的採樣點,就能保證精度的前提下得到方程的數值解。
至於數值分析的用途,拿汽車碰撞為例:
汽車在正式投產時都要進行安全能力測試,並對汽車安全能力進行評級,每個國家都有自己的評價標準。
中國NCAP國標100%剛性牆碰撞要求如下
1, 假人頭部性能指標(HPC)應小於或等於1000
2, 胸部性能指標應小於75mm
3, 大腿性能指標FPC應小於或等於10kN
4, 實驗過程中車門不得開啟
5, …
6, ..
每項指標都影響著汽車的安全性能,所以如何設計汽車,如何保證汽車的吸能材料充分應用是個技術活。
汽車碰撞是件耗時又耗錢的活,每種型號的車要經過n輪不同碰撞,需要以更少的實驗次數得到更好的安全性能。
最早時,人們研究汽車碰撞時都是用下面的簡化模型的:
看到沒,這就是在我們高中時虐待我們千百次物理課上的小車,現在又出來了。。。。。通過這個簡單模型是可以得到速度加速度等變數的精確解的(不會的話還是再看看你物理卷子,應該有類似的題),可以從宏觀上給設計一定指導,但是更細節的信息就不得而知了。計算機的普及使大規模問題的數值計算成為可能,碰撞問題中CAE方法得到了大量應用。通過有限元方法(通過數值分析方法求解偏微分方程)我們可以對整個物理模型進行離散,在計算機中模擬整個碰撞過程,找到容易出問題的地方,然後在不斷的優化原有cad模型,從而達到標準要求。
下圖為整車與假人的有限元模型示意圖。
碰撞動畫鏈接
http://img1.imgtn.bdimg.com/it/u=3921712208,359142275fm=21gp=0.jpg
數值分析在分析中的作用如下圖所示
同樣,在航空航天,生物醫藥等領域中數值分析方法也大量存在,數值分析也解決了大量其他方法無法解決的問題,將來應用只會越來越廣泛,研究數值分析當然有必要。。。
數值分析是用數值的方法來解決工程問題,更多的時候,說得通俗點,就是用編程來求解各種線性的,或者非線性的,常微/偏微分/積分的 ,方程/方程組。我不是學計算機的,但是我們搞數值計算,就是要用到數值分析。除了學數學的,還有很多比如研究物理,力學,流動和傳熱等很多領域的人在致力於各種數值演算法的研究,不過好像很少有學計算機的專門研究這個吧。。。
數值分析,作者問的是不是數據分析?
數值分析一般是多指遊戲行業 或者 電商行業的 商品價格 對用戶的影響,遊戲行業除對玩家影響外,還指對整個產品的平衡和發展的影響。
若是數據分析,對一個普通程序員而言,作用不是特別大,若是你想成為架構師,可能會幫你積累更多有用的價值和經驗,以及對業務的理解!
數值分析的用途就是解方程。在很多領域裡面,為了解決問題要列很複雜的方程,但是不是任何方程都能有解析解的。數值分析的任務就是找到誤差在一定範圍以內的數值解。數值分析基本上來說還是算數學問題而不是編程問題,學計算機的對數值分析了解不深很正常。
舉個很簡單的例子,你敢坐飛機吧?那證明你相信了數值計算在實際中的應用,偏微分方程數值解是設計飛機空氣動力學裡面非常重要的一個環節
======================================================================
一句話,非常有用。舉一個例子,現在很流行的machine learning或者big data裡面會涉及到很多矩陣的運作,比如求特徵值,做奇異值分解和最小二乘,這些矩陣運算就是數值分析很重要的一個分支,這個方向的發展對machine learning以及統計方面最基礎演算法的發展就有著很重要的作用
但是非數學統計背景的人也不需要對其原理了解太多,最先進完備的演算法都以包含在matlab或者其他如Python之類的開源library裡面了,大家只需了解其用法以及何時使用就好問題的核心在於:我們純數學之中的數域可以完備化成實數域;但是在數值計算之中,浮點數域在計算機的存儲之中不可能是完備化的。
故,在浮點數域沒有被完備化之前,很有必要研究數值分析。
其實答案很簡單,計算機是如何計算sin2的?如何計算ln5的?我們覺得計算機計算這些應該是理所當然的,小菜一碟的?其實不是這樣的,要知道,計算機本質上只能進行加法運算。
簡單地說,數值分析就是用笨方法計算複雜問題,方法雖然笨,可是計算機速度快啊。計算機依靠硬體來提升計算速度,數值分析通過演算法來提升,兩者是並行發展的。
一般來說,普通程序員是應用現成的數值分析工具,所以看不到他的作用。
在現代科學還是很重要的,理論與工程。
數值分析就是對於各種數學上的問題,當你只想知道近似解的時候,用的方法就是數值分析了。如果你說的是數值分析的話,那如果你專業對這方面的要求不高的話。沒必要研究那麼深,知道大概了解每個方法到底是什麼意思就好了。不需要去動手編程什麼的。不過我看你好像問的是數據分析???
信息爆炸時代,大數據時代,數據的深度挖掘還是大有可為,在很多領域現在還沒有大規模商業模式吧,數據為王,覺得這是一個很有前途的方向。。
很有用。。。趨勢分析。。。
WallStreet那些大佬可都是靠數學模型啊,趨勢分析啊掙錢的羅。對數據的挖掘分析,方法很多,應用也很廣。問題是除開投資模型外,其他預測模型都無法與『錢』直接發生聯繫,這導致研究熱點不多。
除非你有興趣,一般不用特別研究這個方向。很多事情,Matlab可以幫你搞定的。
推薦閱讀: