mprausa/epsilon

epsilon-prepare failed in this case

Closed this issue · 4 comments

Dear epsilon supporter,

I got a problem when using epsilon-prepare to transform a matrix in Mathematica format, I got a message like this one: "singularity is not a number. @ (10,4)", could you give a test on my case please?

PS: I have attached the matrix in Mathematica format in the attachment. (I gzip the file since it is not allowed to upload a .m file on the website.)

Thanks very much!
Feng
mat.m.gz

vsht commented

Hi Feng,

as you know, I'm not a developer of this package, but I think the problem you are facing is due to the presence of terms like 1/(s + 2 x - 8) which may give a different singularity depending on the value of s, which epsilon obviously cannot know. So it refuses to handle such terms. We can isolate the problem like this

mat = Get["mat.m"];
Put[mat[[10 ;; 10]], "mat2.m"]

and applying epsilon-prepare to mat2.m shows that problem comes from mat[[10]][[4]], which is
-((2 (-2 + 3 ep))/(-8 + s + 2 x))

If we multiply the whole matrix with (s + 2 x - 8)

Map[Factor[(s + 2 x - 8)*#] &, mat];
Put[%, "mat2.m"]

the problem reappears in the matrix element mat[[11]][[3]] which is proportional to (-16 s + s^2 + 4 x + 2 s x)

Doing

Map[Factor[(-16 s + s^2 + 4 x + 2 s x)(s + 2 x - 8)*#] &, mat];
Put[%, "mat2.m"]

finally leaves us

polynomials of degree 4 unsupported. @ (19,1)

So far my attempt to understand the problem. It seems that Fuchsia can deal with multivariate dependence of the matrices, cf. this discussion of the developers

gituliar/fuchsia#11

Perhaps the author of epsilon could also comment on this, as he definitely has more experience with differential equations than me.

Cheers,
Vladyslav

Hi Vladyslav,

Thanks very much for the helpful comments, I am going to have a try with your suggestions.

And I also tried Fuchsia, but it was running for such a long time to give a fuchsified result,
maybe the DE matrix is too large, and jordan_decomposition seems taking much longer time.

Anyway, Thanks again!

Best regards!
Feng

Hi,

sorry for the late response for this issue.

Vladyslav is right that epsilon-prepare can not deal with singularities at non-numeric positions.
Epsilon was designed to handle two-scale problems, i.e. with only one dimensionless kinematic variable.

In principle epsilon might do its job even if the system has singularities at symbolic positions. One can use the option --symbols to add additional symbols to the Fermat computer algebra system. But note that this is highly experimental and was never tested. Unfortunately, in that case epsilon-prepare can not be used to generate the input files and this has to be done by other means (It sould not be too hard to write a Mathematica code to produce working input files).

Best,
Mario

Dear Mario,

Thanks very much for your reply, I will have a try on your suggestions.

Currently, I am using DESS developed by Smirnov etc. , and I just need the DE matrix
to be fuchsified only at x=0 (the singular point), so I am trying to write a small code
for this purpose according to Lee's Algorithm 1, and to reduce running time on matrix operations,
I use the Fermat intensively, now I can get the fuchsified result at tolerable time.

Anyway, Thanks again!

Best regards!
Feng