Maple 2024 Questions and Posts

These are Posts and Questions associated with the product, Maple 2024

THis ode looks complicated

ode := (2*x^(5/2) - 3*y(x)^(5/3))/(2*x^(5/2)*y(x)^(2/3)) + ((-2*x^(5/2) + 3*y(x)^(5/3))*diff(y(x), x))/(3*x^(3/2)*y(x)^(5/3)) = 0;

But is actually a simple first order linear ode:

RHS:=solve(ode,diff(y(x),x));
new_ode:=diff(y(x),x)=RHS;

Whose solution is 

But Maple gives this very complicated answer as shown below. When asking it to solve as linear ode, it now gives the much simpler solution.  

Maple complicated solutions are all verified OK. But the question is, why did it not give this simple solution?

Attached worksheet.  All on Maple 2024


 

204152

restart;

204152

interface(version);

`Standard Worksheet Interface, Maple 2024.0, Windows 10, March 01 2024 Build ID 1794891`

Physics:-Version();

`The "Physics Updates" version in the MapleCloud is 1700. The version installed in this computer is 1693 created 2024, March 7, 17:27 hours Pacific Time, found in the directory C:\Users\Owner\maple\toolbox\2024\Physics Updates\lib\`

ode := (2*x^(5/2) - 3*y(x)^(5/3))/(2*x^(5/2)*y(x)^(2/3)) + ((-2*x^(5/2) + 3*y(x)^(5/3))*diff(y(x), x))/(3*x^(3/2)*y(x)^(5/3)) = 0;

(1/2)*(2*x^(5/2)-3*y(x)^(5/3))/(x^(5/2)*y(x)^(2/3))+(1/3)*(-2*x^(5/2)+3*y(x)^(5/3))*(diff(y(x), x))/(x^(3/2)*y(x)^(5/3)) = 0

DEtools:-odeadvisor(ode);

[[_1st_order, _with_linear_symmetries], _exact, _rational]

#why such complicated solutions?
sol:=[dsolve(ode)];

[y(x) = (1/3)*2^(3/5)*3^(2/5)*(x^(5/2))^(3/5), y(x) = (1/3)*(-(1/4)*5^(1/2)-1/4-((1/4)*I)*2^(1/2)*(5-5^(1/2))^(1/2))^3*2^(3/5)*3^(2/5)*(x^(5/2))^(3/5), y(x) = (1/3)*(-(1/4)*5^(1/2)-1/4+((1/4)*I)*2^(1/2)*(5-5^(1/2))^(1/2))^3*2^(3/5)*3^(2/5)*(x^(5/2))^(3/5), y(x) = (1/3)*((1/4)*5^(1/2)-1/4-((1/4)*I)*2^(1/2)*(5+5^(1/2))^(1/2))^3*2^(3/5)*3^(2/5)*(x^(5/2))^(3/5), y(x) = (1/3)*((1/4)*5^(1/2)-1/4+((1/4)*I)*2^(1/2)*(5+5^(1/2))^(1/2))^3*2^(3/5)*3^(2/5)*(x^(5/2))^(3/5), x/y(x)^(2/3)+y(x)/x^(3/2)+c__1 = 0]

#all solution are correct
map(X->odetest(X,ode),sol);

[0, 0, 0, 0, 0, 0]

RHS:=solve(ode,diff(y(x),x));
new_ode:=diff(y(x),x)=RHS;

(3/2)*y(x)/x

diff(y(x), x) = (3/2)*y(x)/x

dsolve(new_ode);

y(x) = c__1*x^(3/2)

#force it to solve it as first order linear ode
dsolve(ode,y(x),[`linear`])

y(x) = c__1*x^(3/2)


 

Download why_missed_simple_solution_march_17_2024.mw

Maple's coulditbe  is useful. But unfortunately it does not return back to the user the conditions under which the proposition was found true. This could make it much more useful. It seems in way similar to Mathematica' Reduce but Reduce returns the conditions.

Is there a way to find the conditions which makes it true? 

I use coulditbe alot. I use it to verify that the result of odetest (I call it the residue) is zero or not. Maytimes, odetest does not return zero. And using simplify, or evalb or is to check if the residue is zero, all fail. But many times, coulditbe returns true, meaning the residue is zero. But I do not know under what conditions. In Mathematica's Reduce, it tells me the conditions. 

Here is one of hundreds of examples I have

restart;
ode:=(t^3+y(t)^2*sqrt(t^2+y(t)^2))-(t*y(t)*sqrt(t^2+y(t)^2))*diff(y(t),t)=0;
ic:=y(1)=1;
sol:=dsolve([ode,ic]);
the_residue:=odetest(sol,[ode,ic]);

You see, odetest says it could not verify the solution (the first entry above) but it did verify the solution against the initial conditions. 

Using simplify, evalb and is all also could not verify it

simplify(the_residue[1]);
evalb(the_residue[1]=0);
is(the_residue[1]=0);

Now coulditbe does:

_EnvTry:='hard':
coulditbe(the_residue[1]=0);

So the solution is correct, but I do not know under what conditions. Using Mathematica's Reduce I can find this:

So now back in Maple, I can do this

simplify(the_residue[1]) assuming t>exp(-2*sqrt(2)/3);

                      0

Actually in this example, just using assume t>0 also gives zero. But I am using Mathematica's result for illustration.

You might ask, why do I need to know for what values of the independent variable is the residue zero?

Because in some cases, the residue is zero only at single point! So it does not make sense to say the solution is verified to be correct only at one single point of the domain, right?

it needs to be some finite range at least. Here is an example of an ode whose solution is correct only at x=0

ode:=diff(y(x),x)=3*x*(y(x)-1)^(1/3);
ic:=y(3)=-7;
sol:=dsolve([ode,ic]);
the_residue:=odetest(sol,[ode,ic]);

And simplify, evalb, is all fail to verifiy this, but coulditbe says true

simplify(the_residue[1]);
evalb(the_residue[1]=0);
is(the_residue[1]=0);
_EnvTry:='hard':
coulditbe(the_residue[1]=0);

So now, we ask, is this solution then correct or not? It turns out to be zero but only at origin x=0

plot(abs(the_residue[1]),x=-1..1)

If I knew that residue is zero only at single point, then I would say this solution is not correct, right?

And that is why I need to know under what conditions coulditbe retruned true.

I tried infolevel[coulditbe]:=5 but nothing more was displayed on the screen.

Mathematica's Reduce confirms that when x=0 the residue is zero.

So my question is simply this: Can one obtain the conditions used by coulditbe to determine when result is true?

It will be useful if Maple could in future version return the value/range which makes it true.

 

I am trying to solve the following set of equations, I am able to find solutions for a simplified case (b=0) using the command solve but cannot seem to solve it for general b.

Is there a better way to attempt to find a solution?
solve.mw

restart

eqn := [(2*((q*r*a3^2-(1/2)*b^2*a3^2-(1/2)*r^2*a3^2-(1/2)*a2^2)*b^4*cos(theta)^4+(2*((q*r-(1/4)*b^2-(1/4)*r^2)*(b^2+r^2)*a4^2*sin(theta)^2-(1/2)*r^4*a3^2+q*r^3*a3^2+(1/2)*(1/2-b^2*a3^2+(1/2)*a1^2-a2^2)*r^2-(1/2)*q*(a1^2+1)*r+(1/4)*b^2*(a1^2+1)))*b^2*cos(theta)^2+2*r*(q^2*sin(theta)^4*b^2*r*a4^2-2*a4*((1/8)*a4*r^5-(1/4)*q*a4*r^4+(1/4)*b^2*a4*r^3-(1/2)*q*b*a1*r^2+b*((1/8)*b^3*a4+q^2*a1)*r+(1/4)*q*b^3*(a4*b-2*a1))*sin(theta)^2-(1/4)*r^5*a3^2+(1/2)*q*r^4*a3^2+(1/4)*(-a3^2*b^2+a1^2-a2^2+1)*r^3+q*(-a1^2-1/2)*r^2+((1/4)*b^2*(a1^2+1)+q^2*a1^2)*r-(1/2)*q*b^2*a1^2)))/((r^2+b^2*cos(theta)^2)*(-b^2+2*q*r-r^2)), (2*((q*r*s3^2-(1/2)*b^2*s3^2-(1/2)*r^2*s3^2-(1/2)*s2^2)*b^4*cos(theta)^4+(2*((q*r-(1/4)*b^2-(1/4)*r^2)*(b^2+r^2)*s4^2*sin(theta)^2-(1/2)*r^4*s3^2+q*r^3*s3^2+(1/2)*(1/2-b^2*s3^2+(1/2)*s1^2-s2^2)*r^2-(1/2)*q*(s1^2+1)*r+(1/4)*b^2*(s1^2+1)))*b^2*cos(theta)^2+2*r*(q^2*sin(theta)^4*b^2*r*s4^2-2*s4*((1/8)*r^5*s4-(1/4)*q*r^4*s4+(1/4)*b^2*r^3*s4-(1/2)*q*b*r^2*s1+b*((1/8)*b^3*s4+q^2*s1)*r+(1/4)*q*b^3*(b*s4-2*s1))*sin(theta)^2-(1/4)*r^5*s3^2+(1/2)*q*r^4*s3^2+(1/4)*(-b^2*s3^2+s1^2-s2^2+1)*r^3+q*(-s1^2-1/2)*r^2+((1/4)*b^2*(s1^2+1)+q^2*s1^2)*r-(1/2)*q*b^2*s1^2)))/((r^2+b^2*cos(theta)^2)*(-b^2+2*q*r-r^2)), (2*((1/2)*s2*sqrt(b^4*cos(theta)^4+8*q*sin(theta)^2*b^2*r+2*b^2*cos(theta)^2*r^2+r^4)+(q*r-(1/2)*b^2-(1/2)*r^2)*(b*sin(theta)^2*s4+s1)))/(-b^2+2*q*r-r^2), (2*((1/2)*a2*sqrt(b^4*cos(theta)^4+8*q*sin(theta)^2*b^2*r+2*b^2*cos(theta)^2*r^2+r^4)+(q*r-(1/2)*b^2-(1/2)*r^2)*(b*sin(theta)^2*a4+a1)))/(-b^2+2*q*r-r^2), (sqrt(b^4*cos(theta)^4+8*q*sin(theta)^2*b^2*r+2*b^2*cos(theta)^2*r^2+r^4)*n2+(2*(1+sin(theta)^2*b*n4+n1))*(q*r-(1/2)*b^2-(1/2)*r^2))/(-b^2+2*q*r-r^2), (2*(b^4*(q*s3*r*a3-(1/2)*s3*b^2*a3-(1/2)*s3*r^2*a3-(1/2)*a2*s2)*cos(theta)^4+(2*((q*r-(1/4)*b^2-(1/4)*r^2)*(b^2+r^2)*s4*a4*sin(theta)^2-(1/2)*s3*r^4*a3+q*s3*r^3*a3+(1/2)*(-s3*b^2*a3+(1/2)*a1*s1-a2*s2)*r^2-(1/2)*q*r*a1*s1+(1/4)*b^2*a1*s1))*b^2*cos(theta)^2+(2*(q^2*s4*sin(theta)^4*b^2*r*a4+(-(1/4)*s4*r^5*a4+(1/2)*q*s4*r^4*a4-(1/2)*s4*b^2*r^3*a4+(1/2)*q*b*(a1*s4+a4*s1)*r^2-b*((1/4)*s4*b^3*a4+q^2*(a1*s4+a4*s1))*r-(1/2)*q*b^3*(a4*b*s4-a1*s4-a4*s1))*sin(theta)^2-(1/4)*s3*r^5*a3+(1/2)*q*s3*r^4*a3+(1/4)*(-a3*b^2*s3+a1*s1-a2*s2)*r^3-q*r^2*a1*s1+a1*s1*(q^2+(1/4)*b^2)*r-(1/2)*q*b^2*a1*s1))*r))/((r^2+b^2*cos(theta)^2)*(-b^2+2*q*r-r^2)), (2*((1/2)*a2*sqrt(b^4*cos(theta)^4+8*q*sin(theta)^2*b^2*r+2*b^2*cos(theta)^2*r^2+r^4)+(q*r-(1/2)*b^2-(1/2)*r^2)*(b*sin(theta)^2*a4+a1)))/(-b^2+2*q*r-r^2), (2*(b^4*(q*n3*r*a3-(1/2)*n3*b^2*a3-(1/2)*n3*r^2*a3-(1/2)*a2*n2)*cos(theta)^4+(2*((q*r-(1/4)*b^2-(1/4)*r^2)*(b^2+r^2)*n4*a4*sin(theta)^2-(1/2)*n3*r^4*a3+q*n3*r^3*a3+(1/2)*(-n3*b^2*a3+(1/2)*a1*n1-a2*n2)*r^2-(1/2)*q*r*a1*n1+(1/4)*b^2*a1*n1))*b^2*cos(theta)^2+(2*(q^2*n4*sin(theta)^4*b^2*r*a4+(-(1/4)*n4*r^5*a4+(1/2)*q*n4*r^4*a4-(1/2)*n4*b^2*r^3*a4+(1/2)*q*b*(a1*n4+a4*n1)*r^2-b*((1/4)*n4*b^3*a4+q^2*(a1*n4+a4*n1))*r-(1/2)*q*b^3*(a4*b*n4-a1*n4-a4*n1))*sin(theta)^2-(1/4)*n3*r^5*a3+(1/2)*q*n3*r^4*a3+(1/4)*(-a3*b^2*n3+a1*n1-a2*n2)*r^3-q*r^2*a1*n1+a1*n1*(q^2+(1/4)*b^2)*r-(1/2)*q*b^2*a1*n1))*r))/((r^2+b^2*cos(theta)^2)*(-b^2+2*q*r-r^2)), (2*(b^4*(q*s3*r*n3-(1/2)*s3*b^2*n3-(1/2)*s3*r^2*n3-(1/2)*n2*s2)*cos(theta)^4+(2*((q*r-(1/4)*b^2-(1/4)*r^2)*(b^2+r^2)*s4*n4*sin(theta)^2-(1/2)*s3*r^4*n3+q*s3*r^3*n3+(1/2)*(-s3*b^2*n3+(1/2)*n1*s1-n2*s2)*r^2-(1/2)*q*r*n1*s1+(1/4)*b^2*n1*s1))*b^2*cos(theta)^2+(2*(q^2*s4*sin(theta)^4*b^2*r*n4+(-(1/4)*s4*r^5*n4+(1/2)*q*s4*r^4*n4-(1/2)*s4*b^2*r^3*n4+(1/2)*q*b*(n1*s4+n4*s1)*r^2-b*((1/4)*s4*b^3*n4+q^2*(n1*s4+n4*s1))*r-(1/2)*q*b^3*(b*n4*s4-n1*s4-n4*s1))*sin(theta)^2-(1/4)*s3*r^5*n3+(1/2)*q*s3*r^4*n3+(1/4)*(-b^2*n3*s3+n1*s1-n2*s2)*r^3-q*r^2*n1*s1+n1*s1*(q^2+(1/4)*b^2)*r-(1/2)*q*b^2*n1*s1))*r))/((r^2+b^2*cos(theta)^2)*(-b^2+2*q*r-r^2)), (2*((q*r*n3^2-(1/2)*b^2*n3^2-(1/2)*r^2*n3^2-(1/2)*n2^2)*b^4*cos(theta)^4+(2*((q*r-(1/4)*b^2-(1/4)*r^2)*(b^2+r^2)*n4^2*sin(theta)^2-(1/2)*r^4*n3^2+q*r^3*n3^2+(1/2)*(-b^2*n3^2+(1/2)*n1^2-n2^2)*r^2-(1/2)*q*r*n1^2+(1/4)*b^2*n1^2))*b^2*cos(theta)^2+2*r*(q^2*sin(theta)^4*b^2*r*n4^2-2*n4*((1/8)*n4*r^5-(1/4)*q*n4*r^4+(1/4)*n4*b^2*r^3-(1/2)*q*b*r^2*n1+b*((1/8)*n4*b^3+q^2*n1)*r+(1/4)*q*b^3*(b*n4-2*n1))*sin(theta)^2-(1/4)*r^5*n3^2+(1/2)*q*r^4*n3^2+(1/4)*(-b^2*n3^2+n1^2-n2^2)*r^3-q*r^2*n1^2+n1^2*(q^2+(1/4)*b^2)*r-(1/2)*q*b^2*n1^2)))/((r^2+b^2*cos(theta)^2)*(-b^2+2*q*r-r^2)), -(32*(((1/8)*(b*(-a2*a4+s2*s4)*(q-r)*sin(theta)^2+q*(a1*a2-s1*s2))*(q*r-(1/2)*b^2-(1/2)*r^2)*b^6*cos(theta)^6-(1/4)*b^4*((q*b^2-(3/2)*q*r^2+(3/2)*r^3)*(q*r-(1/2)*b^2-(1/2)*r^2)*(-a2*a4+s2*s4)*b*sin(theta)^2+(a1*a2-s1*s2)*q*(q*b^2*r+(1/2)*q*r^3-(1/2)*b^4-(3/4)*b^2*r^2))*cos(theta)^4+(b*(-a3*a4+s3*s4)*sin(theta)^2-s3*s1+a3*a1)*r*q*(q*r-(1/2)*b^2-(1/2)*r^2)^2*b^4*sin(theta)*cos(theta)^3+(1/8)*(7*(((1/14)*(3*(-a2*a4+s2*s4))*r^3-13*q*(-a2*a4+s2*s4)*r^2*(1/14)+(q^2+3*b^2*(1/14))*(-a2*a4+s2*s4)*r-(1/2)*q*b*(b*(-a2*a4+s2*s4)+(1/7)*a2*a1-(1/7)*s1*s2))*b*sin(theta)^2-(1/7)*r*(a1*a2-s1*s2)*(q-(1/2)*r)*q))*r^4*b^2*cos(theta)^2+(b*(-a3*a4+s3*s4)*sin(theta)^2-s3*s1+a3*a1)*r^3*q*(q*r-(1/2)*b^2-(1/2)*r^2)^2*b^2*sin(theta)*cos(theta)+(1/4)*(((1/4)*(-a2*a4+s2*s4)*r^5-7*q*(-a2*a4+s2*s4)*r^4*(1/4)+(1/2)*(5*(q^2+(1/10)*b^2))*(-a2*a4+s2*s4)*r^3-7*q*b^2*(-a2*a4+s2*s4)*r^2*(1/4)+q^2*b^2*(-a2*a4+s2*s4)*r-(1/2)*q*(b*(-a2*a4+s2*s4)+a2*a1-s1*s2)*b^3)*b*sin(theta)^2+r*(a1*a2-s1*s2)*(q*b^2+(1/2)*q*r^2-(3/4)*b^2*r-(1/4)*r^3)*q)*r^4)*sqrt(b^4*cos(theta)^4+8*q*sin(theta)^2*b^2*r+2*b^2*cos(theta)^2*r^2+r^4)-(1/32)*q*b^10*(a2-s2)*(a2+s2)*cos(theta)^10+(1/8)*b^8*((2*((1/8)*(-a4^2+s4^2)*r^4+5*q*(a4^2-s4^2)*r^3*(1/8)+(s4-a4)*(s4+a4)*(q^2+(1/4)*b^2)*r^2-3*q*b^2*(s4-a4)*(s4+a4)*r*(1/4)+(1/8)*((-a4^2+s4^2)*b^2-a2^2+s2^2)*b^2))*r*sin(theta)^2+(1/4)*(-a3^2+s3^2)*r^5+(a3^2-s3^2)*q*r^4+((1/2)*b^2+q^2)*(s3-a3)*(s3+a3)*r^3-((-a3^2+s3^2)*b^2+7*a2^2*(1/4)-7*s2^2*(1/4))*q*r^2+(1/4)*b^4*(-a3^2+s3^2)*r+q*b^2*(a2-s2)*(a2+s2))*cos(theta)^8+(1/2)*r*q*(q*r-(1/2)*b^2-(1/2)*r^2)*b^8*sin(theta)*(-a2*a3+s2*s3)*cos(theta)^7+(1/8)*((s4-a4)*(s4+a4)*(q*r-(1/2)*b^2)^2*q*b^2*sin(theta)^4+((-a4^2+s4^2)*r^7+25*q*(a4^2-s4^2)*r^6*(1/4)+(15*(s4-a4))*(s4+a4)*(q^2+2*b^2*(1/15))*r^5-33*q*b*((-a4^2+s4^2)*b+2*s1*s4*(1/33)-2*a1*a4*(1/33))*r^4*(1/4)+((-a4^2+s4^2)*b^4+((12*(-a4^2+s4^2))*q^2-a2^2+s2^2)*b^2+2*q^2*(-a1*a4+s1*s4)*b)*r^3-(2*((1/8)*(7*(-a4^2+s4^2))*b^3+(1/2)*(-a1*a4+s1*s4)*b^2+q^2*(-a1*a4+s1*s4)))*q*b*r^2+2*q^2*b^3*(-a1*a4+s1*s4)*r-(1/2)*q*b^5*(-a1*a4+s1*s4))*sin(theta)^2+(-a3^2+s3^2)*r^7+(6*(a3^2-s3^2))*q*r^6+(12*(q^2+(1/6)*b^2))*(s3-a3)*(s3+a3)*r^5-(8*((-a3^2+s3^2)*b^2+(1/32)*a1^2+11*a2^2*(1/16)-(1/32)*s1^2-11*s2^2*(1/16)))*q*r^4+(b^4*(-a3^2+s3^2)+8*q^2*(-a3^2+s3^2)*b^2+q^2*(a1^2-s1^2))*r^3-(2*b^4*(-a3^2+s3^2)+((1/2)*a1^2-2*a2^2-(1/2)*s1^2+2*s2^2)*b^2+q^2*(a1^2-s1^2))*q*r^2+q^2*b^2*(a1-s1)*(a1+s1)*r-(1/4)*q*b^4*(a1^2+4*a2^2-s1^2-4*s2^2))*b^6*cos(theta)^6-r*q*(q*r-(1/2)*b^2-(1/2)*r^2)*(b^2-(1/2)*r^2)*b^6*sin(theta)*(-a2*a3+s2*s3)*cos(theta)^5+r*b^4*((s4-a4)*(s4+a4)*(q*b^2*r+(17/8)*q*r^3-(1/4)*b^4)*q^2*b^2*sin(theta)^4+((1/16)*(3*(-a4^2+s4^2))*r^8+39*q*(a4^2-s4^2)*r^7*(1/32)+(1/8)*(19*(s4-a4))*(s4+a4)*(q^2+3*b^2*(1/19))*r^6-45*q*b*((-a4^2+s4^2)*b+2*s1*s4*(1/45)-2*a1*a4*(1/45))*r^5*(1/32)-(1/4)*((1/4)*(3*(a4^2-s4^2))*b^2+(-a4^2+s4^2)*q^2+3*a2^2*(1/4)-3*s2^2*(1/4))*b^2*r^4+((1/32)*(3*(-a4^2+s4^2))*b^3+(1/8)*(a1*a4-s1*s4)*b^2+q^2*(-a3^2+s3^2)*b-9*q^2*(-a1*a4+s1*s4)*(1/4))*q*b*r^3-(1/8)*(19*((-a4^2+s4^2)*b^2+(1/19)*(10*(a1*a4-s1*s4))*b+4*a2^2*(1/19)-4*s2^2*(1/19)))*q^2*b^2*r^2-(2*((1/64)*(9*(a4^2-s4^2))*b^3+(1/32)*(-a1*a4+s1*s4)*b^2+q^2*(-a1*a4+s1*s4)))*q*b^3*r+(1/2)*q^2*b^5*(-a1*a4+s1*s4))*sin(theta)^2+(1/16)*(3*(-a3^2+s3^2))*r^8+5*q*(a3^2-s3^2)*r^7*(1/4)+(1/4)*(11*(q^2+3*b^2*(1/22)))*(s3-a3)*(s3+a3)*r^6-(1/2)*(3*((-a3^2+s3^2)*b^2+(1/48)*a1^2+13*a2^2*(1/24)-(1/48)*s1^2-13*s2^2*(1/24)))*q*r^5+(q^2+3*b^2*(1/16))*(s3-a3)*(s3+a3)*b^2*r^4-(1/8)*(9*((1/9)*((1/2)*a1^2-4*a2^2-(1/2)*s1^2+4*s2^2)*b^2+q^2*(a1^2-s1^2)))*q*r^3-((-a3^2+s3^2)*b^2-5*a1^2*(1/8)+5*s1^2*(1/8))*q^2*b^2*r^2-q*b^2*((1/4)*(a3^2-s3^2)*b^4+(1/8)*((1/4)*a1^2+a2^2-(1/4)*s1^2-s2^2)*b^2+q^2*(a1^2-s1^2))*r+(1/4)*q^2*b^4*(a1-s1)*(a1+s1))*cos(theta)^4-(2*(b^2+(1/4)*r^2))*r^3*q*(q*r-(1/2)*b^2-(1/2)*r^2)*b^4*sin(theta)*(-a2*a3+s2*s3)*cos(theta)^3+(q^4*b^4*r^2*(s4-a4)*(s4+a4)*sin(theta)^6-(2*(7*q*(a4^2-s4^2)*r^5*(1/16)+3*b*(-a1*a4+s1*s4)*r^4*(1/8)+q*b^2*(s4-a4)*(s4+a4)*r^3+q^2*(-a1*a4+s1*s4)*b*r^2+(1/2)*q*b^4*(s4-a4)*(s4+a4)*r+(1/8)*b^6*(a4^2-s4^2)))*q^2*b^2*sin(theta)^4+((1/8)*(-a4^2+s4^2)*r^10+23*q*(a4^2-s4^2)*r^9*(1/32)+(1/8)*(11*(s4-a4))*(s4+a4)*(q^2+2*b^2*(1/11))*r^8-(1/32)*(15*((-a4^2+s4^2)*b-2*s1*s4*(1/15)+2*a1*a4*(1/15)))*q*b*r^7-(1/2)*((1/4)*(a4^2-s4^2)*b^3+((-a4^2+s4^2)*q^2+(1/4)*a2^2-(1/4)*s2^2)*b+3*q^2*(-a1*a4+s1*s4)*(1/2))*b*r^6+(2*((1/64)*(23*(-a4^2+s4^2))*b^3+(1/16)*(-a1*a4+s1*s4)*b^2+q^2*(-a3^2+s3^2)*b+9*q^2*(-a1*a4+s1*s4)*(1/8)))*q*b*r^5-(1/8)*(5*((-a4^2+s4^2)*b^2+3*a1^2*(1/5)+8*a2^2*(1/5)-3*s1^2*(1/5)-8*s2^2*(1/5)))*q^2*b^2*r^4+4*q*((1/128)*(15*(-a4^2+s4^2))*b^3+(1/64)*(-a1*a4+s1*s4)*b^2+q^2*(-a1*a4+s1*s4))*b^3*r^3-((a4^2-s4^2)*b^4+(1/2)*(3*(-a1*a4+s1*s4))*b^3+q^2*(a1^2-s1^2))*q^2*b^2*r^2+2*q^3*b^5*(-a1*a4+s1*s4)*r-(1/2)*q^2*b^7*(-a1*a4+s1*s4))*sin(theta)^2+(1/8)*(-a3^2+s3^2)*r^10+3*q*(a3^2-s3^2)*r^9*(1/4)+(1/2)*(3*(q^2+(1/6)*b^2))*(s3-a3)*(s3+a3)*r^8-(1/2)*((-a3^2+s3^2)*b^2-(1/16)*a1^2+9*a2^2*(1/16)+(1/16)*s1^2-9*s2^2*(1/16))*q*r^7+((1/8)*b^4*(-a3^2+s3^2)+(a3^2-s3^2)*q^2*b^2+3*q^2*(-a1^2+s1^2)*(1/8))*r^6+9*q*(2*b^4*(-a3^2+s3^2)*(1/3)+(1/3)*((1/6)*a1^2+2*a2^2-(1/6)*s1^2-2*s2^2)*b^2+q^2*(a1^2-s1^2))*r^5*(1/8)+(2*(a3^2-s3^2))*q^2*b^4*r^4+2*q*((1/4)*b^4*(-a3^2+s3^2)+(1/16)*((1/4)*a1^2+a2^2-(1/4)*s1^2-s2^2)*b^2+q^2*(a1^2-s1^2))*b^2*r^3-3*q^2*b^4*(a1-s1)*(a1+s1)*r^2*(1/4)+q^3*b^4*(a1-s1)*(a1+s1)*r-(1/4)*q^2*b^6*(a1-s1)*(a1+s1))*r*b^2*cos(theta)^2-(b^2+(1/2)*r^2)*r^5*q*(q*r-(1/2)*b^2-(1/2)*r^2)*b^2*sin(theta)*(-a2*a3+s2*s3)*cos(theta)-r^3*(q^4*b^4*r^2*(s4-a4)*(s4+a4)*sin(theta)^6-2*r*(7*q*(-a4^2+s4^2)*r^4*(1/16)+(1/2)*q*b^2*(s4-a4)*(s4+a4)*r^2+(-a1*a4+s1*s4)*((1/2)*b^2+q^2)*b*r+(1/2)*q*b^4*(s4-a4)*(s4+a4))*q^2*b^2*sin(theta)^4+((1/32)*(a4^2-s4^2)*r^10+(1/8)*q*(-a4^2+s4^2)*r^9-(1/8)*(s4-a4)*(s4+a4)*((1/2)*b^2+q^2)*r^8-(1/32)*(3*((-a4^2+s4^2)*b+2*s1*s4*(1/3)-2*a1*a4*(1/3)))*q*b*r^7+(1/8)*(7*((1/28)*(a4^2-s4^2)*b^3+((-a4^2+s4^2)*q^2+(1/28)*a2^2-(1/28)*s2^2)*b+2*q^2*(-a1*a4+s1*s4)*(1/7)))*b*r^6-((1/16)*(7*(-a4^2+s4^2))*b^3+(1/8)*(-a1*a4+s1*s4)*b^2+q^2*(-a3^2+s3^2)*b+(1/4)*q^2*(-a1*a4+s1*s4))*q*b*r^5+(1/8)*(9*((-a4^2+s4^2)*b^2+(1/9)*(2*(a1*a4-s1*s4))*b+4*a2^2*(1/9)-4*s2^2*(1/9)))*q^2*b^2*r^4+(2*((1/64)*(7*(a4^2-s4^2))*b^3+(1/32)*(a1*a4-s1*s4)*b^2+q^2*(-a1*a4+s1*s4)))*q*b^3*r^3-q^2*b^2*((1/2)*(a4^2-s4^2)*b^4+(1/2)*(a1^2-s1^2)*b^2+q^2*(a1^2-s1^2))*r^2+2*q^3*b^5*(-a1*a4+s1*s4)*r+(1/4)*q^2*b^7*((-a4^2+s4^2)*b-2*s1*s4+2*a1*a4))*sin(theta)^2+(1/32)*(a3^2-s3^2)*r^10+(1/8)*q*(-a3^2+s3^2)*r^9-(1/8)*((1/2)*b^2+q^2)*(s3-a3)*(s3+a3)*r^8-(1/8)*((-a3^2+s3^2)*b^2+(1/4)*a1^2+(1/4)*a2^2-(1/4)*s1^2-(1/4)*s2^2)*q*r^7+((1/32)*(a3^2-s3^2)*b^4+q^2*(-a3^2+s3^2)*b^2+(1/8)*q^2*(a1^2-s1^2))*r^6-(1/8)*(4*b^4*(-a3^2+s3^2)+((1/2)*a1^2+3*a2^2-(1/2)*s1^2-3*s2^2)*b^2+q^2*(a1^2-s1^2))*q*r^5+q^2*((-a3^2+s3^2)*b^2+(1/8)*s1^2-(1/8)*a1^2)*b^2*r^4+((1/4)*(a3^2-s3^2)*b^4+(1/8)*(-a2^2+s2^2+(1/4)*s1^2-(1/4)*a1^2)*b^2+q^2*(a1^2-s1^2))*q*b^2*r^3+q^3*b^4*(a1-s1)*(a1+s1)*r-(1/4)*q^2*b^6*(a1-s1)*(a1+s1))))/(sqrt(b^4*cos(theta)^4+8*q*sin(theta)^2*b^2*r+2*b^2*cos(theta)^2*r^2+r^4)*(r^2+b^2*cos(theta)^2)^3*(-b^2+2*q*r-r^2)^2)]

solve(eqn, {a1, a2, a3, a4, n1, n2, n3, n4, s1, s2, s3, s4})

``

NULL


 

Download solve.mw

 

Maple does not have full_simplify() command like with Mathematica.

So I figured why not make one? 

Here is a basic implementation. All what it does is blindly tries different simplifications methods I know about and learned from this forum then at the end sorts the result by leaf count and returns to the user the one with smallest leaf count.

I tried it on few inputs.

Advantage of full_simplify() is that user does not have to keep trying themselves. One disadvantage is that this can take longer time. timelimit can be added to this to make it not hang.

Can you see and make more improvement to this function?

May be we all together can make a better full_simplify() in Maple to use. Feel free to edit and change.

#version 1.0  
#increment version number each time when making changes.

full_simplify:=proc(e::anything)
   local result::list;
   local f:=proc(a,b)
      RETURN(MmaTranslator:-Mma:-LeafCount(a)<MmaTranslator:-Mma:-LeafCount(b))
   end proc;

   #add more methods as needed

   result:=[simplify(e),
            simplify(e,size),
            simplify(combine(e)),
            simplify(combine(e),size),
            radnormal(evala( combine(e) )),
            simplify(evala( combine(e) )),
            evala(radnormal( combine(e) )),
            simplify(radnormal( combine(e) )),
            evala(factor(e)),
            simplify(e,ln),
            simplify(e,power),
            simplify(e,RootOf),
            simplify(e,sqrt),
            simplify(e,trig),
            simplify(convert(e,trig)),
            simplify(convert(e,exp)),
            combine(e)
   ];   
   RETURN( sort(result,f)[1]);   

end proc:

worksheet below

 


 

204648

#version 1.0  
#increment version number each time when making changes.

full_simplify:=proc(e::anything)
   local result::list;
   local f:=proc(a,b)
      RETURN(MmaTranslator:-Mma:-LeafCount(a)<MmaTranslator:-Mma:-LeafCount(b))
   end proc;

   #add more methods as needed

   result:=[simplify(e),
            simplify(e,size),
            simplify(combine(e)),
            simplify(combine(e),size),
            radnormal(evala( combine(e) )),
            simplify(evala( combine(e) )),
            evala(radnormal( combine(e) )),
            simplify(radnormal( combine(e) )),
            evala(factor(e)),
            simplify(e,ln),
            simplify(e,power),
            simplify(e,RootOf),
            simplify(e,sqrt),
            simplify(e,trig),
            simplify(convert(e,trig)),
            simplify(convert(e,exp)),
            combine(e)
   ];   
   RETURN( sort(result,f)[1]);   

end proc:

#test cases
T:=[(-192*cos(t)^6 + 288*cos(t)^4 - 912*cos(t)^3 - 108*cos(t)^2 + 684*cos(t) - 54)/(4608*cos(t)^9 - 10368*cos(t)^7 + 6208*cos(t)^6 + 7776*cos(t)^5 - 9312*cos(t)^4 - 2440*cos(t)^3 + 3492*cos(t)^2 + 372*cos(t) - 1169),
(10*(5+sqrt(41)))/(sqrt(70+10*sqrt(41))*sqrt(130+10*sqrt(41))),
((6-4*sqrt(2))*ln(3-2*sqrt(2))+(3-2*sqrt(2))*ln(17-12*sqrt(2))+32-24*sqrt(2))/(48*sqrt(2)-72)*(ln(sqrt(2)+1)+sqrt(2))/3,
(1/2)*exp((1/2)*x)*(cosh((1/2)*x)-cosh((3/2)*x)+sinh((1/2)*x)+sinh((3/2)*x))
];

[(-192*cos(t)^6+288*cos(t)^4-912*cos(t)^3-108*cos(t)^2+684*cos(t)-54)/(4608*cos(t)^9-10368*cos(t)^7+6208*cos(t)^6+7776*cos(t)^5-9312*cos(t)^4-2440*cos(t)^3+3492*cos(t)^2+372*cos(t)-1169), 10*(5+41^(1/2))/((70+10*41^(1/2))^(1/2)*(130+10*41^(1/2))^(1/2)), (1/3)*((6-4*2^(1/2))*ln(3-2*2^(1/2))+(3-2*2^(1/2))*ln(17-12*2^(1/2))+32-24*2^(1/2))*(ln(1+2^(1/2))+2^(1/2))/(48*2^(1/2)-72), (1/2)*exp((1/2)*x)*(cosh((1/2)*x)-cosh((3/2)*x)+sinh((1/2)*x)+sinh((3/2)*x))]

full_simplify~(T)

[-6*(10+cos(6*t)+38*cos(3*t))/(-975+18*cos(9*t)-70*cos(3*t)+194*cos(6*t)), (1/2)*2^(1/2), (1/9)*(ln(1+2^(1/2))+2^(1/2))^2, (1/2)*exp(x)-(1/2)*exp(-x)]

 


 

Download full_simplify.mw

I just installed Maple 2024.0 and I discovered a problem in that the "Manage Style Sets" under the "Format" menu DOESN'T WORK!!! Type the following to understand how this feature works and see if you have the same problem:

>?workshhet,documenting,styles

Follow the instructions.  They are pretty simple.  Find a worksheet that has the styles you like and open it up and then save this Style Set in Maple 2024.0.  Then close it.  Open a new worksheet.  Go to "Format" and then click on "Managing Style Sets" and then click on the Style Set file name you saved previously and you will find that it does not set the style set you saved previously.  

 

Another problem you will find is that it doesn't save your Style Set file where it is supposed to save it.  It needs to be saved in a Maple 2024.0 created folder known as "data" and then in a folder under "data" called "stylesets".  I had to manually go find my Style Set file and copy and paste it there.  

Please check this out and see if I am wrong.  I use the "Format" "Manage Style Sets" option a lot when I download files from this blog and ".mw"  have fonts size 12 and they default to the nearly impossible to read font!  After I have applied the "Manage Style Sets" I can see what I have! But for some reason in Maple 2024.0 this feature was not tested or something has changed in Maple 2024.0 to break this feature!

AllGraphs is a new function in Maple 2024. Good things!

However, it seems that most of its functionalities are already provided by NonIsomorphicGraphs, and its speed even lags behind that of NonIsomorphicGraphs 

 

I'm curious about what truly sets this function apart from existing ones. It generates isomorphic graphs if nonisomorphic=falseBut I donot know what its application is. Supporting directed graphs is a new thing, but its speed is not well.

iterator := GraphTheory[AllGraphs](vertices = 6, edges =6..7, connected, nonisomorphic)
s:=[seq(p, p = iterator)]:
nops(s)

Note that this function is suitable for generating non-isomorphic connected graphs with 6 vertices and either 6 or 7 edges. It doesn't hold an advantage in terms of speed, andNonIsomorphicGraphs also provides an iteration option.

One may easily spot that the symbols “” and “” are missing here and here

These two PDF files were printed officially, so I think they can be considered examples of best practice for the export functionality. Does this mean that this functionality is still defective in the most recent release?

The following code effectively converts the image to the JPG format.
with(GraphTheory):
s:=DrawGraph(CompleteGraph(5),size=[250,250])
Export("D:\\s1.jpg",s)

But I would like to export it using PDF format. However, the modified code below seems to be quite unsuccessful. I am aware that Maple has export options in the front end, but I still prefer to use code for this purpose.

Export("D:\\s1.pdf",s)

Error, (in Export) invalid input: member received _ImportExport:-InfoTable["PDF"][4], which is not valid for its 2nd argument, s

There are two reasons for this.

with(GraphTheory):
Graphs:=[NonIsomorphicGraphs(6,8,output=graphs,outputform = graph)]:
num_g:=nops(Graphs):
num:=ceil((num_g)/5.):
M1:=Matrix (num,5,(i,j)->`if`((i-1)*5+j<=num_g, DrawGraph(Graphs[(i-1)*5+j],size=[250,250] ,overrideoptions ,showlabels=false,style=planar, stylesheet =  [
 vertexcolor     = orange
,vertexfontcolor = black
,vertexborder    = false
,edgethickness   = 0.6
,edgecolor       = MidnightBlue
,vertexshape     =  "circle"
,vertexfont      = [Arial, 4],
vertexthickness=5], caption = cat(H__,5*(i-1)+j),captionfont=["ROMAN",7]),plot(x = 0 .. 1, axes = none))):
DocumentTools:-Tabulate (M1[1..5,.. ],widthmode=percentage ,width=80 , exterior =all):

I  generated some graphs via maple and would like to put them in my paper. So I am going to convert the following worksheet to pdf.

with(GraphTheory):
Graphs:=[NonIsomorphicGraphs(6,8,output=graphs,outputform = graph)]:
num_g:=nops(Graphs):
num:=ceil((num_g)/5.):
M1:=Matrix (num,5,(i,j)->`if`((i-1)*5+j<=num_g, DrawGraph(Graphs[(i-1)*5+j],size=[250,250] ,overrideoptions ,showlabels=false,style=planar, stylesheet =  [
 vertexcolor     = orange
,vertexfontcolor = black
,vertexborder    = false
,edgethickness   = 0.6
,edgecolor       = MidnightBlue
,vertexshape     =  "circle"
,vertexfont      = [Arial, 4],
vertexthickness=5], caption = cat(H__,5*(i-1)+j),captionfont=["ROMAN",7]),plot(x = 0 .. 1, axes = none))):
DocumentTools:-Tabulate (M1[1..5,.. ],widthmode=percentage ,width=80 , exterior =all) :

 

 

But there was a problem with the exported pdf. There was some mosaic stuff at the vertices of all those graphs. It was strange. (I want to reduce the size of vertices of the graphs in order not to look crowded.)

 

Only when I insert the option vertexpadding and set a large enough size  of vertex (for this example, we set vertexpadding=7),  it won't go wrong. However, in fact, we often need make vertice‘s size smaller , especially when there are more vertices.

Using a pdf viewer, it seems that after exporting, there is a box above each vertex.

 

 

First 8 9 10 11 12 13 14 Last Page 10 of 46