是否有任何内置API可用于解决复杂的数学问题,如集成和区分

时间:2010-09-16 16:05:51

标签: java java-api

我需要实现一个具有密集数学计算的算法。 java中是否已经支持此了?或者是否有任何第三方供应商提供此支持?

3 个答案:

答案 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