MATLAB: Problem when using solve, do I need a different function

MATLABnonlinearequationssolve

Hello,
I am trying to solve an equation using Matlab. It is not very difficult as I can solve it with a TI-NspireCX CAS calculator. However when I enter it in Matlab I got an error.> I think I need a different function to solve non linear equations.
I have the constants stated in the end of this question. If I enter the equation eq1 as follows
syms U
eq1=U-(Vp*g*Rhop*dp/(12*nu*Ap*Rhof*(1+0.15*((U*dp/nu)^0.687))))
I get the error
>> solve(eq1,U)
Warning: The solutions are parametrized by the symbols:
z2 =
RootOf(6651387589061087*570373326759099375^(313/1000)*73786976294838206464^(687/1000)*z^1687
+ 25291827111579717140695933190137500*z^1000 - 4231294337740989007622062917984000000, z)
> In solve at 171
If I enter a simpler equation I get the result
for example
>> eq2=U-(Vp*g*Rhop*dp)/(12*nu*Ap*Rhof);
>> solve(eq2,U)
ans =
5886306028412047/35184372088832
What could be the problem? Thanks very much!
David R
%Variables and constants needed for the equation
dp=2*(10^(-3)); %Droplet diametre m
Ap=pi*(dp^2)/4; %Droplet surface m2
Sp=pi*(dp^2); %surface of heat exchange of particle/droplet m2
nu=15.46*10^-6; %kinematic viscosity@279K
Stow=10*7; %Tower cross section
Airf=600000; %Air flow rate in m3/h
Uf=Airf/Stow/3600; % Air flow speed
Rhop=1400; % Density of particle kg/m3
Rhof=1.18; % Density of air kg/m3@279K
g=9.81; %gravity m/s2
Vp=(4/3)*pi*(dp/2)^3; % volume of particle/droplet m3
Cp=1680; % Specifique heat of particle in J/kg
Tinf=283; %Air flow temperature in Kelvin
T0=443; %Droplet cristalization temperature in Kelvin
Ti=459; %Temperature at nozzle (spray outlet)
L_air=0.025; %Heat conductivity of air W/m'C
Hs=187500; % jules/kg

Best Answer

There is no error. The solution of the equation had some repeated element in it, so to simplify matters, solve() created a temporary variable "z2" to store the repeated part, and then output the answer in terms of that temporary variable.
The created variable, an expression in RootOf() does not have any real variables in it. RootOf(f(z),z) stands for the set of z values such that f(z) = 0 -- that is, RootOf() finds the roots of the equation.
In your case, there are 1687 different roots of the expression, and if the symbolic toolbox were to list out all 1687 roots, the result would be so difficult to understand that you would not be able to make any sense out of it.
Have you considered restricting your solutions to a particular domain (e.g., Real values) or particular range ?