Error in symengine for symbolic integration
12 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Walter Roberson
il 19 Ago 2021
Modificato: Walter Roberson
il 19 Ago 2021
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.
Risposta accettata
Wan Ji
il 19 Ago 2021
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
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Calculus in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!