Error using fzero. I don't know where to place the (.) properly. Please help
4 views (last 30 days)
Show older comments
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');
0 Comments
Accepted Answer
Shashank Prasanna
on 1 Aug 2013
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 Comments
Shashank Prasanna
on 1 Aug 2013
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))))
More Answers (0)
See Also
Categories
Find more on Optimization Toolbox in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!