2017-04-22 18 views
0

Scala에서 Jacobian 함수와 비슷한 Jacobian을 계산할 수있는 방법/라이브러리가 numDeriv 패키지 안에 있습니까? Breeze를 사용하고 있지만 Jacobian과 관련된 내용을 찾을 수 없습니다. 아마도Jacobian in 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

당신이 스칼라에 한번 쓴 다음 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; 

} 
을 명확하게 들어

나는 스칼라에 다음과 같은 일을 할