Numerically Solving a System of Differential Equations in Parallel?

Hello,
If I have a system of coupled differential equations:
dx1dt = f1(x1,x2)
dx2dt = f2(x1,x2)
Is there a way to solve this system of differential equations in parallel? (I'm thinking something like one function computes dx1dt and another function computes dx2dt and the two functions communicate with each other in order to share x1 and x2 after each time step.)
Thank you,
Kevin

Answers (2)

Kevin, check out this answer. Your x1 and x2 are the u and w variables.

5 Comments

It doesn't look to me like that answer is solving the differential equations in a parallel way. Seems to be just a regular ODE45 call.
What you are outlining in your question (parallel) are so-called coupled differential equations. x1 and x2 - or rather, their time derivatives - are functions of each other. The only way to solve these kinds of equations is by solving them, as you said, in parallel. And that's accomplished in MATLAB by using e.g. ode45.
function my_DE()
[t,X] = ode45(@EOM,[0 10],[1 1]);
x1 = X(:,1);
x2 = X(:,2);
plot(t,x1,t,x2)
grid
end
function dX = EOM(t, x)
dX = zeros(2,1);
x1 = x(1);
x2 = x(2);
dX = [x2*x1^2 - sin(x1);...
- x2 - x2*x1^3];
end
Exactly. The problem does not look like a job for any kind of parallelization. Althought it is possible, the overhead would be far to high.
What I want is for one function to compute dx1dt and another function to compute dx2dt in parallel and then the two processors communicate with each other in order to share x1 and x2 after each time step. Is something like that possible?
As Jan and I tried to point out these type of coupled numerical problems do not lend themselves for parallelization. Parallelization works best if you can send off independent jobs to e.g. different processor cores.

Sign in to comment.

as far I as know it is not possible, however, if you have to solve it multiple times, you could use paralel computing to solve the equation with different parameters multiple times .

Categories

Find more on Programming in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!