In the code below, I numerically solve the equation for n=0.5 (constant), but you should be similar for the other values โโyou choose.
Note that the SOLVE function returned only the first solution found. Therefore, I directly call the MuPAD engine and each time I specify the solution search interval:
%# lets plot the function: f(x) = exp(-x)+x*exp(-x) h(1) = ezplot('0.5', [-1.5 10]); hold on h(2) = ezplot('exp(-x)+x.*exp(-x)', [-1.5 10]); set(h(1), 'LineStyle',':', 'Color','r') legend(h, 'y = 0.5', 'y = exp(-x)+x.*exp(-x)') %# The numeric solver only returns the first solution that it finds x = solve('exp(-x)+x*exp(-x)=0.5') x = vpa(x) %# we can call the MuPAD solver and give the interval where solution can be found x1 = evalin(symengine, 'numeric::solve(exp(-x)+x*exp(-x)=0.5, x = -1..0)') x2 = evalin(symengine, 'numeric::solve(exp(-x)+x*exp(-x)=0.5, x = 0..3)') %# show the solutions on the plot plot([x1 x2], 0.5, 'ro')
Solution returned by SOLVE:
x = - 1.0*lambertw(0, -1/(2*exp(1))) - 1.0 x = -0.76803904701346556525568352607755
MuPAD Digital Solutions:
x1 = -0.76803904701346556525568352607755 x2 = 1.6783469900166606534128845120945

source share