Error in symengine for symbolic integration

I want to calculate a symbolic integration like below:
syms z
hc=2.5e-9;
hp=1e-9;
e31=-2.2;
z1=z-hc-(hp/2);
z2=z+hc+(hp/2);
B31_1=double(int(e31*(pi/hp)*(sin(pi*z2/hp))*(z^1),'z',-hc-hp,-hc)+int(e31*(pi/hp)*(sin(pi*z1/hp))*(z^1),'z',hc,hc+hp));
But I get this error:
Error using symengine
Out of memory.
Error in sym/int (line 167)
rSym = mupadmex('symobj::intdef',f.s,x.s,a.s,b.s,options);
Note: For z^0 there is no error, but when z has power, this error appears.
What is solution for this? Thanks in advance.

4 Comments

The problem does not occur for me, even when I test in your release (R2020b)
Is it possible that you have a fairly low amount of RAM ?
@Walter Roberson I have run it with matlab 2020a, and it reports bug. Perhaps mathworks has fixed this bug. Orz
On my system, in R2020a, it does not even use as much as 1 gigabyte between MATLAB itself and the MuPAD process to do the integration. No hint of a problem at all. MacOS.
I have 4 GB RAM, and also matlab doesn't freeze to use memory. It shows error immediately. Since I prefer using "syms" instead of "@fun", I reported this problem.
Thanks for your answer.

Sign in to comment.

 Accepted Answer

This is a bug in matlab. A good way to avoid this bug is just to predefine symbols rather than use constants in the symbolic process. When symbolic formula is derived, use subs and eval function to obtain the final results.
syms z hc hp e31
z1=z-hc-(hp/2);
z2=z+hc+(hp/2);
p = e31*(pi/hp)*(sin(pi*z2/hp))*z^1;
q = e31*(pi/hp)*(sin(pi*z1/hp))*z^1;
B31_1 = int(p,z,-hc-hp,-hc)+int(q,z,hc,hc+hp)
B31_1_val = eval(subs(B31_1,[hc,hp,e31],[2.5e-9, 1e-9, -2.2]))
The result in this
B31_1 =
(4*e31*hp)/pi
B31_1_val =
-2.801126998417358e-09
Since you observed this bug, I suggest you report it to MATHWORKS. You will be really appreciated. ovo

1 Comment

Thank you so much for solution.
I think this bug is solved in newest version R2021a, so maybe there is no point for reporting this bug since it is solved.

Sign in to comment.

More Answers (0)

Products

Release

R2020b

Asked:

on 18 Aug 2021

Commented:

on 20 Aug 2021

Community Treasure Hunt

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

Start Hunting!