java金融與數學

來源:互聯網
上載者:User

 

1、commons-math/commons-lang-math

以上兩個包是apache下的,前者比後者的功能強大,後者有的功能前都有,後者主要解決平時程式中的一些基本的數學計算,主要是範圍判斷(*Range),隨機數產生(JVMRandom,RandomUtils),分數處理(Fraction),數字轉化、大小判斷(NumberUtils)等。前者可以處理更複雜的資料分析(org.apache.commons.math.analysis)、複數(org.apache.commons.math.complex)、分散式處理(org.apache.commons.math.distribution)、資料預測估計(org.apache.commons.math.estimation)、分數、遺傳學(org.apache.commons.math.genetics)、幾何圖形(org.apache.commons.math.geometry)、線性代數(org.apache.commons.math.linear)、最佳化(org.apache.commons.math.optimization)、統計(org.apache.commons.math.stat),傳換(org.apache.commons.math.transform)、還有一些常用工具類(org.apache.commons.math.util)。

例子:求兩直線的交點,第一條兩個端點分別為(0,0)、(1,1),另一條兩個端點分別(1,0)、(0,1)。

思路:再條直線的交點,實際就是一個二元一次方程的解。方程的解實際可轉化為線性代數中的矩陣。如3x+y=4和x+2y=3這個二元一次方程。轉為矩陣為:

現在就可以用上麵包org.apache.commons.math.geometry的類RealMatrix計算。

代碼:

double[][] coefficientsData = { { 3, 1 }, { 1, 2 } };

RealMatrix coefficients = new RealMatrixImpl(coefficientsData);

double[] constants = { 4, 3 };

double[] solution = coefficients.solve(constants);

System.out.println("它們的交點是:x=" + solution[0] + ";y=" + solution[1]);

總結:如果要用到相應功能的(比如方差variance是在統計stat包裡),可查看對應的包中的API和官方例子怎麼用。

2、jsjava

 

這個外掛程式,幾乎用js語言重寫了apache commons lang中的功能,其實是上面commons-math的js版(jsjava-math.js),主要有

1) jsjava-core.js : include jsjava core classes

2) jsjava-ajax.js : include jsjava ajax classes

3) jsjava-anim.js : include jsjava animation classes

4) jsjava-math.js : include jsjava math classes

5) jsjava-blog.js : include jsjava blog classes

6) jsjava-comp.js : include jsjava components classes

7) jsjava-info.js : include jsjava information classes

 

 

 

3、jmathlib

JMathLib是一個用於計算複雜數學運算式並能夠圖形化顯示計算結果的Java開源類庫。它是Matlab、Octave、FreeMat、Scilab的一個複製,但完全採用純Java實現。

 

4、matlab for java

提供java介面調用matlab裡的一些方法。

 

5、jscience

Jscience 軟體包是一個強大的基於 Java 的物理和數學函數庫,它通過提供單個用於所有開發的體繫結構,旨在協助跨不同科學領域構建協同作用。主要是物理、數學、經濟3方面的協同作用。

 

6、Jama

 

主要用來解決基本線性代數中的喬萊斯基分解,特徵值與特徵向量,LU分解,矩陣列,奇異值分解

等。

 

Summary of JAMA Capabilities

Object Manipulation

constructors 
set elements 
get elements 
copy 
clone

Elementary Operations

addition 
subtraction 
multiplication 
scalar multiplication 
element-wise multiplication 
element-wise division 
unary minus 
transpose 
norm

Decompositions

Cholesky 
LU 
QR 
SVD 
symmetric eigenvalue 
nonsymmetric eigenvalue

Equation Solution

nonsingular systems 
least squares

Derived Quantities

condition number 
determinant 
rank 
inverse 
pseudoinverse

 

下面是個列子,3X3矩陣Ax=b,然後用Ax-b檢測溢出值。

double[][] array = {{1.,2.,3},{4.,5.,6.},{7.,8.,10.}};
      Matrix A = new Matrix(array);
      Matrix b = Matrix.random(3,1);
      Matrix x = A.solve(b);
      Matrix Residual = A.times(x).minus(b);
      double rnorm = Residual.normInf();

 

 

7、總結:總的來說commons-math/commons-lang-math這個是個不錯的選擇,文檔和例子都比較多。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.