Error using fzero. I don't know where to place the (.) properly. Please help

Here's the error code:
Error using fzero (line 289)
FZERO cannot continue because user supplied function_handle ==>
@(f)(1/sqrt(f)+0.86*2.303*log(E(a)./3.7+2.51/(Re.*sqrt(f))))
failed with the error below.
Matrix dimensions must agree.
Error in LBYCHEH_EA2_Ex42_ChengVillalva_CindyMako (line 11)
z = fzero(x,30)
Codes:
Re = 1500:15000;
E = [0.00001;0.00005;0.0001;0.0005;0.001;0.005;0.01;0.03;0.05;0.07;0.09;0.1];
hold all;
a = 1;
while a<12
f = 0.16*Re.^(-0.16)
x = @(f)(1/sqrt(f) + 0.86*2.303*log(E(a)./3.7 + 2.51/(Re.*sqrt(f))))
z = fzero(x,30)
loglog(Re,z);
a = a + 1;
end
grid on;
title('Colebrook-White Moody Chart');
xlabel('Reynolds number, Re');
ylabel('Fanning friction factor, f');

 Réponse acceptée

At a quick glance you are missing a dot '.' after 2.51
x = @(f)(1/sqrt(f) + 0.86*2.303*log(E(a)./3.7 + 2.51./(Re.*sqrt(f))))
Try that

3 commentaires

Still won't work :(
It says:
Operands to the and && operators must be convertible to logical scalar values.
Error in fzero (line 308) elseif ~isfinite(fx) ~isreal(fx)
Error in LBYCHEH_EA2_Ex42_ChengVillalva_CindyMako (line 11) z = fzero(x,30)
You use f twice. You may want to use a different variable
f = 0.16*Re.^(-0.16)
x = @(f)(1/sqrt(f) + 0.86*2.303*log(E(a)./3.7 + 2.51/(Re.*sqrt(f))))
Thank you!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur MATLAB dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by