2.75   ODE No. 75

\[ y'(x)-e^{x-y(x)}+e^x=0 \]

Mathematica : cpu = 0.151781 (sec), leaf count = 18

DSolve[E^x - E^(x - y[x]) + Derivative[1][y][x] == 0,y[x],x]
 
\[\left \{\left \{y(x)\to \log \left (1+e^{-e^x+c_1}\right )\right \}\right \}\]

Maple : cpu = 0.191 (sec), leaf count = 20

dsolve(diff(y(x),x)-exp(x-y(x))+exp(x) = 0,y(x))
 
\[y \left (x \right ) = -{\mathrm e}^{x}+\ln \left (-1+{\mathrm e}^{{\mathrm e}^{x}+c_{1}}\right )-c_{1}\]

Hand solution

\begin{align} y^{\prime } & =e^{x-y}-e^{x}\nonumber \\ y^{\prime } & =e^{x}\left ( e^{-y}-1\right ) \nonumber \\ \frac {1}{e^{-y}-1}dy & =e^{x}dx\tag {1}\end{align}

Integrating both sides. \(\int \frac {1}{e^{-y}-1}dy\). Let \(e^{-y}=u\), then \(\frac {du}{dy}=-e^{-y}=-u\). Hence \(dy=-\frac {du}{u}\), therefore the integral becomes

\[ \int \frac {1}{u-1}\left ( -\frac {du}{u}\right ) =-\int \frac {1}{u\left ( u-1\right ) }du \]

But \(\frac {1}{u\left ( u-1\right ) }=-\left ( \frac {1}{u}-\frac {1}{u-1}\right ) \), hence

\begin{align*} -\int \frac {1}{u\left ( u-1\right ) }du & =\int \left ( \frac {1}{u}-\frac {1}{u-1}\right ) du\\ & =\ln u-\ln \left ( u-1\right ) \\ & =\ln e^{-y}-\ln \left ( e^{-y}-1\right ) \\ & =-\left ( \ln \left ( e^{-y}-1\right ) -\ln e^{-y}\right ) \end{align*}

But \(\ln x-\ln y=\ln \left ( \frac {x}{y}\right ) \) and the above becomes

\begin{align*} \int \frac {1}{e^{-y}-1}dy & =-\left [ \ln \left ( \frac {e^{-y}-1}{e^{-y}}\right ) \right ] \\ & =-\ln \left ( 1-e^{y}\right ) \end{align*}

Back to (1), when we integrate both sides, and since \(\int e^{x}dx=e^{x}+C\)

\begin{align*} -\ln \left ( 1-e^{y}\right ) & =e^{x}+C\\ \ln \left ( 1-e^{y}\right ) & =-e^{x}+C_{1}\end{align*}

Hence

\begin{align*} 1-e^{y} & =\exp \left ( -e^{x}+C_{1}\right ) \\ e^{y} & =1-\exp \left ( -e^{x}+C_{1}\right ) \end{align*}

Taking logs

\[ y=\ln \left ( 1-\exp \left ( -e^{x}+C_{1}\right ) \right ) \]

Let \(e^{C_{1}}=C_{2}\) then

\[ y=\ln \left ( 1-C_{2}e^{-e^{x}}\right ) \]

Verification

ode:=diff(y(x),x)=exp(x-y(x))-exp(x); 
my_sol:=log(1-_C1*exp(-exp(x))); 
odetest(y(x)=my_sol,ode); 
0