Help Using Newton Rhapson Method for Colebrook equation

For context, the homework assignment wants us to use the Newton Rhapson method to solve for the friction value using Colebrook's equation. I have my code below but I keep getting errors saying that in line 18 matrix dimensions must agree. I'm not exactly sure what the issue is and our professor told us to approach the problem this way. Any help would be greatly appreciated. Code is attached

 Accepted Answer

Hello Mary,
The problem is with the function:
diff(h(x))
This function operates with vectors and it only computes the difference. Also, to obtain the derivative you need to divide by an appropriate step size. You have two options here:
  1. Compute the exact derivative with a symbolic asistant (or by hand ...) and then add to your code in line 16.
  2. Approximate the derivative with a centered finite difference (or backward,forward).
I used here the second option,
x0 = 0.01; %Guess for initial x
x=x0;
dx = 1e-3; % Step size for the centered finite difference
for i=0:100000
y=x;
m = (h(x+dx) - h(x-dx)) / (2*dx); % centered finite difference
x = y-(h(x)/m);
if x==y
break
end
end
Best.

5 Comments

Other observation.
The stopping condition is not the most suitaible. I prefer to use the absolute error
error = abs(x-y)
Then you can compare the error respect to a tolerance value
if error <= tol
break
end
Hi Lemuel, I tried following your suggestions and I'm no longer getting errors but the code will not perform the calculations, it just lists the number of bisections as 0, I have attached the updated code.
Check this file. I made several modification to your code. You had some sintax errors and others problems with the workflow of the algorithm.
Thank you I highly appreciate it.
You are welcome. I am a hydraulic engineer and in a few occasions I used that formula. But I prefer the explicit formula of Swamee-Jain.

Sign in to comment.

More Answers (1)

Can I help me please

3 Comments

How can I write marry's question at Matlab programme ,using newton Raphson and colebrook ? Please help me! Pleaseeeeee :( if I don't solve this problem ,I can failure at my lesson

How can I solve marry's problem at matlab using newton Raphson and colebrook , help me please if I don't solve this problem I can failure in my lesson

Sign in to comment.

Categories

Find more on Interpolation 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!