2017-04-22 99 views
0

有沒有一種方法/庫來計算斯卡拉中的Jacobian類似於R中numDeriv包內的Jacobian函數?我正在使用微風,但我無法找到任何與雅可比相關的東西。Scala中的雅可比例

爲了清楚我想要做的事就像在斯卡拉如下:

install.packages("numDeriv")  
library(numDeriv) 
logistG <- function(r, p, k, t){ 
     k * p * exp(r*t)/(k + p * (exp(r*t) - 1)) 
    } 

a <- function(x, k, deltaT){ 
c(r=x[1],logistG(r=x[1], p=x[2], k, deltaT)) 
     } 

k <- 100 
p0 <- 0.1*k 
r <- 0.2 
deltaT <- 0.1 
x <- c(r, p0) 
A <- jacobian(a, x=x, k=k, deltaT=deltaT) 

回答

0

也許你可以到Scala的轉換下面的Java代碼,我曾經寫道:

public static double[][] computeJacobian(Function<double[], double[]> func, double[] x) { 

    double EPS = 1E-6; 

    double[] d1 = func.apply(x); 
    double[][] J = new double[d1.length][x.length]; 
    for (int i = 0; i < d1.length; i++) { 
     double[] vals = x.clone(); 
     vals[i] += EPS; 
     double[] d2 = func.apply(vals); 
     for (int j = 0; j < d1.length; j++) { 
      J[j][i] = ((d2[j] - d1[j])/EPS); 
     } 
    } 
    return J; 

}