How to solve implicit function without using solve() function?

I searched online how to solve a implicit function in Matlab and here is the link it sent me to, https://www.mathworks.com/matlabcentral/answers/247461-best-way-to-solve-for-a-implicit-equation. I attempted to use the example in the link, but I get an error.
Exiting fzero: aborting search for an interval containing a sign change
because complex function value encountered during search.
(Function value at -0.28 is 15.0459-1.88983i.)
Check function or try again with a different starting value.
I was thinking about using the solve() function in Matlab, however I would need to purchase the symbolic math toolbox. :/ If there isn't a solution for this I may just re-write the equation in explicit form.
Attached is an image of the equation. I want to solve for 'f'.
func = (1 / sqrt(f5)) - 2 * log((eps / D) / 3.7) + ((2.51) / (Re * sqrt(f5)));
f5 = solve(func, 1)

 Respuesta aceptada

If you have the Optimization Toolbox, use the fsolve function:
D = something;
Re = something_else;
func = @(f5) (1 / sqrt(f5)) - 2 * log((eps / D) / 3.7) + ((2.51) / (Re * sqrt(f5)));
f5 = fsolve(func, 1)

2 comentarios

I don't have the Optimization Toolbox. Thanks for answering my question and letting me know which toolbox I need to get.
My pleasure.
That, and the Global Optimization Toolbox are both worth getting, for their robust optimization routines.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Etiquetas

Preguntada:

el 27 de En. de 2019

Comentada:

el 27 de En. de 2019

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by