【发布时间】:2015-05-12 07:06:30
【问题描述】:
我在我的 java 应用程序中使用 Wolfram Mathematica 9.0。问题是我需要生成一个很长的表达式(比如 1.2 * (x-1) + 1.25 * (x-1.5) + ...等)作为一个函数,并且需要很长时间来构建它字符串生成器。有什么方法可以在不将其转换为 wolfram 表达式的情况下传递 java 函数?
更新
这个功能就是我要说的。它构建了 wolfram 函数表达式。通常arr长度大于100000。
public static String buildCdfExpressionForWolfram(double [] arr){
StringBuilder strBuilder = new StringBuilder();
int n = arr.length;
strBuilder.append("(");
for(int i = 0; i < n; i++){
strBuilder.append("HeavisideTheta[x");
if(arr[i] > 0) {
strBuilder.append("-");
strBuilder.append(arr[i]);
}
else if(arr[i] < 0){
strBuilder.append("+");
strBuilder.append(-arr[i]);
}
strBuilder.append("]");
if(i != n - 1){
strBuilder.append("+");
}
}
strBuilder.append(") / " + n);
return strBuilder.toString();
}
【问题讨论】:
-
“很长一段时间”有多长?
-
请说明您现在的工作方式。也许通过代码 sn-p。
-
很长的时间大约是20-30秒。问题是这段时间花在构建表达式而不是计算上,在我看来这很不合逻辑。