Serwa

15 Reputation

One Badge

8 years, 267 days

MaplePrimes Activity


These are questions asked by Serwa

 

Hi all. I need to solve a large number of PDEs (partial differential equations) symbolically and simultaneously, to find the linearly independant answers for all of them, I use

ans := pdsolve({seq(PDE[i]=0,i=1..d)});

The PDEs are all linear first order and it is very easy to solve them one by one by hand, but in some cases I have 100 PDEs or more, so Maple is either very slow or doesn't work. For d=120, it was evaluating for hours without a result.

 

For example I have d=120 PDEs, and 200 variables. It works for d=30 of them (takes 13 minutes on my 16GB RAM  windows 7 computer). So if I do this:

ans1 := pdsolve({seq(PDE[i]=0,i=1..30)});

ans2 := pdsolve({seq(PDE[i]=0,i=31..60)});

ans3 := pdsolve({seq(PDE[i]=0,i=61..90)});

ans4 := pdsolve({seq(PDE[i]=0,i=91..120)});

Then how can I have only one vector of the linearly independent answers of all of them?

 

And in general, is Maple supposed to do this kind of calculations at all?

If yes, do you have any ideas on how to improve this procedure? 

If not, do you know in which software or programming package I can solve a large number of PDEs symbolically?

Your help is much appreciated. 

Hi all. I'm using pdsolve to find linearly independent solutions for two partial differentioal equations. I can solve them seperatly by "pdsolve", but when I try to solve them at the same time to get answers that fit in both of the eauations, I get an error message. I need to be able to solve them as a set of equations, as I have bigger examples. Here are the equations and outputs: 

PDE[1] := diff(f(theta[I], theta[A], theta[B], theta[AB]), theta[AB]);

PDE[2] := -(diff(f(theta[I], theta[A], theta[B], theta[AB]), theta[I]))+diff(f(theta[I], theta[A], theta[B], theta[AB]), theta[A])+diff(f(theta[I], theta[A], theta[B], theta[AB]), theta[B]);

pdsolve(PDE[1] = 0)  ----->  f(theta[I], theta[A], theta[B], theta[AB]) = _F1(theta[I], theta[A], theta[B])

pdsolve(PDE[2] = 0) ----->  f(theta[I], theta[A], theta[B], theta[AB]) = _F1(theta[I]+theta[A], theta[I]+theta[B], theta[AB])

pdsolve({seq(PDE[i] = 0, i = 1 .. 2)}) ---->  Error, (in PDEtools:-casesplit) too many levels of recursion

Why doesn't it produce the answer, although I know that it must be:

f(theta[I], theta[A], theta[B], theta[AB])=_F1(theta[I]+theta[A], theta[I]+theta[B])

Page 1 of 1