Go4Expert

Go4Expert (http://www.go4expert.com/)
-   C++ (http://www.go4expert.com/forums/cpp/)
-   -   Square Root using Newton Iteration (http://www.go4expert.com/forums/square-root-using-newton-iteration-t15842/)

StormcasteR 16Jan2009 20:46

Square Root using Newton Iteration
 
So.Dudes heres the deal.Yesterday a friend of mine wanted me to help him with a function that calculates square root of a positive number using Newton's method.So I came up with this:
Code:

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
  const double tol = 0.000005;
  double value;
  double old_app, new_app;
  cout << "Square root of a number"
      << endl << endl;
  cout << "Enter a positive number: ";
  cin >> value;
  if (value < 0.0)
    cout << "Cannot find square root of negative number"
        << endl;
  else
    if (value == 0.0)
        cout << "square root of "
            << value
            << " is 0.00"
            << endl;
    else
      {
        old_app = value;
        new_app = (old_app + value/old_app)/2;
        while (fabs((new_app-old_app)/new_app) > tol)
          {
            old_app = new_app;
            new_app = (old_app + value/old_app)/2;
          }
        cout << "square root of "
              << value
              << " is " << new_app
              << endl;
              system ("pause");
      }
}

But I'm really new in C++ and I'm not sure if this is the right way to represent this algorithm?

xpi0t0s 17Jan2009 00:47

Re: Square Root using Newton Iteration
 
Does it work? Have you entered some test values, and did the correct results come out? If not, what results did you get?

StormcasteR 18Jan2009 23:01

Re: Square Root using Newton Iteration
 
Quote:

Originally Posted by xpi0t0s (Post 41578)
Does it work? Have you entered some test values, and did the correct results come out? If not, what results did you get?

Yes.I entered 78.32for example and the program outputs 8.84986 for square root.Another program I wrote uses heron's formula and the output is the same ( 8.84986) while the normal cmath sqrt() function outputs 8.83176.Anyway, the program works properly but I'm not sure if this is the right way for Newton's method and if the formula I'm using is correct...

asadullah.ansari 19Jan2009 12:24

Re: Square Root using Newton Iteration
 
Check the algorithm for newton's ramson formula .. Actually wahtever you wrote the program that is by Iterative evaluation of a square root
check here also...
http://www.macs.hw.ac.uk/~pjbk/pathw...1/node124.html


All times are GMT +5.5. The time now is 20:20.