ASKSAGE: Sage Q&A Forum - Latest question feedhttp://ask.sagemath.org/questions/Q&A Forum for SageenCopyright Sage, 2010. Some rights reserved under creative commons license.Thu, 10 Jan 2019 13:45:43 -0600Combine plots with built-in Maxima, trajectory in Sage available?http://ask.sagemath.org/question/44995/combine-plots-with-built-in-maxima-trajectory-in-sage-available/I want to combine the following plots as one output figure:
maxima('plotdf(4*y/x+x*sqrt(y),[trajectory_at,1,1],[x,0,4],[y,0,10])')
maxima('plot2d(1/4*x^4*(log(x)+2)^2,[x,0,4],[y,0,10])')
How can I achieve that? However, if there is any way to output a trajectory by Sage directly, I would be very happy. With pure Sage, I've just achieved this so far:
plot_slope_field(4*y/x+x*sqrt(y),(x,0,4),(y,0,10),headaxislength=3,headlength=3)ThrashThu, 10 Jan 2019 13:45:43 -0600http://ask.sagemath.org/question/44995/Sage could be even more clever - How to force the use of 'sympy' backend for simplifying symbolic integrals?http://ask.sagemath.org/question/43392/sage-could-be-even-more-clever-how-to-force-the-use-of-sympy-backend-for-simplifying-symbolic-integrals/Hi there,
I have noticed the following problem:
sage: f = function('f')(x)
sage: var('h')
sage: integrate(exp(h)*exp(x)*f(x),x)
integrate(e^(h + x)*f(x), x)
The workaround seems to be using the `sympy` backend for symbolic integration
sage: integrate(exp(h)*exp(x)*f(x),x,algorithm='sympy')
e^h*integrate(e^x*f(x), x)
which always seems to be a good idea as I learned from @Emmanuel Charpentier over
[here](https://ask.sagemath.org/question/43287/solved-why-does-integratepsiyfyy-return-an-error-but-integratepsityftyy-works/?answer=43297#post-id-43297).
Now I would like to force the use of `algorith='sympy'` for simplifying these `integrate(...)` expressions globally.
Unfortunately, the `simplify()` command does not allow to set this option.
sage: integrate(exp(h)*exp(x)*f(x),x)
integrate(e^(h + x)*f(x), x)
sage: _.simplify()
integrate(e^(h + x)*f(x), x)
**TL;DR** How can I force sage to pull out these type of exponential constants from the integral with the `simplify()` command?
hausdorffThu, 16 Aug 2018 11:54:20 -0500http://ask.sagemath.org/question/43392/integrate results that are different from using maximahttp://ask.sagemath.org/question/43088/integrate-results-that-are-different-from-using-maxima/Update
------
Thanks to comment below by @rburing, it turned out to be the following setting `load(abs_integrate)` which sagemath is applying before calling Maxima that is causing this problem.
Maxima 5.41.0 http://maxima.sourceforge.net
using Lisp ECL 16.1.2
(%i1) domain:complex;
(%o1) complex
(%i2) display2d : false;
(%o2) false
(%i3) integrate (x*sqrt (cos (b*x + a)), x);
(%o3) 'integrate(x*sqrt(cos(b*x+a)),x)
(%i4) load(abs_integrate);
ARRSTORE: use_fast_arrays=false; allocate a new property hash table for $INTABLE2
(%o4) "/usr/share/maxima/5.41.0/share/contrib/integration/abs_integrate.mac"
(%i5) integrate (x*sqrt (cos (b*x + a)), x);
(%o5) (((1260*(b*x+a)*sin((5*(b*x+a))/2)+504*cos((5*(b*x+a))/2)
+2100*(b*x+a)*sin((3*(b*x+a))/2)
+1400*cos((3*(b*x+a))/2))
*false
-225*sin((7*(b*x+a))/2)+315*sin((5*(b*x+a))/2)+525*sin((3*(b*x+a))/2)
-1575*sin((b*x+a)/2))
/(1575*2^(5/2))
-(a*((6*sin((5*(b*x+a))/2)+10*sin((3*(b*x+a))/2))*false
-5*sin((3*(b*x+a))/2)+15*sin((b*x+a)/2)))
/(15*2^(3/2)))
/b^2
(%i6)
Therefore the question now becomes this: How could one tell Maxima, from inside SageMath to reverse the effect of the command `load(abs_integrate)`, since this is causing wrong antiderivatives to be generated in these cases. And what is the reason SageMath selected to set these settings before calling Maxima?
Or is there a way a user can control these settings that SageMath is issuing under the cover before using Maxima integrate?
ps. I do not know where the word `false` came from in the above antiderivative. This seems like a bug in Maxima, as it does not show in SageMath result.
Original question
-----------------
Hello;
I was going to make a bug entry on this, but thought to first check with the experts here, as I have a feeling I am missing something basic or making some mistake as I am newbie in SageMath and Maxima as well.
I am getting number of wrong antiderivatives from Sagemath intergate, using default algorithm (which should be Maxima), compared to using Maxima itself for same integral.
Using Maxima (and making sure to set domain to complex first), Maxima returns unevaluated for the same command, which is actually is the correct result, since these integrals are supposed to be non integrable and meant to test to see if CAS can determine this. However, sagemath, does return an antiderivative from Maxima.
Could someone please explain how sagemath managed to return such results, and from where it obtained it since Maxima itself does not return this result? In addition, I verified the SageMath result, and they all fail the verification I did.
Here are few examples of many I have:
Example 1
---------
SageMath version 8.3.rc1, Release Date: 2018-07-14
sage: var('x e a b f c d m');
sage: integrate ((d*sin (f*x + e) + c)^(3/2)*(b*sin (f*x + e) + a)^m, x)
1/9*(c^3*sin(9/2*f*x + 9/2*e) - 3*c^3*sin(3/2*f*x + 3/2*e))*2^(-m - 5/2)/f
The above is clearly wrong, since the anti dropped/missing the parameters `d,a,b` in the integrand.
in Maxima
Maxima 5.41.0 http://maxima.sourceforge.net
using Lisp ECL 16.1.2
(%i1) domain:complex$
(%i2) domain;
(%o2) complex
(%i3) integrate ((d*sin (f*x + e) + c)^(3/2)*(b*sin (f*x + e) + a)^m, x);
/
[ m 3/2
(%o3) I (b sin(f x + e) + a) (d sin(f x + e) + c) dx
]
/
Example 2
---------
sage: integrate(sqrt(d*sin (f*x + e) + c)*(b*sin (f*x + e) + a)^m, x,algorithm="maxima")
1/3*(c*sin(3/2*f*x + 3/2*e) - 3*c*sin(1/2*f*x + 1/2*e))*2^(-m - 3/2)/f
The above is clearly wrong, since the anti dropped/missing the parameters `d,a,b` in the integrand.
Using Maxima
(%i7) integrate (sqrt (d*sin (f*x + e) + c)*(b*sin (f*x + e) + a)^m, x);
/
[ m
(%o7) I (b sin(f x + e) + a) sqrt(d sin(f x + e) + c) dx
]
/
The above is the correct result, since this integral is supposed to be non integrable.
Example 3
---------
sage: integrate (x*sqrt (cos (b*x + a)), x,algorithm="maxima")
1/840*(70*sqrt(2)*a*(sin(3/2*b*x + 3/2*a) - 3*sin(1/2*b*x + 1/2*a)) - sqrt(2)*(15*sin(7/2*b*x + 7/2*a) - 21*sin(5/2*b*x + 5/2*a) - 35*sin(3/2*b*x + 3/2*a) + 105*sin(1/2*b*x + 1/2*a)))/b^2
The above result did not verify by differentiating the antiderivative.
Using Maxima
(%i9) integrate (x*sqrt (cos (b*x + a)), x);
/
[
(%o9) I x sqrt(cos(b x + a)) dx
]
/
The above is the correct result, since this integral is supposed to be non integrable.
example 4
---------
sage: integrate(x*cos(b*x + a)^(3/2), x, algorithm="maxima")
1/349920*(243*sqrt(2)*a*(3*sin(15/2*b*x + 15/2*a) + 5*sin(9/2*b*x + 9/2*a) - 30*sin(3/2*b*x + 3/2*a)) - 20*sqrt(2)*(2*(81*(b*x + a)^2 - 8)*cos(9/2*b*x + 9/2*a) - 162*(9*(b*x + a)^2 - 8)*cos(3/2*b*x + 3/2*a) + 9*(27*(b*x + a)^3 - 8*b*x - 8*a)*sin(9/2*b*x + 9/2*a) - 243*(3*(b*x + a)^3 - 8*b*x - 8*a)*sin(3/2*b*x + 3/2*a)))/b^2
The above result did not verify by differentiating the antiderivative.
Using Maxima
(%i10) integrate(x*cos(b*x + a)^(3/2), x);
/
[ 3/2
(%o10) I x cos(b x + a) dx
]
/
The above is the correct result, since this integral is supposed to be non integrable.
Example 5
---------
sage: integrate(cos (x)^(3/2)/x^3, x, algorithm="maxima")
-9/512*sqrt(2)*(25*gamma(-2, 15/2*I*x) + 9*gamma(-2, 9/2*I*x) - 2*gamma(-2, 3/2*I*x) - 2*gamma(-2, -3/2*I*x) + 9*gamma(-2, -9/2*I*x) + 25*gamma(-2, -15/2*I*x))
The above result did not verify by differentiating the antiderivative.
Maxima:
(%i11) integrate (cos (x)^(3/2)/x^3, x);
/ 3/2
[ cos(x)
(%o11) I --------- dx
] 3
/ x
The above is the correct result, since this integral is supposed to be non integrable.
Example 6
---------
sage: integrate(cos(d*x + c)^(7/3)/sqrt(b*cos(d*x + c) + a), x,algorithm="maxima")
1/6366178138320*2^(1/6)*(61213251330*cos(13/2*d*x + 13/2*c) - 72342933390*cos(11/2*d*x + 11/2*c) - 82321269030*cos(29/6*d*x + 29/6*c) + 140430400110*cos(17/6*d*x + 17/6*c) - 217028800170*cos(11/6*d*x + 11/6*c) - 341045257410*cos(7/6*d*x + 7/6*c) + 23405066685*sin(17/2*d*x + 17/2*c) - 26525742243*sin(15/2*d*x + 15/2*c) - 29113619535*sin(41/6*d*x + 41/6*c) + 41160634515*sin(29/6*d*x + 29/6*c) - 44209570405*sin(9/2*d*x + 9/2*c) - 51898191345*sin(23/6*d*x + 23/6*c) + 56840876235*sin(7/2*d*x + 7/2*c) - 62824126365*sin(19/6*d*x + 19/6*c) + 70215200055*sin(17/6*d*x + 17/6*c) + 1193658400935*sin(1/6*d*x + 1/6*c))/(a*d)
The above result did not verify by differentiating the antiderivative.
Maxima:
(%i12) integrate (cos (d*x + c)^(7/3)/sqrt (b*cos (d*x + c) + a), x);
/ 7/3
[ cos(d x + c)
(%o12) I ------------------------ dx
] sqrt(b cos(d x + c) + a)
/
The above is the correct result, since this integral is supposed to be non integrable.
Example 7
---------
sage: integrate(cos(d*x + c)^(2/3)/sqrt(b*cos(d*x + c) + a), x,algorithm="maxima")
-1/54264*2^(5/6)*(1071*cos(19/6*d*x + 19/6*c) + 1197*cos(17/6*d*x + 17/6*c) - 2261*cos(3/2*d*x + 3/2*c) - 2907*cos(7/6*d*x + 7/6*c) + 6783*cos(1/2*d*x + 1/2*c) + 20349*cos(1/6*d*x + 1/6*c))/(a*d)
The above result did not verify by differentiating the antiderivative.
Maxima:
(%i13) integrate (cos (d*x + c)^(2/3)/sqrt (b*cos (d*x + c) + a), x);
/ 2/3
[ cos(d x + c)
(%o13) I ------------------------ dx
] sqrt(b cos(d x + c) + a)
/
The above is the correct result, since this integral is supposed to be non integrable.
Example 8
---------
sage: var('B A f x e b a c m')
(B, A, f, x, e, b, a, c, m)
sage: integrate((B*cos(f*x+e)+A)*(b*cos(f*x+e)+a)^(3/2)*(c*cos(f*x+e))^m,x)
1/3465*(385*(a^3*c^m*sin(9/2*f*x + 9/2*e) - 3*a^3*c^m*sin(3/2*f*x + 3/2*e))*2^(-m - 5/2)*A + 4*(231*a^3*sin(15/2*f*x + 15/2*e) + 630*a^3*sin(11/2*f*x + 11/2*e) - 770*a^3*sin(9/2*f*x + 9/2*e) + 495*a^3*sin(7/2*f*x + 7/2*e) - 2079*a^3*sin(5/2*f*x + 5/2*e) + 1155*a^3*sin(3/2*f*x + 3/2*e))*2^(-m - 13/2)*B)/f
The above result did not verify by differentiating the antiderivative.
Maxima:
(%i15) integrate((B*cos(f*x+e)+A)*(b*cos(f*x+e)+a)^(3/2)*(c*cos(f*x+e))^m,x);
/
[ m 3/2
(%o15) I (c cos(f x + e)) (B cos(f x + e) + A) (b cos(f x + e) + a) dx
]
/
The above is the correct result, since this integral is supposed to be non integrable.
Example 9
---------
sage: integrate((B*cos(f*x+e)+A)*sqrt(b*cos(f*x+e)+a)*(c*cos(f*x+e))^m,x)
1/315*(105*(a*c^m*sin(3/2*f*x + 3/2*e) - 3*a*c^m*sin(1/2*f*x + 1/2*e))*2^(-m - 3/2)*A + (35*a*sin(9/2*f*x + 9/2*e) - 90*a*sin(7/2*f*x + 7/2*e) + 189*a*sin(5/2*f*x + 5/2*e) - 315*a*sin(3/2*f*x + 3/2*e) + 315*a*sin(1/2*f*x + 1/2*e))*2^(-m - 7/2)*B)/f
The above result did not verify by differentiating the antiderivative.
Maxima:
(%i16) integrate((B*cos(f*x+e)+A)*sqrt(b*cos(f*x+e)+a)*(c*cos(f*x+e))^m,x);
/
[ m
(%o16) I (c cos(f x + e)) (B cos(f x + e) + A) sqrt(b cos(f x + e) + a) dx
]
/
The above is the correct result, since this integral is supposed to be non integrable.
Example 10
----------
sage: integrate((B*cos(f*x+e)+A)*(b*cos(f*x+e)+a)^(3/2)*(c*sec(f*x+e))^m,x)
-1/2520*sqrt(2)*(35*2^m*A^3*a*sin(9/2*f*x + 9/2*e) + 630*(A^3*B - A^3*a)*2^m*log(cos(1/2*f*x + 1/2*e)^2 + sin(1/2*f*x + 1/2*e)^2 + 2*sin(1/2*f*x + 1/2*e) + 1) - 630*(A^3*B - A^3*a)*2^m*log(cos(1/2*f*x + 1/2*e)^2 + sin(1/2*f*x + 1/2*e)^2 - 2*sin(1/2*f*x + 1/2*e) + 1) + 45*(2*A^3*B - A^3*a)*2^m*sin(7/2*f*x + 7/2*e) - 63*(2*A^3*B - 3*A^3*a)*2^m*sin(5/2*f*x + 5/2*e) + 105*(4*A^3*B - 5*A^3*a)*2^m*sin(3/2*f*x + 3/2*e) - 630*(4*A^3*B - 3*A^3*a)*2^m*sin(1/2*f*x + 1/2*e))/f
The above result did not verify by differentiating the antiderivative.
Maxima:
(%i17) integrate((B*cos(f*x+e)+A)*(b*cos(f*x+e)+a)^(3/2)*(c*sec(f*x+e))^m,x);
/
[ 3/2 m
(%o17) I (B cos(f x + e) + A) (b cos(f x + e) + a) (c sec(f x + e)) dx
]
/
The above is the correct result, since this integral is supposed to be non integrable.
Example 11
----------
sage: integrate((B*cos(f*x+e)+A)*sqrt(b*cos(f*x+e)+a)*(c*sec(f*x+e))^m,x)
1/40*(20*sqrt(2)*(2^m*a*c^m*log(cos(1/2*f*x + 1/2*e)^2 + sin(1/2*f*x + 1/2*e)^2 + 2*sin(1/2*f*x + 1/2*e) + 1) - 2^m*a*c^m*log(cos(1/2*f*x + 1/2*e)^2 + sin(1/2*f*x + 1/2*e)^2 - 2*sin(1/2*f*x + 1/2*e) + 1) - 2^(m + 1)*a*c^m*sin(1/2*f*x + 1/2*e))*A + sqrt(2)*(5*2^(m + 2)*a*log(cos(1/2*f*x + 1/2*e)^2 + sin(1/2*f*x + 1/2*e)^2 + 2*sin(1/2*f*x + 1/2*e) + 1) - 5*2^(m + 2)*a*log(cos(1/2*f*x + 1/2*e)^2 + sin(1/2*f*x + 1/2*e)^2 - 2*sin(1/2*f*x + 1/2*e) + 1) - 2^(m + 1)*a*sin(5/2*f*x + 5/2*e) + 5*2^(m + 1)*a*sin(3/2*f*x + 3/2*e) - 15*2^(m + 2)*a*sin(1/2*f*x + 1/2*e))*B)/f
The above result did not verify by differentiating the antiderivative.
Maxima:
(%i18) integrate((B*cos(f*x+e)+A)*sqrt(b*cos(f*x+e)+a)*(c*sec(f*x+e))^m,x);
/
[ m
(%o18) I (B cos(f x + e) + A) sqrt(b cos(f x + e) + a) (c sec(f x + e)) dx
]
/
The above is the correct result, since this integral is supposed to be non integrable.NasserFri, 20 Jul 2018 19:40:43 -0500http://ask.sagemath.org/question/43088/how to use domain:complex$ command in sagemath for maxima?http://ask.sagemath.org/question/43064/how-to-use-domaincomplex-command-in-sagemath-for-maxima/A Basic question:
I need to run integrals in maxima using sagemath, but I need to set the domain to complex first, since default in maxima is real domain.
In Maxima itself, the command is
domain: complex$
I am newbie in Maxima and sagemath and could not find the answer googling so far. What command should one issue, from inside sagemath, before calling integrate, to tell maxima to use complex domain? What is the syntax to use?
I do not want to use assume command on some specific symbols, but I want to tell maxima to use the complex domain for all symbols involved.
Thank youNasserWed, 18 Jul 2018 05:06:02 -0500http://ask.sagemath.org/question/43064/SAGE - How to load a .mac filehttp://ask.sagemath.org/question/42759/sage-how-to-load-a-mac-file/ Dear community, I'm aware that SAGE has maxima inside. Since I have a set of `.mac` files that allow me to compute quantities from *Quantum Field Theory*, I'd like to know if they can be loaded in a SAGE (jupyter) session... and How?DoxWed, 27 Jun 2018 13:06:58 -0500http://ask.sagemath.org/question/42759/difference between calling maxima lib and maxima processhttp://ask.sagemath.org/question/42656/difference-between-calling-maxima-lib-and-maxima-process/This question came up after reading answer here [timeout-does-not-work-with-maxima-ok-with-others/](https://ask.sagemath.org/question/42644/timeout-does-not-work-with-maxima-ok-with-others/)
So I thought to make new question.
Why does the following return back from maxima right away, without hanging (it is unevaluated integral, which is OK, since it could not do it) but sage does not hang
sage: var('x')
sage: r=maxima(sqrt(x^2 + 1)*arctan(x)^2)
sage: r.integrate(x)
'integrate(sqrt(_SAGE_VAR_x^2+1)*atan(_SAGE_VAR_x)^2,_SAGE_VAR_x)
But when doing the following, it hangs
sage: integrate(sqrt(x^2 + 1)*arctan(x)^2,x,algorithm="maxima")
I understand now that the first call was to the maxima process. While the second was to the maxim lib linked to sage process itself?
But should not the maxima code be the same? Then why does the first call not hang, while the second one does?
I have expected both to hang.
Using SageMath version 8.3.beta5, Release Date: 2018-06-09NasserMon, 18 Jun 2018 18:01:54 -0500http://ask.sagemath.org/question/42656/how to run maxima code in Sage?http://ask.sagemath.org/question/40184/how-to-run-maxima-code-in-sage/I have the following code in maxima to calculate the laplacian of a function in parabolic coordinates.
assume(r≥0)$
assume(theta≥0,theta≤2*π)$
load(vect)$
derivabbrev:true$
scalefactors(parabolic)$
declare(f,scalar)$
depends(f,rest(parabolic))$
ev(express(laplacian(f)),diff,expand,factor);
What is the proper way to run those Maxima commands in SageMath?
Thanks,
DanieldanielvolinskiSat, 16 Dec 2017 09:47:28 -0600http://ask.sagemath.org/question/40184/How to trace Maxima failureshttp://ask.sagemath.org/question/38266/how-to-trace-maxima-failures/I often hit the "Detected access to protected memory ..." failure from maxima. In some cases it seems to go into a loop whereupon I receive the same message hundreds of times. I know which sage worksheet cell is failing, but cannot find what it is about that cell which causes the failure, because maxima does not tell me.
Is it possible to set up the worksheet so that this error is trapped and triggers a stack trace in sage/python?
sage: version()
'SageMath version 7.6, Release Date: 2017-03-25'
sage: Parallelism().set(nproc=2)
sage: var('rho12,rho13,rho23', domain='real')
sage: assume(rho12>0, rho13>0, rho23>0)
sage: var('r12,r13,r23', domain='real')
sage: var('m1 m2 m3', domain='real')
sage: var('mu12,mu13,mu23', domain='real')
sage: ####
sage: #assume(m1>0, m2>0, m3>0) # !! This is a Maxima killer (even though physically required)!
sage: m1=1; m2=1; m3=1
sage: # !! With 'assume' above and with ANY m1,m2,m3 in SR, we seg-fault and core-dump when computing the connection.
sage: ####
sage: mu12 = (m1*m2)/(m1+m2); mu23 = (m2*m3)/(m2+m3); mu13 = (m1*m3)/(m1+m3)
sage: # Contravariant metric tensor, per Turbiner et al., arXiv:1611.08157.
sage: Ginv = matrix([[2/mu12*rho12, 1/m1*(rho12+rho13-rho23), 1/m2*(rho12+rho23-rho13)],\
... [1/m1*(rho12+rho13-rho23), 2/mu13*rho13, 1/m3*(rho13+rho23-rho12)],\
... [1/m2*(rho12+rho23-rho13), 1/m3*(rho13+rho23-rho12), 2/mu23*rho23]])
sage: G = Ginv.inverse();
sage: # Begin manifold creation
sage: M = Manifold(1*3,'R^3',field='real',start_index=1)
sage: U = M.open_subset('U')
sage: Rho.<rho12,rho13,rho23> = U.chart();
sage: Rho.add_restrictions([rho12>0, rho13>0, rho23>0])
sage: Rho.add_restrictions([sqrt(rho23)<sqrt(rho12)+sqrt(rho13),\
... sqrt(rho13)<sqrt(rho12)+sqrt(rho23), sqrt(rho12)<sqrt(rho13)+sqrt(rho23)])
...
sage: g = M.riemannian_metric('g');
sage: g[:] = G[:].simplify_full()
sage: ginv = g.inverse()
sage: ### This will seg-fault and core-dump if ANY m1,m2,m3 are in SR, and the 'assume' statement active.
sage: nabla = g.connection()
sage: # Turbiner calculates the Ricci scalar.
sage: ### Attempting to do so here causes seg fault if all m1,m2,m3=1!
sage: # (Is this because of singularities at all boundaries of rho-space?
sage: # (Regardless, code should *never* crash.)
sage: Ric_g = g.ricci_scalar()Richard_LFri, 14 Jul 2017 14:37:51 -0500http://ask.sagemath.org/question/38266/Interactive solving differential equations with MAXIMA's desolvehttp://ask.sagemath.org/question/37553/interactive-solving-differential-equations-with-maximas-desolve/I am using Maxima's "desolve" to handle a system of linear differential equations.
During processing, Maxima arrives at an intermediate expression (in my case this is a complicated argument of a sqareroot)
that may be positive, negative or zero. Maxima asks me interactively if this expression is negative, positive or zero.
If I use "desolve" directly within the Maxima's notebook, I can give my answer interactively
(e.g., "pos") to Maxima. Consequently, Maxima can continue processing immediately.
Thus, in Maxima's notebook there is no need to use an 'assume' statement that includes
the whole complicate expression in question.
On the contrary, processing this system via Maxima's 'desolve ' at a sage's notebook is very inconvenient,
since, according to sage's documentation, one can answer such questions only via assumes given prior to 'desolve'.
Moreover, in the treated case Maxima ignores such 'assume'-statements.
Thus, solving my equation system at Maxima via sage turns out to be impossible.
Thus my question: Is it really impossible to answer Maxima's interactive questions via sage?
If not, one should implement this feature in future save-versions.
This would enable sage to solve linear differential equations that cannot be treated by sage up to now.
Here is a simlpe executable example for interactive working with Maxima.
(Members of Maxima's discussion forum gave this example to me for demonstration)
I tried to answer this question interactively at a sage- notebook.
Unfortunately, This leads to a deadlock in the sage-platform (version 7.4).
(%i1) integrate(x^a,x);
Is a equal to -1?
no;
(%o1) x^(a+1)/(a+1)
bekalphTue, 09 May 2017 09:48:50 -0500http://ask.sagemath.org/question/37553/Integrating Green's function and plotting.http://ask.sagemath.org/question/37531/integrating-greens-function-and-plotting/ Hi,
I am trying to integrate product of two Green's functions and plot the results using Maxima. The problem is that Green's functions have singularities.
$ I=\int_{-\infty}^{+\infty}dxG1(x)G2(x)(F1(x)-F2(x))$
and
$ G1(x) = \frac{1}{ (x-0.1)+0.5+0.00001i} $
$ G2(x) = \frac{1}{ (x-0.1)+0.5-0.00001i} $
$ F1(x) = \frac{1}{ 1+e^{\frac{x}{0.2}}}$
$ F2(x) = \frac{1}{ 1+e^{\frac{x+0.4}{0.2}}}$
When I use wxMaxima (CAS), it fails to integrate and it fails to plot the solution y. I know that the solution plot should look like a smoothed step function where rising edge should be at x=0.1.
Any suggestions how to code wxMaxima is appreciated.quackeeSat, 06 May 2017 11:02:05 -0500http://ask.sagemath.org/question/37531/Computing Riemann connection fails in Maximahttp://ask.sagemath.org/question/37355/computing-riemann-connection-fails-in-maxima/ Set up manifold with Riemann metric:
>'SageMath version 7.6, Release Date: 2017-03-25'
sage: M = Manifold(2,'R^2',field='real',start_index=1)
sage: c_Cart.<x1,x2> = M.chart();
sage: g = M.riemannian_metric('g');
sage: g[1,1],g[2,2] = 1,1;
sage: g.display()
g = dx1*dx1 + dx2*dx2
And a change of coordinates:
> sage: c_CM.<X,x> = M.chart();
sage: m1, m2 = var('m1 m2', domain='positive');
sage: m_CM = m1+m2; mu1 = m1/m_CM; mu2 = m2/m_CM; mu = m1*m2/m_CM
sage: # Restrictions in following line seem to make no difference ...
sage: ch_Cart_CM = c_Cart.transition_map(c_CM, [mu1*x1+mu2*x2, x1-x2], restrictions1 = x1!=x2, restrictions2 = x!=0)
sage: ch_Cart_CM;
Change of coordinates from Chart (R^2, (x1, x2)) to Chart (R^2, (X, x))
Now define a connection on g:
>sage: g.comp(c_CM.frame())[:]
[ 2 -(m1 - m2)/(m1 + m2)]
[ -(m1 - m2)/(m1 + m2) (m1^2 + m2^2)/(m1^2 + 2*m1*m2 + m2^2)]
And a connection on G:
>sage: G = M.riemannian_metric('G');
sage: G[:]= g.comp(c_CM.frame())[:]
sage: G.display()
G = 2 dx1*dx1 - (m1 - m2)/(m1 + m2) dx1*dx2 - (m1 - m2)/(m1 + m2) dx2*dx1 + (m1^2 + m2^2)/(m1^2 + 2*m1*m2 + m2^2) dx2*dx2
Everything appears to be fine. Let's try the Riemann connection:
>sage: g.connection()
Levi-Civita connection nabla_g associated with the Riemannian metric g on the 2-dimensional differentiable manifold R^2
Good. BUT
>sage: #G.connection() # blows up (in Maxima?) w/ "Detected access to protected memory ..."
Is there something wrong in the way G was defined, or are we limited by Maxima (whose ECL routines contain the message)?
Richard_LThu, 20 Apr 2017 18:58:07 -0500http://ask.sagemath.org/question/37355/Why does simplify break print_latex_func?http://ask.sagemath.org/question/37328/why-does-simplify-break-print_latex_func/Here's a minimal example of what I am talking about. Both print statements should return the same output in this scenario.
,var n x
def my_latex_print(self, *args):
return "a_{%s}" %(', '.join(map(latex, args)))
a=function('a',nargs=1,print_latex_func=my_latex_print)(n)
sexp=a(n=n+1)+a(n=n)
print latex(sexp)
sexp=simplify(expand(sexp))
print latex(sexp)
However, the outputs differ:
a_{n + 1} + a_{n}
a\left(n + 1\right) + a\left(n\right)
Of course simplify-expand may lead to a different expression, but that's not what I am concerned about. I am concerned about the representation of `a(n)` instead of `a_n` in the output.
My main question is: How can I recover `a_n` out of `sexp` at the end of my code?BjörnTue, 18 Apr 2017 21:17:36 -0500http://ask.sagemath.org/question/37328/Cannot get Maxima to run in terminal in OS10.11.6http://ask.sagemath.org/question/36239/cannot-get-maxima-to-run-in-terminal-in-os10116/I downloaded Sage-math-7.4.app for MacOSX (running El Capitan on 2016 Mac Book). Double clicked SageMath-7.4.app. I selected Terminal Session>Math>maxima . A terminal window appears with the following text:
Last login: Mon Jan 9 19:09:51 on ttys001 /Users/unlmath/Desktop/SAGE/SageMath-7.4.app/Contents/Resources/sage/sage --maxima; exit MacBook-Pro:~ unlmath$ /Users/unlmath/Desktop/SAGE/SageMath-7.4.app/Contents/Resources/sage/sage --maxima; exit ;;; Loading #P"/Users/unlmath/Desktop/SAGE/SageMath-7.4.app/Contents/Resources/sage/local/lib/ecl/sb-bsd-sockets.fas" ;;; Loading #P"/Users/unlmath/Desktop/SAGE/SageMath-7.4.app/Contents/Resources/sage/local/lib/ecl/sockets.fas"
Condition of type: END-OF-FILE Unexpected end of file on #<sequence-input stream="" 000000010b9691e0="">. No restarts available.
Top level.
>
As far as I can tell Maxima is not running. I'm not sure what is running at the ">" prompt. I haven't found anything on-line describing this problem. If I select Terminal Session>Math>gap it runs gap in the terminal, and if I select Terminal Session>sage it runs sage. Maxima behaves differently. I'd like to get it working.PastaMon, 09 Jan 2017 18:59:03 -0600http://ask.sagemath.org/question/36239/Any way to solve these simultaneous equations using Sage?http://ask.sagemath.org/question/36162/any-way-to-solve-these-simultaneous-equations-using-sage/Input is as following
1: var('E_0,E,gamma,c,v,m,m_0')
(E_0, E, gamma, c, v, m, m_0)
2: eq1 = gamma == 1/sqrt(1-v^2/c^2)
3: eq2 = m == gamma*m_0
4: eq3 = E == m*c^2
5: eq4 = E_0 == m_0*c^2
6: solve([eq1,eq2,eq3,eq4],v,m,m_0,gamma)
The expected solution for v is v = c * sqrt(1-E_0^2/E^2).
I get the following error message. I tried assuming all the variables to be positive and real, but get the same error message.
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
<ipython-input-6-c0343319abfc> in <module>()
----> 1 solve([eq1,eq2,eq3,eq4],v,m,m_0,gamma)
/home/sage/sage-7.4/local/lib/python2.7/site-packages/sage/symbolic/relation.pyc in solve(f, *args, **kwds)
863 s = []
864
--> 865 sol_list = string_to_list_of_solutions(repr(s))
866
867 # Relaxed form suggested by Mike Hansen (#8553):
/home/sage/sage-7.4/local/lib/python2.7/site-packages/sage/symbolic/relation.pyc in string_to_list_of_solutions(s)
538 from sage.structure.sequence import Sequence
539 from sage.calculus.calculus import symbolic_expression_from_maxima_string
--> 540 v = symbolic_expression_from_maxima_string(s, equals_sub=True)
541 return Sequence(v, universe=Objects(), cr_str=True)
542
/home/sage/sage-7.4/local/lib/python2.7/site-packages/sage/calculus/calculus.pyc in symbolic_expression_from_maxima_string(x, equals_sub, maxima)
1798 if len(x) == 0:
1799 raise RuntimeError("invalid symbolic expression -- ''")
-> 1800 maxima.set('_tmp_',x)
1801
1802 # This is inefficient since it so rarely is needed:
/home/sage/sage-7.4/local/lib/python2.7/site-packages/sage/interfaces/maxima_lib.pyc in set(self, var, value)
504 raise TypeError
505 cmd = '%s : %s$'%(var, value.rstrip(';'))
--> 506 self.eval(cmd)
507
508 def clear(self, var):
/home/sage/sage-7.4/local/lib/python2.7/site-packages/sage/interfaces/maxima_lib.pyc in _eval_line(self, line, locals, reformat, **kwds)
450 line = line[ind_dollar+1:]
451 if statement:
--> 452 maxima_eval("#$%s$" % statement)
453 if not reformat:
454 return result
/home/sage/sage-7.4/src/sage/libs/ecl.pyx in sage.libs.ecl.EclObject.__call__ (/home/sage/sage/src/build/cythonized/sage/libs/ecl.c:7698)()
793
794 """
--> 795 lispargs = EclObject(list(args))
796 return ecl_wrap(ecl_safe_apply(self.obj,(<EclObject>lispargs).obj))
797
/home/sage/sage-7.4/src/sage/libs/ecl.pyx in sage.libs.ecl.EclObject.__init__ (/home/sage/sage/src/build/cythonized/sage/libs/ecl.c:7221)()
658 """
659 if len(args) != 0:
--> 660 self.set_obj(python_to_ecl(args[0]))
661
662 def __reduce__(self):
/home/sage/sage-7.4/src/sage/libs/ecl.pyx in sage.libs.ecl.python_to_ecl (/home/sage/sage/src/build/cythonized/sage/libs/ecl.c:6254)()
473 return Cnil
474 else:
--> 475 L=cl_cons(python_to_ecl(pyobj[0]),Cnil)
476 ptr=L
477 for a in pyobj[1:]:
/home/sage/sage-7.4/src/sage/libs/ecl.pyx in sage.libs.ecl.python_to_ecl (/home/sage/sage/src/build/cythonized/sage/libs/ecl.c:5990)()
457 elif isinstance(pyobj,bytes):
458 s=<bytes>pyobj
--> 459 return ecl_safe_read_string(s)
460 elif isinstance(pyobj,Integer):
461 if pyobj >= MOST_NEGATIVE_FIXNUM and pyobj <= MOST_POSITIVE_FIXNUM:
/home/sage/sage-7.4/src/sage/libs/ecl.pyx in sage.libs.ecl.ecl_safe_read_string (/home/sage/sage/src/build/cythonized/sage/libs/ecl.c:5409)()
374 cdef cl_object o
375 o = ecl_cstring_to_base_string_or_nil(s)
--> 376 o = ecl_safe_funcall(read_from_string_clobj,o)
377 return o
378
/home/sage/sage-7.4/src/sage/libs/ecl.pyx in sage.libs.ecl.ecl_safe_funcall (/home/sage/sage/src/build/cythonized/sage/libs/ecl.c:5208)()
355 if ecl_nvalues > 1:
356 s = si_coerce_to_base_string(ecl_values(1))
--> 357 raise RuntimeError("ECL says: "+ecl_base_string_pointer_safe(s))
358 else:
359 return ecl_values(0)
RuntimeError: ECL says: THROW: The catch MACSYMA-QUIT is undefined.omoplataTue, 03 Jan 2017 20:05:25 -0600http://ask.sagemath.org/question/36162/Any way to solve this differential equation?http://ask.sagemath.org/question/36122/any-way-to-solve-this-differential-equation/ sage: x(t)=function('x')(t)
sage: x
t |--> x(t)
sage: g(v,c)=1/sqrt(1-v^2/c^2)
sage: g
(v, c) |--> 1/sqrt(-v^2/c^2 + 1)
sage: var('a')
a
sage: ode = g(diff(x,t))*diff(x,t) == a*t
sage: ode
t |--> diff(x(t), t)/sqrt(-diff(x(t), t)^2/c^2 + 1) == a*t
sage: desolve(ode,x)
Traceback (most recent call last):
...
ValueError: Unable to determine independent variable, please specify.
sage: desolve(ode,[x,t])
Traceback (most recent call last):
...
NotImplementedError: Maxima was unable to solve this ODE. Consider to set option contrib_ode to True.
sage: desolve(ode,[x,t],contrib_ode=True)
Traceback (most recent call last):
...
NotImplementedError: Maxima was unable to solve this ODE.
I can solve it by hand.
Mathematica can solve it. But I would very much prefer to learn to use Sage because it's open source.
It looks like it is Maxima that cannot solve it. But is it possible to make Sage invoke any other open source program than Maxima? Or use some trick in defining the problem that would allow Maxima to solve it?
Thank you.omoplataThu, 29 Dec 2016 13:15:36 -0600http://ask.sagemath.org/question/36122/solve maxima?http://ask.sagemath.org/question/36083/solve-maxima/The following in Jupyter (and sage cloud) produces the wrong output. I do have an (extremely similar) maxima batch file that works fine. I sort of presume that maxima "solve" is not really called. If needed I can provide all files and stuff; either link or inline. Or if the correct way to use maxima/solve isn't obvious I can shorten up the generation of the solve argument by direct assignment.
The last commented line is to prove that simpler problems yield the correct same answers in sagemath and maxima; when sagemath feels like.
jupyter:
******
%display latex
var('A B C D M r')
T =matrix([[A,B],[C,D]]);
m=1-2*M/r
G =matrix([[-m,0],[0,1/m]])
k = T.transpose()*G*T
eq1=k[0,0];
eq2=k[0,1];
eq3=k[1,0];
eq4=k[1,1];
eqd=A*D-B*C-1
eqd
sol=solve([eq1+m==0,eq3-sqrt(2*M/r)==0,eq4-1==0,eqd==0],[A,B,C,D]);
sol
####-comment---solve([eq1+m==0,eq3-sqrt(2*M/r)==0],[A,B])
****
Produces:
$\newcommand{\Bold}[1]{\mathbf{#1}}\left[-B C + A D - 1 = 0, A^{2} {\left(\frac{2 \cdot M}{r} - 1\right)} - \frac{C^{2}}{\frac{2 \cdot M}{r} - 1} - \frac{2 \, M}{r} + 1 = 0, A B {\left(\frac{2 \cdot M}{r} - 1\right)} - \frac{C D}{\frac{2 \cdot M}{r} - 1} - \sqrt{2} \sqrt{\frac{M}{r}} = 0, B^{2} {\left(\frac{2 \, M}{r} - 1\right)} - \frac{D^{2}}{\frac{2 \, M}{r} - 1} - 1 = 0\right]$
Whereas : a maxima script produces
${\\left[ \left[ A=-1 , B={{\sqrt{2} \cdot r \cdot \sqrt{{{M}\over{r}}}}\over{r-2\cdot M}} , C=0 , D=-1 \right] , \left[ A=1 , B=-{{\sqrt{2} \cdot r \cdot \sqrt{{{M}\over{r}}}}\over{r-2\cdot M}}, C=0 , D=1 \right] \right] }$
rrogersSat, 24 Dec 2016 09:28:49 -0600http://ask.sagemath.org/question/36083/declare a variable as *not* an integer for solvehttp://ask.sagemath.org/question/34876/declare-a-variable-as-not-an-integer-for-solve/ I am trying to solve symbolically a simple equation for x:
solve(x^K + d == R, x)
I am declaring these variables and assumptions:
var('K, d, R')
assume(K>0)
assume(K, 'real')
assume(R>0)
assume(R<1)
assumptions()
︡> [K > 0, K is real, R > 0, R < 1]
Yet when I run the solve, I obtain the following error:
> Error in lines 1-1
>
> Traceback (most recent call last):
>
> File
> "/projects/sage/sage-7.3/local/lib/python2.7/site-packages/smc_sagews/sage_server.py",
> line 957, in execute
> exec compile(block+'\n', '', 'single') in namespace, locals
>
> ...
>
> File "/projects/sage/sage-7.3/local/lib/python2.7/site-packages/sage/interfaces/interface.py",
> line 671, in __init__
> raise TypeError(x)
>
> TypeError: Computation failed since Maxima requested additional constraints; using the 'assume' command before evaluation *may* help (example of legal syntax is 'assume(K>0)', see `assume?` for more details)
>
> **Is K an integer?**
Apparently, maxima is asking whether K is an integer? But I explicitly declared it 'real'!
How can I spell out to maxima that it should not assume that K is an integer?
ThanksAntoine-sacWed, 21 Sep 2016 04:11:14 -0500http://ask.sagemath.org/question/34876/Observation regarding integration with different algorithmshttp://ask.sagemath.org/question/32778/observation-regarding-integration-with-different-algorithms/I was going through some basic tutorials and noticed this interesting behavior.
integrate(exp(x)*sin(x) + exp(x)*cos(x), x)
with algorithm='maxima' gives
1/2*(cos(x) + sin(x))*e^x - 1/2*(cos(x) - sin(x))*e^x
rather than the simplified
e^x*sin(x)
given by algorithm='sympy'. It is the same when I use maxima or sympy by itself. Why is that? Why is maxima not simplifying the expression?saadFri, 11 Mar 2016 05:13:50 -0600http://ask.sagemath.org/question/32778/Why the Maxima worksheets is not rendering latex / MathJax?http://ask.sagemath.org/question/32453/why-the-maxima-worksheets-is-not-rendering-latex-mathjax/ I use Maxima with sagemath and do not know why the results are not rendered
sage: f(x):=x^2
f(x):=x^2
sage: integrate(f(x),x)
x^3/3jmarcellopereiraThu, 04 Feb 2016 13:10:41 -0600http://ask.sagemath.org/question/32453/Setting the conditions at t=0 for laplace transform with sage (instead of maxima)http://ask.sagemath.org/question/31713/setting-the-conditions-at-t0-for-laplace-transform-with-sage-instead-of-maxima/Hallo,
I am trying to calculate the laplace transform for the following differential equation with sage instead of maxima.
"m*'diff(x_f(t)+x_d(t),t,2)+d*'diff(x_d(t),t,1)+c*x_d(t)+Fext(t)=0"
But I do not find how to set the values in sage at t=0 for the functions x_d(t) and x_f(t). Before I did set it with maxima with
```
maxima.eval("atvalue(x_d(t), t=0, 0)$ atvalue('diff(x_d(t),t), t=0, 0)$");
maxima.eval("atvalue(x_f(t), t=0, 0)$ atvalue('diff(x_f(t),t), t=0, 0)$");
```
Basically, I am trying to use the sage laplace transfrom function instead of the sage-maxima function resulting in a nicer notebook without all the maxima.eval add maxima.-commands. I know that sage is using maxima for the transformation in the background.
BR Howil
howilSun, 20 Dec 2015 09:56:36 -0600http://ask.sagemath.org/question/31713/Legendre_P in symbolic function - recursion errorhttp://ask.sagemath.org/question/30276/legendre_p-in-symbolic-function-recursion-error/Hello,
Undergraduate Physics mathemtica->sage convert here trying to use sage for both symbolic substitution to print equations and to plot.
I have the equation `M_y^2 * cos(x)^4 -2*My(x)*sin(x)*cos(x)^3` and would like to see how this behaves when substituting different associated legendre polynomials for `My^2`. Code for this:
Y_fnc(x,y_max,l,m)=y_max*gen_legendre_P(l,m,cos(x))
f(x,y_max,l,m)=Y_fnc(x,y_max,l,m) * cos(x)^4 -2*sqrt(Y_fnc(x,y_max,l,m))*sin(x)*cos(x)^3
Which results in:
<code>
[...]
File "/home/ian/sage-6.8-x86_64-Linux/local/lib/python2.7/site-packages/sage/symbolic/expression_conversions.py", line 319, in symbol raise NotImplementedError("symbol")
RuntimeError: maximum recursion depth exceeded while calling a Python object
</code>
With example line of the truncated output being:
File "/home/ian/sage-6.8-x86_64-Linux/local/lib/python2.7/site-packages/sage/functions/orthogonal_polys.py", line 1239, in gen_legendre_P
return sqrt(1-x**2)*(((n-m+1)*x*gen_legendre_P(n,m-1,x)-(n+m-1)*gen_legendre_P(n-1,m-1,x))/(1-x**2))
I have also tried to use maxima.assoc_legendre_P but this doesn't work when I try to plot:
<pre>
Y_fnc(x,y_max,l,m)=y_max*maxima.assoc_legendre_P(l,m,cos(x))
f(x,y_max,l,m)=Y_fnc(x,y_max,l,m) * cos(x)^4 -2*sqrt(Y_fnc(x,y_max,l,m))*sin(x)*cos(x)^3
plot(f(x,1,2,0),0,2*pi)
</pre>
<code>
verbose 0 (2716: plot.py, generate_plot_points) WARNING: When plotting, failed to evaluate function at 200 points.
verbose 0 (2716: plot.py, generate_plot_points) Last error message: 'unable to simplify to float approximation'
</code>.
I can accomplish plotting by defining Python Functions:
edit:
<pre>
def Y_fnc_py(x,l,m,y_max):
return y_max*gen_legendre_P(l,m,cos(x))
def f(x,y_max,l,m):
return Y_fnc_py(x,y_max,l,m) * cos(x)^4 -2*sqrt(Y_fnc_py(x,y_max,l,m))*sin(x)*cos(x)^3
plot(f(x,y_max=2,l=1,m=1),0,2*pi)
</pre>
Works however this will not allow me print f(x,y_max,l=3,m=2) so I can easily write down the equation. So this allows me to plot easily but doesn't display the equation well
Help much appreciated thank youianhiMon, 26 Oct 2015 15:11:06 -0500http://ask.sagemath.org/question/30276/simplify_full() Maxima ECL errorhttp://ask.sagemath.org/question/26004/simplify_full-maxima-ecl-error/Hi all, the following code was working fine in 6.4.1 (I am using the AIIMS ppa in Ubuntu) and now after the 6.5 upgrade, it doesn't work anymore. Assume I have defined all variables.
u(t) = exp(-(t-t_0)^2/(2*sigma^2)) + exp(-(t-t_1)^2/(2*sigma^2)) ; u(t);
u_tilde = integral(u(t)*exp(-I*omega*t), t, -infinity, +infinity, hold=False).simplify_full(); u_tilde;
The problem is in simplify_full(). The erf function and their limits are not evaluated for some reason. I have a hunch this problem has been posted [before](http://ask.sagemath.org/question/25441/calculation-that-is-possible-in-sage-63-is-not-possible-in-sage-64/) but I am not sure. The full traceback is given below. Any help is appreciated.
Thanks
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-8-66e6236c7bf7> in <module>()
----> 1 u_tilde = integral(u(t)*exp(-I*omega*t), t, -infinity, +infinity, hold=False).simplify_full(); u_tilde;
/usr/lib/sagemath/src/sage/symbolic/expression.pyx in sage.symbolic.expression.Expression.simplify_full (build/cythonized/sage/symbolic/expression.cpp:40350)()
8258 """
8259 x = self
-> 8260 x = x.simplify_factorial()
8261 x = x.simplify_rectform()
8262 x = x.simplify_trig()
/usr/lib/sagemath/src/sage/symbolic/expression.pyx in sage.symbolic.expression.Expression.simplify_factorial (build/cythonized/sage/symbolic/expression.cpp:43472)()
8729
8730 """
-> 8731 return self.parent()(self._maxima_().makefact().factcomb().minfactorial())
8732
8733 factorial_simplify = simplify_factorial
/usr/lib/sagemath/src/sage/symbolic/expression.pyx in sage.symbolic.expression.Expression._maxima_ (build/cythonized/sage/symbolic/expression.cpp:5512)()
582 # Maybe not such a great idea because the "default" interface is another one
583 from sage.calculus.calculus import maxima
--> 584 return super(Expression, self)._interface_(maxima)
585 else:
586 return super(Expression, self)._interface_(session)
/usr/lib/sagemath/src/sage/structure/sage_object.pyx in sage.structure.sage_object.SageObject._interface_ (build/cythonized/sage/structure/sage_object.c:5203)()
592 raise NotImplementedError, "coercion of object %s to %s not implemented:\n%s\n%s"%\
593 (repr(self), I)
--> 594 X = I(s)
595 if c:
596 try:
/usr/lib/sagemath/local/lib/python2.7/site-packages/sage/interfaces/interface.pyc in __call__(self, x, name)
197
198 if isinstance(x, basestring):
--> 199 return cls(self, x, name=name)
200 try:
201 return self._coerce_from_special_method(x)
/usr/lib/sagemath/local/lib/python2.7/site-packages/sage/interfaces/interface.pyc in __init__(self, parent, value, is_name, name)
624 self._name = parent._create(value, name=name)
625 except (TypeError, RuntimeError, ValueError) as x:
--> 626 raise TypeError(x)
627
628 def _latex_(self):
TypeError: ECL says: Error executing code in Maxima:
Update: I would like to add that the latest version of sage 6.7 still has this problem. Any updates?NahsiNMon, 02 Mar 2015 16:38:48 -0600http://ask.sagemath.org/question/26004/maxima is eating up all the memoryhttp://ask.sagemath.org/question/7954/maxima-is-eating-up-all-the-memory/I am running a sage script that uses maxima_methods().exponentialize(). I have a time out wrapper that kills the sage after a specific amount of time say 20 secs. Normamly when I kill sage, the associated process including maxima are killed. But, in a case, it kills the sage but not the associated maxima process. And the maxima process is eating up all the memory. Any way to kill that associated maxima process when I kill the sage script. Shoud I need to change/tweak anything in the file sage/interfaces/maxima.py ShuThu, 17 Feb 2011 11:24:38 -0600http://ask.sagemath.org/question/7954/elementary symmetric functionshttp://ask.sagemath.org/question/26923/elementary-symmetric-functions/Hi, this is a continuation (though self-contained) on a previous question I luckily received an answer for;
http://ask.sagemath.org/question/26913/sfrom_polynomialf-convert-a-polynomial-to-symmetric-functions-but-with-a-parameter/
For those of you experts that know Maxima, I essentially want to do the following (to a polynomial);
elem([2,f1,f2],elem([2,e1,e2],x+y+a+b,[x,y]),[a,b])
which results in: `(x+y)+(a+b) = e1 + f1`, where Sage would (which is what I'm trying to do) return `e[1] + f[1]`.
This is what I tried (among others), mostly from the above referenced link;
P.<x,y>=PolynomialRing(QQ['a','b'])
[a,b]=P.base_ring().gens()
S=SymmetricFunctions(P.base_ring())
exy=S.elementary()
f=x+y+a+b
exy._prefix='exy'
o=exy(S.from_polynomial(f))
P2.<a,b>=PolynomialRing(QQ['x','y'])
[x,y]=P2.base_ring().gens()
S2.SymmetricFunctions(P2.base_ring())
eab=S2.elementary()
eab._prefix='eab'
oo=eab(S2.from_polynomial(o)); oo
I was hoping to see: `eab[1]+exy[1]`, but here an error is thrown saying that the polynomial is not symmetric. I've tried also (trying) to establish a base ring `QQ['x','y','a','b']` and then subrings but that also doesn't seem to work for me.
I think Sage is great and I'm sure there's something equivalent to the very simple task done in Maxima. For instance, this
maxima.eval('elem:2')
oo=maxima.eval('elem([2,f1,f2],elem([2,e1,e2],x+y+a+b,[x,y]),[a,b])')
does return the proper answer, `e1+f1`, but I cannot use this result because I need to process it further with Sage and have not found a way to **translate** this Maxima type of object to a Sage polynomial - especially since the parsing seems to bring up errors for larger equations and my real equations are extremely large.
Thanks all, again!
natepowerFri, 22 May 2015 23:26:52 -0500http://ask.sagemath.org/question/26923/successive calls to maximahttp://ask.sagemath.org/question/26728/successive-calls-to-maxima/I have found, and have read, a bit on calling Maxima from Sage but I have only seen simple one-time calls like
maxima.eval('4*x');
What I want to do is this (which is a *.sage file I call from the terminal using ./sage file.sage).
print("In Sage input file");
d = maxima.eval('halt (r,s,zeta,rho) := (1-Q*rho^r)-zeta*rho^s*(1-rho^r)');
d2 = maxima.eval('elem([2,e12,e22],elem([2,e11,e21],halt(2,1,zeta1,rho11)+diff(halt(2,1,zeta2,rho12),rho12)+halt(2,1,zeta2,rho22),[rho11,rho21]),[rho12,rho22])');
print d2;
d3 = maxima.eval('subst(R,e11,d2');
print d3;
But `print d3' just gives me 'd2'.... I'm sure this is very very simple but I haven't found it yet.
Thanks!
natepowerTue, 05 May 2015 14:57:33 -0500http://ask.sagemath.org/question/26728/crash on integral attempthttp://ask.sagemath.org/question/26362/crash-on-integral-attempt/Sage version 6.5 app on Mac OS 10.95. Following code tries to evaluate the
total curvature of a certain space curve. The answer should be given as
a complete elliptic integral of the second kind (which I then hoped to numerically
evaluate for a range of values of r). But I get "Error executing code in Maxima".
r,t = var('r,t')
assume(r > 0)
X = vector((r * cos(t) - (1/3)* r^3 * cos(3*t),
- r * sin(t) - (1/3) *r^3 * sin(3*t),
r^2 *cos(2*t)))
Xtheta = X.diff(t)
AbsXtheta = abs(Xtheta)
T = (1/AbsXtheta) * Xtheta ## unit tangent
kappa = abs(T.diff(t))
kappa = kappa.expand().trig_simplify().canonicalize_radical()
print(kappa)
Curvature = integral(kappa,t,0,2*pi) beesonFri, 27 Mar 2015 15:02:26 -0500http://ask.sagemath.org/question/26362/Cannot desolve ODEhttp://ask.sagemath.org/question/25632/cannot-desolve-ode/ I'm trying to compute the solution for a first order differential equation using the code below:
var('g, a, v_e, m_0, v_9, k')
m(t) = (m_0 - a*t)
v = function('v', t)
de = m*diff(v, t) == -v_e*diff(m, t) - k*v - m*g
ans = desolve(de, v, ics=[0,0], ivar=t)
This returns the following error:
TypeError: Computation failed since Maxima requested additional constraints; using the 'assume' command before evaluation *may* help (example of legal syntax is 'assume(-k/a>0)', see `assume?` for more details)
Running assume(-k/a>0) before desolve does not remove the error. This error does not happen with the k*v term removed. By hand, I was able to solve this DE using integrating factors.
lscottWed, 28 Jan 2015 17:03:45 -0600http://ask.sagemath.org/question/25632/What's wrong with Лобачевский function?http://ask.sagemath.org/question/25163/whats-wrong-with-lobachevskii-function/ Hello,
I tried to plot the following function $$Л(\theta) = -\int_0^\theta \log |2 \sin(u)| du$$ (called the Lobatchevski function). So I started with
sage: theta, u = var('theta', 'u')
sage: assume(0 < theta < pi)
sage: assume(theta, 'real')
sage: el(theta) = - integral(log(abs(2*sin(u))), u, 0, theta)
The last command just asks maxima. Maxima starts computing (one CPUS is running 100%) but never stops.
VincentvdelecroixMon, 08 Dec 2014 03:54:22 -0600http://ask.sagemath.org/question/25163/maxima on sagecloudhttp://ask.sagemath.org/question/24955/maxima-on-sagecloud/ Hello,
i cannot run this maxima program on sage cloud.
Someone has an explanation? indentation? or sagecloud doesn't support long program?
Thanks for answer.
Dominique
%default_mode maxima
︡6cc15a58-c507-4e6b-a762-c36a57d2816f︡
︠3111f7f9-ddeb-47d6-81c5-4dfab1bef208s︠
RedGauss(A,variable):=block([q,var,listeD,listeQ,i,a,l,D],
quad:expand(transpose(variable).A.variable),
q:quad,var:variable,listeD:[],listeQ:[],D:zeromatrix(length(A),length(A)),
while var#[] do (
a:diff(q,var[1],2)/2,l:subst(0,var[1],diff(q,var[1])),
if a=0 and l=0 then var:rest(var)
elseif a#0 then (
listeD:append(listeD,[a]),listeQ:append(listeQ,[var[1]+l/(2*a)=0]),
q:subst(0,var[1],q)-l^2/(4*a),var:rest(var))
else (
i:2,while subst(0,var[i],diff(l,var[i]))=0 do i:i+1,
a:diff(q,var[i],2)/2,
if a#0 then (
listeD:append(liste,[a]),listeQ:append(listeQ,[var[i]+l/(2*a)=0]),q:subst(0,var[i],q)-l^2/(4*a),
var:append(rest(var,i-1-length(var)),rest(var,i)))
else (
a:diff(q,var[1],1,var[i],1),
l1:subst([var[1]=0,var[i]=0],diff(q,var[1])),li:subst([var[1]=0,var[i]=0],diff(q,var[i])),
listeD:append(listeD,[a/4,-a/4]),
listeQ:append(listeQ,[var[1]+var[i]+(l1+li)/a=0,var[1]-var[i]+(li-l1)/a=0]),
q:subst([var[1]=0,var[i]=0],q)-l1*li/a,
var:append(rest(rest(var,i-1-length(var))),rest(var,i))))),
for k:1 thru length(listeD) do D[k,k]:listeD[k],
return([D,transpose(coefmatrix(listeQ,variable))]))$
︡51a26d2e-89a4-444b-a29f-f7e6f46d4008︡{"stderr":"Error in lines 1-1\n"}︡{"stderr":"Traceback (most recent call last):\n File \"/projects/ef4515d3-97a4-4ff1-a9ed-7538488a8b36/.sagemathcloud/sage_server.py\", line 865, in execute\n exec compile(block+'\\n', '', 'single') in namespace, locals\n File \"\", line 1, in <module>\n File \"/projects/ef4515d3-97a4-4ff1-a9ed-7538488a8b36/.sagemathcloud/sage_server.py\", line 900, in execute_with_code_decorators\n print code_decorator.eval(code, locals=self.namespace),\n File \"/usr/local/sage/sage-6.4/local/lib/python2.7/site-packages/sage/interfaces/expect.py\", line 1220, in eval\n return self._eval_line_using_file(code)\n File \"/usr/local/sage/sage-6.4/local/lib/python2.7/site-packages/sage/interfaces/expect.py\", line 724, in _eval_line_using_file\n if \"Input/output error\" in msg[0]: # This occurs on non-linux machines\nIndexError: tuple index out of range\n"}︡
dso449Sun, 23 Nov 2014 04:07:56 -0600http://ask.sagemath.org/question/24955/Weird problem with desolve_rk4http://ask.sagemath.org/question/24090/weird-problem-with-desolve_rk4/ Aloha,
I am trying to use desolve_rk4 to solve differential equations of the form dy/dx=f(x,y). As we can see in the [Solving ordinary differential equations](http://www.sagemath.org/doc/reference/calculus/sage/calculus/desolvers.html) help page, it has two variants in one you just pass f(x,y) and in the other you pass the whole equation dy/dx=f(x,y). It should not make a difference. But in the following examples one can see that one works sometimes and the other doesn't, and vice-versa.
This works ("Variant 2": passing just f(x,y)):
x,y=var('x y')
f=x^2+y^2-1
ICS=[0,0]
STEP=0.01
END=2
plot1=desolve_rk4(x^2+y^2-1,y,ics=ICS,ivar=x,output='slope_field',end_points=END,thickness=3,step=STEP)
sol=desolve_rk4(f,y,ics=ICS,end_points=END,step=STEP)
sol=sol[len(sol)-1]
point1=point(sol, size=50, color='black')
show(point1+plot1)
print(sol)
However, if you change the function and initial conditions to `f=x+(1/2)*y^2` and `ICS=[-2,0]`, we get an error `unable to make sense of Maxima expression`.
On the other hand this works ("Variant 1": passing dy/dx=f(x,y)):
x = var('x')
y = function('y', x)
f=x+(1/2)*y^2
de=diff(y,x)==f
ICS=[-2,0]
STEP=0.1
END=2
plot1=desolve_rk4(de,y,ics=ICS,output='slope_field',end_points=END,thickness=3,step=STEP)
sol=desolve_rk4(de,y,ics=ICS,end_points=END,step=STEP)
sol=sol[len(sol)-1]
point1=point(sol, size=50, color='black')
show(point1+plot1)
print(sol)
However, if you change the function and initial conditions to `f=x^2+y^2-1` and `ICS=[0,0]`, we get the same error `unable to make sense of Maxima expression`.
Does anybody have a solution to this problem.
RamónRamón Figueroa-CentenoWed, 10 Sep 2014 12:45:59 -0500http://ask.sagemath.org/question/24090/