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

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

Maple 2018

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 ?

﻿