Question: how did Maple obtain this solution to this ODE?

in this ODE, with initial conditions, I am trying to verify my solution, but I can't figure how Maple obtained the final answer.  I can obtain same solution, but before using the initial conditions to find the constant of integrations. The problem comes in solving for the constant of integration from initial conditions. I do not know how Maple did it, becuause when I do the normal steps, I get division by zero.

restart;
ode:=diff(y(x),x)=x*ln(y(x)):
ic:=y(1)=1:
sol:=dsolve({ode,ic},y(x));

gives "sol := y(x) = 1"

Now I solve without IC, then try to find _C1 by hand

sol:=dsolve(ode,y(x));

       sol := y(x) = exp(RootOf(x^2+2*Ei(1, -_Z)+2*_C1))

Now used remove_RootOf

sol2:=DEtools:-remove_RootOf(sol);

            sol2 := x^2+2*Ei(1, -ln(y(x)))+2*_C1 = 0

Now I followed the steps I learned at school, which is to plugin y=1 and x=1 in the solution to get an equation to solve for _C1

eq := subs({y(x)=1,x=1},sol2);

            eq := 1+2*Ei(1, -ln(1))+2*_C1 = 0

But Ei(1, -ln(1)) is a division by zero. So can't solve for _C1

solve(eq,_C1);
       Error, (in Ei) numeric exception: division by zero

So how would you solve for _C1 in the above? Or how did the smart Maple do it?

I tried using limits, but that did not help.  I tried using allvalues instead of remove_RootOf, and that did not get rid of RootOf.  Next I tried not to remove RootOf and keep it there to see what happens

sol:=dsolve(ode,y(x));
eq := subs({y(x)=1,x=1},sol);
             eq := 1 = exp(RootOf(1+2*Ei(1, -_Z)+2*_C1))

c1:=solve(eq,_C1, AllSolutions);
              c1 := -1/2-Ei(1, -(2*I)*Pi*_Z1)

subs(_C1=c1,sol);
             y(x) = exp(RootOf(x^2+2*Ei(1, -_Z)-1-2*Ei(1, -(2*I)*Pi*_Z1)))

simplify(%);
            x^2+2*Ei(1, -ln(y(x)))-1-2*Ei(1, -(2*I)*Pi*_Z1) = 0

DEtools:-remove_RootOf(%);
           x^2+2*Ei(1, -ln(y(x)))-1-2*Ei(1, -(2*I)*Pi*_Z1) = 0

solve(%,y(x));
          exp(RootOf(x^2+2*Ei(1, -_Z)-1-2*Ei(1, -(2*I)*Pi*_Z1)))

So I can't figure how Maple obtained y(x)=1. Maple must have used different method to solve for _C1.

What would be the Maple commands to use to obtain y(x)=1, starting from

            sol:=dsolve(ode,y(x));

and given that y(1)=1 ?

 

Please Wait...