1
$\begingroup$

I've been trying to find a way to get an idea about the root for the implicit function:

$$ \frac{1}{\sqrt{x}}=4\log_{10}(\sqrt{x}\,Re) - 0.4 $$ where $Re>0$ is some constant (Reynolds number).

I've tried to express this function to a function of $x$ and that makes the $Re$ value the function value. However, I'm interested to know what value $x$ is around when $Re = 10^4$.

Any ideas?

  • 0
    What's reason for the down vote?2012-12-19
  • 0
    First, I shall upvote your question to erase that downvote. Some people sometimes just down vote for the sport or the hell knows why. About your question: what does $\,Re*\sqrt x\,$ mean??2012-12-19
  • 0
    @DonAntonio: Multiplication, but I edit that I think.2012-12-19
  • 0
    $Re$ probably means Reynold Number? What context is this?2012-12-19
  • 0
    @macydanim: It's a Matlab exercise, and yep, it's a Reynold number.2012-12-19
  • 0
    Ah, right. Friction factor in pipes. This is an approximation of the Colebrook equation?2012-12-19
  • 0
    Yep, it is. But I don't know anything about it, the equation is just given in an excercise.2012-12-19

1 Answers 1

1

For this example simple fixed-point iteration works. Reformulate the problem, such that $x=F(x)$. One(!) example of doing so would be \begin{align} x = \frac{1}{(4\log_{10}(Re\cdot \sqrt{x})-0.4)^2}=F(x) \end{align} Fixed-point iteration works like this: $x^{k+1}=F(x^k)$. That means you simply plug in the result of $F(x^k)$ once more into $F$. Now you have to prove that this does converge, see i.e. Banach fixed-pint theorem.

Another method to use would be Newton's Method, but it turns out that the fixed-point iteration just works fine. With the Matlab code below, you reach a fixed-point in 5 iterations.

function fixedPointIteration  x = 1; tol=1e-5; while abs(x-f(x))>tol     i=i+1     x=f(x); end sprintf('Result of fixed-point iteration is x=%s',x) end  function y=f(x) Re = 1e4; y =1/(4*log10(Re*sqrt(x)-0.4))^2; end 

Which gives $x=0.0072742$. It should be easy to adapt the code into other languages. Hope this helps.

  • 0
    Thanks for your post. Although I'm currently solving it in Matlab, I only need a good start guess for fzero. Do you think I should du Newton's method manually to achieve this?2012-12-19
  • 0
    I don't think you need Newton's method. Bisection method works also and you need no derivatives. My method converges for each $x_0$ in `linspace(1e-7,1e-3,100);` and `linspace(100000,1e-3,10001);` is also no problem.2012-12-19
  • 0
    Yes, of course! Thank you!2012-12-19