在Scala中有没有一种方法/库来计算雅可比,类似于R中numDeriv包中的雅可比函数?我正在使用Breeze,但我无法在其中找到任何与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) 发布于 2017-06-12 16:03:04
也许您可以将我曾经编写的以下Java代码转换为Scala:
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;
}https://stackoverflow.com/questions/43559128
复制相似问题