I have a function and I would like for it to print out an answer if I feed it a value.
2 views (last 30 days)
Show older comments
I am using the Colebrook equation, which is a function of "f" and "Re" PLEASE READ(RE IS WHERE 126,400 IS). I haven't used MATLAB in a long time. Basically if I plug in a value for f into the equation, I get a value for Re. I need to do this for f = 0:0.0001:1 (which is a 10000x1 double) so I'll get the respective values for Re with respect to f = 0:0.0001:1. How do I go about doing this in MATLAB? I understand that I need to set the equation equal to zero, but I do not know what to do after that.
Here is the equation
2 Comments
Accepted Answer
Star Strider
on 4 May 2018
Probably the easiest way is to have the Symbolic Math Toolbox solve for ‘Re’, then do the calculations in an anonymous function created by matlabFunction:
syms f Re
Eqn = 1/sqrt(f) == -2*log(4.2E-5/3.7 + 2.51/(Re*sqrt(f)));
Re_sol = solve(Eqn, Re);
ReFcn = matlabFunction(Re_sol)
f = linspace(0, 1, 1E+4);
figure
semilogy(f, ReFcn(f))
grid
xlabel('f')
ylabel('Re')
This produces:
ReFcn = @(f) (1.0./sqrt(f).*(2.51e2./1.0e2))./(exp(1.0./sqrt(f).*(-1.0./2.0))-1.135135135135135e-5);
You might want to use abs(ReFcn(f) in the plot, to avoid the ‘Warning: Negative data ignored’ message.
0 Comments
More Answers (0)
See Also
Categories
Find more on Special Values in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!