12 2010 檔案
摘要: 我們講到數學的計算,難免會遇到分數形式,因為實數的定義就是可以表示為一個分數的形式的數,而加入虛數的復數也是偶爾會遇到的。Commons Math包中的fraction和complex包就分別提供了方法來表示這兩種數。
閱讀全文
摘要: 概率分布是概率論的一個基礎。
在Commons Math包中也專門有一個子包對概率分布進行了封裝實現。在distribution包中,定義了一個基本接口Distribution。該接口只有兩個方法,一個是double cumulativeProbability(double x),一個是double cumulativeProbability(double x0, double x1)。前者對于服從某種分布的隨機變量X,返回P(X<=x);后者則返回P(x0<=X<=x1)。正如其名所示,這樣也就得到了概率。
閱讀全文
摘要: 函數方程求解,其實是函數的零點問題,也就是說函數的曲線與X軸的交點。對于線性方程,我們可以輕易的求解,對于線性方程組,利用前面講過的的矩陣分解方法也可以求解。那么對于函數表達的很多非線性方程的求解。我們要依賴數值算法。Commons Math包中專門有一個analysis.solver包來解決這個問題。
閱讀全文
摘要: 積分可以說是最常見的了,在函數的一節中我們講過函數的微分和給定變量求值,這里我們講講通過函數求積分,具體的數值積分方法和應用。什么是數值積分?在數值分析中,數值積分是計算定積分數值的方法和理論。在數學分析中,給定函數的定積分的計算不總是可行的。許多定積分不能用已知的積分公式得到精確值。數值積分是利用黎曼積分等數學定義,用數值逼近的方法近似計算給定的定積分值。借助于電子計算設備,數值積分可以快速而有效地計算復雜的積分。Commons Math中的積分包analysis.integration提供了幾種數值積分的實現,UnivariateRealIntegrator接口是積分包中的基礎接口,該接口繼承了math包中的ConvergingAlgorithm接口。具體定義了一系列方法,其中比較主要的有double integrate(UnivariateRealFunction f, double min, double max)方法,這個方法就是通過min和max設定積分區間,通過f設定被積函數,最后返回定積分值的方法。可以看到這個接口的實現是針對單變量實函數的。多元積分的實現,目前還沒有看
閱讀全文
摘要: 在Commons Math中的analysis.interpolation包中有所有的與函數插值相關的類和接口定義。這一篇主要從這個包分析,來研究一下函數插值的應用。在2.1的api doc中添加了很多新的接口和類實現,但是2.0的source code里還是只有少量的實現。這里以2.0的source code為標準,輔助以2.1的api doc(其實這都是不影響的)。
插值是數學領域數值分析中的通過已知的離散數據求未知數據的過程或方法。給定n個離散數據點(稱為節點)(xk,yk),k= 1,2,...,n。對于,求x所對應的y的值稱為內插。f(x)為定義在區間[a,b]上的函數。x1,x2,x3...xn為[a,b]上n個互不相同的點,G為給定的某意函數類。若G上有函數g(x)滿足: g(xi) = f(xi),k = 1,2,...n
則稱g(x)為f(x)關于節點x1,x2,x3...xn在G上的插值函數
閱讀全文
摘要: 在Commons Math中的analysis.polynomials包中有所有的與多項式函數相關的類和接口定義。這一篇主要從這個包分析,來研究一下多項式函數的應用。
閱讀全文
摘要: 向量和矩陣可以說是線性代數的代表,那么返還到高等數學中,函數就是我們最常用到的單位了,還有各種微積分和其他應用,都是建立在變量、函數的基礎上的。Commons Math庫的下一個研讀部分就是針對函數這一塊。在Commons Math中也單獨有一個analysis包完成這部分實現。
閱讀全文
摘要: 補充上一次的矩陣知識,這次主要講講矩陣的一些分解運算——Matrix Decomposition:
矩陣分解主要有三種方式:LU分解,QR分解和奇異值分解。當然在Math的linear包中提供了對應的接口有CholeskyDecomposition、EigenDecomposition、LUDecomposition、QRDecomposition和SingularValueDecomposition這5種分解方式。
閱讀全文
摘要: 今天來第二篇:矩陣——Matrix。
Math包org.apache.commons.math.linear里對矩陣的表示是有一個層次結構的。
最頂層的AnyMatrix是一個基本的interface。下面有3個sub interface:BigMatrix, FieldMatrix
, RealMatrix。而每個sub interface分別被相應的矩陣類實現。整個矩陣的層次結構也就出來了。不過其中的BigMatrix已經不用了。被Array2DRowFieldMatrix替代了。
閱讀全文