## An imposible math equation?

The Colebrook-White equation was published 1937 and just about all designers of pipe say the equation is impossible to solve. But Chris taught me a trick that most pipe companies are saying “That can’t be right”.

They are wrong. I call our solution a “Trick of mind” because it is an “out of the box” method. This version of the equation is arranged to work OK in Excel. Just copy and paste.

**1/sqrt(F)=-2*Log(Rr/3.7+2.51/Re*1/sqrt(F))**

Lets assume that RR= 0.04 and Re=200000, find F, ( F is the Darcy Friction Factor )

I think a few members of site (besides Chris) will be able to find a solution. I did in about 30 minutes. Then after working with Chris he showed me a much simpler, and quicker method that many engineers are now amazed by… some say that can’t be right, but they test it, and say WOW, it is a solution.

If you give up, Google this “*A New Simplified, Accurate, method for Colebrook equations*”

September 20th, 2011 at 11:32 pm

F ~ 0.0648

September 21st, 2011 at 5:28 am

That is close, the left side divided by the right side is equal to 1.00001008169349 There is one approximation method that can get that close with those Re and Rr variables.

September 21st, 2011 at 5:36 am

I should show how to check that… With F as 0.0648 we get this

Left side 1/sqrt(F)= 3.928371007

Right side -2*Log(Rr/3.7+2.51/Re*1/sqrt(F))=3.928331402

September 21st, 2011 at 5:48 am

F ~ 0.06480130528386

September 21st, 2011 at 6:17 am

Test F= 0.0648013052838600

Left Side = 3.9283314420718200

Right Side = 3.9283314420715100

Accuracy = 1.0000000000000800

Very close!

September 21st, 2011 at 11:45 am

Using an iterative methods reminds me of this.

http://en.wikipedia.org/wiki/Methods_of_computing_square_roots

September 21st, 2011 at 4:52 pm

Kel9902 was very, very close. The answer is 0.0648013052838701

But Kel9902 must have the right method to get that close.

To tell everyone, the details…

1. Guess a value for 1/sqrt(F), guess 3

2. Get the right hand side result of the equation using 3

3. Use that result for the next value of 1/sqrt(F)

4. Continue using the result for the next value.

5. After an average of 7 of these loops the result

stays the same. You have now found the value of 1/sqrt(F)

To find F, just divide one by that value squared.

In 2009, a very complex (9 pages) of small print give a good

solution… about 10 decimal places… they called it the best solution.

I laughed at them.

Chris, Thank you for your help. I see about 7,000 copies of our method

has been downloaded from several pipe web sites, including MrExcel.

The solution was a “Trick of Mind”.

September 21st, 2011 at 6:45 pm

Hi Ragknot. What beats me is that the technique I showed you is completely standard.

The trick was to define:

f(F) = 1/(2*Log(Rr/3.7+2.51/(Re*sqrt(F))))

^{2}i.e. f(F) is the reciprocal of the square of the original equation

and then recurse: F

_{n+1}= f(F_{n})Let the solution be F = F

_{∞}, then f(F_{∞}) = F_{∞}.At the solution, Sign(f(F

_{∞}+ ε) – F_{∞}) = -Sign(ε).By good luck, that is true even when |ε| >> 0, so the recursion converges (for practical purposes) no matter how poor the initial guess.

I’m curious as to how Kel9902 did it.

September 21st, 2011 at 7:28 pm

Hello Chris, I understand what you are saying. And the procedure you mentioned is the best and most useful.

But trying to put that out for use was to hard. I decided to first show this quick and easy solution to prove it is accurate and quick. There are at least four different Colebrook equations that are similar, but slightly different, this method works for each of them.

At first, pipe companies want to hammer me for saying it was a solution… because they did not want the public to know. They wanted to sell their own approximations. This is now hammering those companies because people are seeing that this IS the solution. A few web sites, after finding this is true, are letting people know they can get my FREE VBA for each of those four solutions.

CheResource.com has become my friend and were the first to let engineers download what they confirmed was a great solution. Some pipe companies are still arguing that my (our) solution is a fake.

September 21st, 2011 at 7:45 pm

And I hope Kel9902 will inform us of how he did it. Just because I am curious. I suspect he looked on the web and saw it somewhere. One or two public approximations sometime do have good solutions, but lots of times they fail to be right.

September 21st, 2011 at 7:59 pm

I’d forgotten that I’d shown you another method:

From 1/Sqrt(F) = -2*Log(Rr/3.7+2.51/(Re*Sqrt(F))),

define RRF = 1/Sqrt(F), then rewrite as

RRF = -2*Log(Rr/3.7+2.51*RRF/Re))

then iterate by putting a guess into the RHS to get the next guess. When you’re done, F = 1/RRF

^{2}I’d start with RRF = 1 for the first guess as it’s nice.

If there is a typical value for F, I’d use that instead.

By explaining the recursion, people can deploy it any way they like.

Method 1 (the original method):

Function ColebrookLambda(ByVal ReynoldsNumber As Double, ByVal RoughnessFactor As Double, Optional ByVal SigFigs As Integer = 15) As Double

Dim FNew As Double

Dim FOld As Double

Dim ToLog10 as Double

ToLog10 = 1# / Log(10#)

FOld = 1

Do

FNew = 1 / (2 * ToLog10 * Log(2.51 / (ReynoldsNumber * Sqr(FOld)) + RoughnessFactor / 3.7)) ^ 2

If Abs(FNew – FOld) * 10 ^ (1 + SigFigs) < FNew Then Exit Do

FOld = FNew

Loop

ColebrookLambda = FNew

End Function

Method 2 (highly optimized):

Function FastColebrookLambda(ByVal ReynoldsNumber As Double, ByVal RoughnessFactor As Double, Optional ByVal SigFigs As Integer = 15) As Double

Dim RRLNew As Double

Dim RRLOld As Double

Dim A As Double

Dim B As Double

Dim ToLog10 As Double

ToLog10 = 1# / Log(10#)

‘this is 2 to 3 times faster because square rooting and dividing has been eliminated inside the loop

A = 2.51 / ReynoldsNumber

B = RoughnessFactor / 3.7

RRLOld = 1

Do

RRLNew = Abs(2 * ToLog10 * Log(A * RRLOld + B))

If Abs(RRLNew – RRLOld) * 10 ^ (1 + SigFigs) < RRLNew Then Exit Do

RRLOld = RRLNew

Loop

FastColebrookLambda = 1 / RRLNew ^ 2

End Function

September 21st, 2011 at 8:09 pm

I’ve just noticed that you say some companies are saying that the solution is a fake. They’re right, this is not a mathematical solution. The implicit equation cannot be solved to make F (aka lambda) be explicit. But it is a very rapidly convergent numerical method.

I have allowed a code buglet. I should have checked the SigFigs argument and made sure that it wasn’t greater than 15 (say). The equation itself will be an engineering approximation, and I doubt that any of the data is good to as much as 3 sig figs. So working to 6 say, is already getting excessive.

The most precisely measured quantities in physics are about 15 sig figs, and they are highly exceptional. Those that stand out were used to show that Richard Feynman’s (et al) QED (Quantum ElectroDynamics) theory of the electron was good. See: http://en.wikipedia.org/wiki/Precision_tests_of_QED for more.

September 21st, 2011 at 9:17 pm

Of course you are right Chris, but this is my path to show ordinary people the way to solve these equations with no programming. Once it is widely known that those specialty approximations are not worth their costs (some cost thousand of $) they will be abandoned. I think this plan will eventually save people money. Everyone needs pipelines for water, gas etc.

September 21st, 2011 at 9:33 pm

A math solution or a practical answer that will work?

I know what you are saying. 3.14159 is not “Math Solution” for pi(). But for most engineering designs 3.14159 provides the solution, but for some you might need more accuracy.

For most pipe designs 5 decimals for a friction factor is more than adequate. Some pipe companies have said this method is not better than theirs and it is not a solution, but my argument is mine is easier, more accurate and it cheaper than theirs.

September 22nd, 2011 at 1:06 pm

Hi Ragknot. Unless these companies are using an approximation that can be solved explicitly, their “solutions” are fake as well.

I fully accept that even if it were possible to explicitly solve the equation, you’d still need a programmable calculator (or better) to actually find the resulting number. So the distinction between a mathematical solution and a nummerical solution is of little or no consequence to an engineer.

September 24th, 2011 at 7:37 am

F ~ 0.0648 and could you do easier ones please?

September 24th, 2011 at 12:22 pm

To kenna,

If you think this was hard you can learn how to solve these easily.

http://www.cheresources.com/invision/blog/20/entry-144-a-new-simplified-accurate-method-for-colebrook-equations/

Are you an engineer?