В настоящее время я пытаюсь вычислить ODE в java, используя математическую библиотеку apache commons (см. http://commons.apache.org/proper/commons-math/userguide/ode.html), чтобы я мог запускать функцию на hadoop. Проблема заключается в том, что в рамках моего ODE он использует комплексные числа и, похоже, не существует способа обработки сложных чисел в рамках этой структуры (как входы, так и выходы org.apache.commons.math3.ode.FirstOrderDifferentialEquations являются простыми двойными значения).java ODE с комплексными числами
Вопрос в том, есть ли другие библиотеки, которые выполняют такую задачу с комплексными числами, или есть метод, который я могу использовать для перевода реальной интеграции в сложные?
Следующие 3 ODE в коде MATLAB, где u2 является сложным.
function dy = pricing_odes(tau, y , u1 , u2 , sigma_c , kappa_g , theta , kappa_psi , sigma_cpsi , sigma_cg , phi)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
alpha = y(1,:);
beta3 = y(2,:);
beta4 = y(3,:);
beta5 = y(4,:);
beta6 = y(5,:);
beta7 = y(6,:);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% d beta5/d tau
dy(4,:) = 2 * sigma_cpsi^2 * beta5^2 + (-2*kappa_psi - 2*sigma_cpsi * u2) * beta5 ...
+ 2 * sigma_cg * sigma_cpsi * beta5 * beta7 + 0.5 * sigma_cg * beta7^2 - sigma_cg * u2 * beta7 + ...
0.5*u2*(u2-1);
% d beta6 /d tau
dy(5,:) = 2 * sigma_cg^2 * beta6^2 - 2 * kappa_g * beta6 + kappa_psi * phi * beta7 + 2 * sigma_cg * sigma_cpsi * beta6 * beta7 ...
+ 0.5 * sigma_cpsi^2 * beta7^2;
% d beta7 /d tau
dy(6,:) = sigma_cg * sigma_cpsi * beta7^2 + (-kappa_g - kappa_psi - sigma_cpsi * u2) * beta7 + ...
2 * kappa_psi * phi * beta5 + 4 * sigma_cg * sigma_cpsi * beta5 * beta6 + 2 * sigma_cpsi^2 * beta5 * beta7 + ...
2 * sigma_cg^2 * beta6 * beta7 - 2 * sigma_cg * u2 * beta6;
Являются ли эти виды ОДУ, где вы могли бы решить отдельно для реальной части и мнимой части? Или два не являются независимыми? Возможно, вы могли бы включить пример типичного ODE, который вам нужно будет решить. –
К сожалению, это уравнения риккати, которые, если я правильно понимаю, из-за их нелинейности, означает, что действительная и мнимая части зависят друг от друга. –
Я добавил последние 3 ODE, как они появляются в Matlab. переменная u2 сложна –