我需要实现一个具有密集数学计算的算法。 java中是否已经支持此了?或者是否有任何第三方供应商提供此支持?
答案 0 :(得分:5)
JavaCalc可能与您的需求相关
目标
该项目的主要目标是为Java开发一个符号库,它可以处理常规的代数表达式以及标准的微积分函数。具体来说,图书馆应该支持:•从字符串中解析标准代数表达式(语法树) •简化代数表达式(因子分解,公分母,三角恒等) •将符号标准微积分函数(微分,积分)应用于代数表达式 •常用微积分工具(泰勒级数,极限,数值近似) •绘图工具(使用摆动)。
•如果时间允许,则支持微分方程(符号求解器,欧拉近似,拉普拉斯变换)。
答案 1 :(得分:1)
没有内置功能可以满足这些需求,但您可以检查像commons-math这样的库
我希望这会有所帮助。
答案 2 :(得分:0)
如果您有一个Web应用程序并希望通过HTTP提供REST API,请查看SaturnAPI。您可以编写自己的Matlab和Octave脚本并在那里托管它。然后,从您的Web应用程序,您可以使用输入数据生成简单的HTTP POST请求来执行脚本。然后,您可以检索HTTP响应数据作为脚本输出。 Below is an example of integration你可以分叉。您还可以在线搜索符合您需求的Matlab和Octave示例,并在SaturnAPI上使用它。
%%%%%%%%%%%%%%%%%%%%%%%%%% Integrating Differential Equations %%%%%%%%%%%%%%%%%%%%%%%%%%
% (GNU License)
% SaturnAPI has built-in functions for solving nonlinear differential equations of the form
%
% dx
% -- = f (x, t)
% dt
%
% with the initial condition
%
% x(t = t0) = x0
%
% For SaturnAPI to integrate equations of this form,
% you must first provide a definition of the function f(x,t).
% Do this by entering the function body directly in the API script.
% The example script below defines the right-hand side function xdot
% for an interesting pair of nonlinear differential equations.
% It computes the integral and prints the last term to be sent as the HTTP response data.
% SaturnParams is an array containing the initial condition
% For instance, SaturnParams='[1 ; 2]'
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function xdot = f (x, t)
r = 0.25;
k = 1.4;
a = 1.5;
b = 0.16;
c = 0.9;
d = 0.8;
xdot(1) = r*x(1)*(1 - x(1)/k) - a*x(1)*x(2)/(1 + b*x(1));
xdot(2) = c*a*x(1)*x(2)/(1 + b*x(1)) - d*x(2);
endfunction
x0 = SaturnParams;
t = linspace (0, 50, 200)';
x = lsode ("f", x0, t);
printf("%f", x(length(x)));
披露:我参与了SaturnAPI