Square Root and Powers Assignement

Hey guys
Ive just started my first year at university, still feeling like ive been thrown in at the deepend. I have a series of assignments to complete for my programming course, and part of one of them is to work out this following:
d = (square root of) x2 + y2 + z2
d,x,y and z are are all vriables that ive sorted out earlier. and x2 means x to the power of 2.
if anyone could give me some pointers on the best way to do this that would be great
thanks in advance
glenn

pointers:
use java's Math lib.
also, usually if x is raised to the power of y, people write x ^ y.
double d = Math.sqrt(16);
d is 4

Similar Messages

  • Fastest square root algorithm

    I was looking for a fast algorythm for integer square roots and I found this one http://medialab.freaknet.org/martin/src/sqrt/.
    The algorithm comes from a book by Mr C. Woo on how to do maths on an abacus.
    I post the javaized version here in case anyone finds it interesting.
    I believe this is the fastest square root function in existance for integers (and in game programming much of the time you aren't interested in fractions)
    /* Fast interger square root adapted from algorithm by Martin Guy @ UKC, June 1985.
        *   Origonally from a book on programming abaci by Mr C. Woo.
       public static int fastSqrt2(int n)
          int op, res, one;
          op = n;
          res = 0;
          /* "one" starts at the highest power of four <= than the argument. */
          one = 1 << 30;   /* second-to-top bit set */
          while (one > op) one >>= 2;
          while (one != 0)
             if (op >= res + one)
                op = op - (res + one);
                res = res +  (one<<1);
             res >>= 1;
             one >>= 2;
          return(res);
       }

    public static double sqrt(double a){
      if(a<0) throw new IllegalArgumentException("number<0");
      double precision=0.001;
      double x_nMinus1 = -1;
      double x_n = 1;
      while( Math.abs(x_n - x_nMinus1) > precision ) {
        x_nMinus1 = x_n;
        x_n = (x_nMinus1 * x_nMinus1 + a) / (2*x_nMinus1);          
      return x_n;           
    }

  • Square root formula

    I have a program that has three columns, in the first column it lists numbers 0-10, in the second column I need to get the square root of each number in the first column. How would I get those results. What is the formula for the square root and how would I code it in? Here is my code so far
    public class ThreeColumn {
        public static void main(String[] args) {
        System.out.println("Number \t Square root \t Even/Odd \t \n");
        int  Ans1 = 0, Ans2 = 0, Ans3 = 0;
         for (int i = 0; i <= 10; i++)
    System.out.println(Ans1 + "\t" );
    Ans1++;
    }Thanks

    Here's something to play around with
    import java.text.*;
    class Testing
      public Testing()
        DecimalFormat df = new DecimalFormat("0.00");
        String[] header = {"Number", "Sqr Root","Even/Odd"};
        String pad = "        ";
        for(int x = 0; x < header.length; x++) System.out.print(header[x]+" ");
        System.out.println("\n========================");
        String sqrNum;
        String[] evenOdd = {"Even","Odd"};
        for(int x = 1; x <= 10; x++)
          sqrNum = df.format(Math.sqrt(x));
          System.out.println((pad+x).substring(pad.length()-header[0].length()+(""+x).length())+
                             (pad+sqrNum).substring(pad.length()-header[1].length()+sqrNum.length()-1)+
                             (pad+evenOdd[x%2]).substring(pad.length()-header[2].length()+evenOdd[x%2].length()-1));
        System.exit(0);
      public static void main(String[] args){new Testing();}   
    }

  • Square root calculation method

    I'm trying to create java code that displays the square root of a number that the user enters, as I am not a great mathematician i cannot work out the logic for this. Any help would be great.
    This is the part of my code that I need assistance with: n1 is the number that the user enters and n2 is where the square root is returned to. I'm guessing that i need to have a loop of some sort to divide n1, but am unsure of the conditions. The n1 is 0 so that after the total is calculated from n1, it is cleared for another number to be entered.
    else if (source == btnSquareRoot)
    n2 = ;
    n1 = 0;
    Please help!

    An adequate method for finding a square root of a number x is this:
    Choose a number that is too low to be the actual square root. (How you do this, I don't know, but zero is pretty small and might be low enough)
    Call that number lo:
    Choose a number that is too high to be the actual square root. (Same comment. well almost. Don't use zero for this - it's too small)
    Call it hi:
    Note, it is easy to check and see that the numbers you have choosen have the required properties. because lo*lo < x and hi*hi > x
    Now you have two candidates for the square root, one of them too low and one of them two high. The actual square root lies somewhere between those two bounds.
    What you want to do now is squeeze those bounds tighter. You do that by choosing a number that is between lo and hi. The mid point would be a nice choice. You may need to figure out how to compute that.
    call that number a:
    well now, either a was itself too low, too high or just right. If it was too low, why replace lo with a and you have just improved the lower bound, if it was too high...
    surely you get the idea.
    Now the question is: How long do you keep this up? Do you ever get the actual square root this way? The answer is: Of course you don't. Most of the time the actual square root requires an infinite number of decimals to represent it. All you are looking for is something that is good enough.
    What does good enough mean? Did you want the number correct to 2 decimal places, to 4 decimals. What do you want? How can you tell if lo and hi are practically the same number?
    If this was a homework problem, that of course goes back to what the teacher wants. If the teacher did not clearly specify, you need to go back and ask what they actually wanted.
    On the other hand if you want to earn a reputations as a smart ass, you figure out some way to detect that the number that you are working on does not have an exact square root and when it does not, you simply print out the message "Sorry - the square root of the number you are looking for cannot be represented in a finite number of digits without resorting to the notation of continued fractions but here it is to 3 decimals..."
    This is the sort of stuff that wins big bonus points with professors.
    On the other hand the way you lose big points with the professors if you say something like that and CAN NOT explain to him what a continued fraction is and explain what you meant by the qualification.
    The other thing that loses big is to cut a chunk of text directly off of a web page and try to fob it off as your own program. Since most professors know how to google, they will stuff some unlikely looking phrase like "notation of continued fractions" and boom they are immediately at this page.
    My point is that if you are going to be a smart ass, you MUST do it carefully or you lose all credibility.
    Sorry for the digression there. Hope this algorithm outline is enough to get you thinking.
    Wow! Killer. I previewed my question and it put asterisks in where I wrote the word, "ass". That is Fucking awesome! They've put in some kind of bad word filter so that when I get fucking abusive with my language and call you a no good shit for brains mother fucker. it cleans it all up for me. That is just too fucking sweet! It sure is a load off of my mind. I guess they just couldn't figure out how to put in !@%#^ which is the way that you actually are supposed to replace vulgarity in the printed word. Oh well, we always knew that this site was maintained by a bunch of **** ***** * **** ***** ** ***** * * *********!

  • Square root approximations and loops, output not as expected

    Hi guys,
    I'm trying to create a program that uses loops to guess the approximate value of a square root of an inputted value within an epsilon value. The program will guess with a value x, then use (x + (value/x))/2 to guess a closer value, where value = sqrt(input).
    Here is my solution class:
    public class RootApproximator
       public RootApproximator(double val, double eps)
              value = val;
              square = Math.sqrt(val);
              epsilon = eps;
              lower = square - epsilon;
       public double nextGuess()
              for (double i = 1; i < lower; i++)
                   i = (i + (value/i)) / 2;
                   guess = i;
              return guess;
       public boolean hasMoreGuesses()
              return (square - guess <= epsilon);
       private double square;
       private double value;
       private double epsilon;
       private double guess;
       private double lower;
    And here is my tester:
    public class RootApproximatorTester
       public static void main(String[] args)
          double a = 100;
          double epsilon = 1;
          RootApproximator approx = new RootApproximator(a, epsilon);
          System.out.println(approx.nextGuess());
          System.out.println("Expected: 1");
          System.out.println(approx.nextGuess());
          System.out.println("Expected: 50.5");
          while (approx.hasMoreGuesses())
             approx.nextGuess();
          System.out.println(Math.abs(approx.nextGuess() - 10) < epsilon);
          System.out.println("Expected: true");
    }Something is wrong with my loop, because the expected values are not appearing. Here is what the output looks like:
    50.5
    Expected: 1
    50.5
    Expected: 1
    ... // there should be more here, it should print:
    // true
    // Expected: true
    If anyone could please point out my errors so I can finish this program I would certainly appreciate it. Thank you all.

    I've modified your code a bit.
    class RootApproximator
         private double value;
         private double accuracy;
         private double firstGuess;
         public RootApproximator(double val)
              value = val;
              accuracy = 1;
         public double makeGuess()
              double guess = firstGuess;
              for (double i = 1; i <= accuracy; i++)
                   double temp = value / guess;
                   guess = (guess + temp) / 2.0;
                   System.out.println("Next Guess: "+guess);
              return guess;
         public void setFirstGuess(double num)
              firstGuess = num;
         //the higher the accuracy, the closer the square root will be
         public void setAccuracy(int num)
              accuracy = num;
    public class Test
         public static void main(String[] args)
              System.out.println("Number to take square root of:");
              java.util.Scanner input = new java.util.Scanner(System.in);
              double num = input.nextDouble();
              System.out.println("Number of times to iterate:");
              int acc = input.nextInt();
              System.out.println("First Guess:");
              double guess = input.nextDouble();
              RootApproximator approx = new RootApproximator(num);
              approx.setAccuracy(acc);
              approx.setFirstGuess(guess);
              double sqrt = approx.makeGuess();
              System.out.println("--------------------");
              System.out.println("Final Guess: "+sqrt);
              System.out.println("Actual Square Root: "+Math.sqrt(num));
    }

  • Assigning default values to root and subnode attributes

    Hello,
    I created a BO with a root node. In order to assign some default values after a root instance is created, I've implemented a determination. Everything is working as expected. When the instance is created (and only then) the init method is processed and the default values get assigned.
    As a next step, I added a subnode. I need to assign some default values to a new instance as well. So, I've created a determination for this subnode, in the same way as I did it for the root node.
    Now, when a new instance is created, the init method of the root is processed, but not the init method of the subnode. Only when I change a value of a subnode attribute and do a save, the init method of the subnode is processed and the init method of the root node as well (overwriting any changes with the default values, which is wrong).
    How can I achieve that after instance creation (and only at this point), the init method of the root and then the init method of the subnode are processed?
    Thanks for any advice.
    regards,
    Ulli

    Hi Ulli,
    It should work if you have configured as rightly mentioned by Tilmann.
    but If you want to debug the framework to understand the behaviour, you have to go to class - /BOBF/CL_FRW.
    Put a break-point in any of these method - CHECK_AND_DETERMINE / DO_DETERMINATIONS
    / DO_DETERMINATIONS_RETRIEVE
    / DO_DETVAL
    Thanks,
    Bharath.

  • Calculate square root including sum and product

    Hi,
    I have to enter the square root of:
    Text1*Text1+Text2*Text2-2*Text1*Text2*Text3
    How do i do that?
    I hope someone can help me.

    Thanks a million try67,
    i found another way that worked as well:
    event.value = Math.sqrt(+this.getField("Text1").value*this.getField("Text1").value+this.getField("Text2 ").value*this.getField("Text2").value-2*this.getField("Text1").value*this.getField("Text2" ).value*this.getField("Text3").value)
    Mine is much more confuse:)

  • Fast Inverse Square Root

    I expect no replies to this thread - because there are no
    answers, but I want to raise awareness of a faculty of other
    languages that is missing in Flash that would really help 3D and
    games to be built in Flash.
    Below is an optimisation of the Quake 3 inverse square root
    hack. What does it do? Well in games and 3D we use a lot of vector
    math and that involves calculating normals. To calculate a normal
    you divide a vector's parameters by it's length, the length you
    obtain by pythagoras theorem. But of course division is slow - if
    only there was a way we could get 1.0/Math.sqrt so we could just
    multiply the vector and speed it up.
    Which is what the code below does in Java / Processing. It
    runs at the same speed as Math.sqrt, but for not having to divide,
    that's still a massive speed increase.
    But we can't do this in Flash because there isn't a way to
    convert a Number/float into its integer-bits representation. Please
    could everyone whinge at Adobe about this and give us access to a
    very powerful tool. Even the guys working on Papervision are having
    trouble with this issue.

    that's just an implementation of newton's method for finding
    the zeros of a differentiable function. for a given x whose inverse
    sq rt you want to find, the function is:
    f(y) = 1/(y*y) - x;
    1. you can find the positive zero of f using newton's method.
    2. you only need to consider values of x between 1 and 10
    because you can rewrite x = 10^^E * m, where 1<=m<10.
    3. the inverseRt(x) = 10^^(-E/2) * inverseRt(m)
    4. you don't have to divide E by 2. you can use bitwise shift
    to the right by 1.
    5. you don't have to multiply 10^^(-E/2) by inverseRt(m): you
    can use a decimal shift of inverseRt(m);
    6. your left to find the positive zero of f(y) = 1/(y*y) - m,
    1<=m<10.
    and at this point i realized what, i believe, is a much
    faster way to find inverse roots: use a look-up table.
    you only need a table of inverse roots for numbers m,
    1<m<=10.
    for a given x = 10^^E*m = 10^^(e/2) *10^^(E-e/2)*m, where e
    is the largest even integer less than or equal to E (if E is
    positive, e is the greatest even integer less than or equal to E,
    if E is negative), you need to look-up, at most, two inverse roots,
    perform one multiplication and one decimal shift:
    inverseRt(x) = 10^^(-e) * inverseRt(10) *inverseRt(m), if
    E-e/2 = 1 and
    inverseRt(x) = 10^^(-e) * inverseRt(m), if E-e/2 = 0.

  • How to find square root, log recursively???

    I need to find the square root of a number entered recursively and log as well. Your help would be greatly appreciated. Thanks in advance!
    import java.io.*;
    /**Class provides recursive versions
    * of simple arithmetic operations.
    public class Ops2
         private static BufferedReader in = null;
         /**successor, return n + 1*/
         public static int suc(int n)
              return n + 1;
         /**predecessor, return n - 1*/
         public static int pre(int n)
              if (n == 0)
                   return 0;
              else
                   return n - 1;
         /**add two numbers entered*/
         public static int add(int n, int m)
              if (m == 0)
                   return n;
              else
                   return suc(add(n, pre(m)));
         /**subtract two numbers entered*/
         public static int sub(int n, int m)
              if (n < m)
                   return 0;
              else if (m == 0)
                   return n;
              else
                   return pre(sub(n, pre(m)));
         /**multiply two numbers entered*/
         public static int mult(int n, int m)
              if (m == 0)
                   return 0;
              else
                   return add(mult(n, pre(m)), n);
         /**divide two numbers entered*/
         public static int div(int n, int m)
              if (n < m)
                   return 0;
              else
                   return suc(div(sub(n, m), m));
         /**raise first number to second number*/
         public static int exp(int n, int m)
              if (m == 0)
                   return 1;
              else
                   return mult(exp(n, pre(m)), n);
         /**log of number entered*/
         public static int log(int n)
              if (n < 2)
                   return 0;
              else
                   return suc(log(div(n, 2)));
         /**square root of number entered*/
         public static int sqrt(int n)
              if (n == 0)
                   return 0;
              else
                   return sqrt(div(n, ));
         /**remainder of first number entered divided by second number*/
         public static int mod(int n, int m)
              if (n < m)
                   return 0;
              else
                   return mod(div(n, pre(m)), m);
         public static void prt(String s)
              System.out.print(s);
         public static void prtln(String s)
              System.out.println(s);
         public static void main(String [ ] args)
              prtln("Welcome to the amazing calculator");
              prtln("It can add, multiply and do powers for");
              prtln("naturals (including 0). Note that all the");
              prtln("HARDWARE does is add 1 or substract 1 to any number!!");
              in = new BufferedReader(new InputStreamReader ( System.in ) );
              int It;
              while ( (It = getOp()) >= 0)
                   prt("" + It + "\n");
            private static int getOp( )
            int first, second;
            String op;
            try
                System.out.println( "Enter operation:" );
                do
                    op = in.readLine( );
                } while( op.length( ) == 0 );
             System.out.println( "Enter first number: " );
                first = Integer.parseInt( in.readLine( ) );
                System.out.println( "Enter second number: " );
                second = Integer.parseInt( in.readLine( ) );
             prtln("");
             prt(first + " " + op + " " + second + " = ");
                switch( op.charAt( 0 ) )
                  case '+':
                    return add(first, second);
                  case '-':
                       return sub(first, second);
                  case '*':
                    return mult(first, second);
                  case '/':
                       return div(first, second);
                  case '^':
                    return exp(first, second);
                  case 'v':
                       return log(first);
                  case 'q':
                       return sqrt(first);
                  case '%':
                       return mod(first, second);
                  case 's':
                       return suc(first);
                  case 'p':
                       return pre(first);
                  default:
                    System.err.println( "Need +, *, or ^" );
                    return -1;
            catch( IOException e )
                System.err.println( e );
                return  0;
    }

    Hi,
    Is there any one to make a program for me in Turbo
    C++ for Dos, which can calculate the square root of
    any number without using the sqrt( ) or any ready
    made functions.
    The program should calculate the s.root of the number
    by a formula or procedure defined by the user
    (programmer).
    Thanks.This is a Java forum!
    If you want Java help:
    1. Start your own thread.
    2. Use code tags (above posting box) if you post code.
    3. No one will write the program for you. We will help by answering your questions and giving advice on how to fix problems in code you wrote.
    4. The formula you need to implement is given above by dizzy.

  • ForLoop Square Root Calculator Program

    * Programmer:      R McBride
    * Date:           November 29, 2006
    * Filename:     SquareRootForLoop.java
    * Purpose:          This program uses for()loops to
    *                    find the square root of a number
    *                    up to four decimal places long.
    import APCS.Keyboard;
    class SquareRootForLoopTest1
         public static void main (String[]args)
              //define variables
              double SquareRoot = 0; //holds initial value
              double num1 = 0;
              boolean done = false;
              double tempReg1 = 0; //holds initial value of i
              double tempReg2 = 0; //holds
              double tempReg3 = 0;
              //while loop start
    //          while (!done)
              //program input
              System.out.println("\t\t\tSQUARE ROOT CALCULATOR PROGRAM");
              System.out.println(""); //skip line
              System.out.println("Enter the number you would like to be square rooted or [0] to end the program.");
              System.out.print("");
              SquareRoot = Keyboard.readInt();
              System.out.println(""); //skip line
              System.out.println("You entered "+SquareRoot+".");
              System.out.println(""); //skip line
              //for loop function
              for(int i = 0; i < 999999; i++)
              tempReg1 = i * i;
              tempReg2 = i;
    //          while (!done)
                        if(tempReg1 == SquareRoot)
                             System.out.println("The square root is "+tempReg2);
                             System.out.println("");
                        else
                             System.out.print("");
              //while loop check to finish
    //          if(SquareRoot == 0)
    //               done = true;
    //          }//end while loop
    }Here is my code for and of you who ever wants to use it. Our assignment was to make a square root calculator using ForLoop (a.k.a. no square root functions).
    My question is, how would I make it increase by .0001 instead of 1 every loop? I need it to do that so I can find square roots of numbers of numbers that have decimals for squares.

    * Programmer:      R McBride
    * Date:           November 29, 2006
    * Filename:     SquareRootForLoop.java
    * Purpose:          This program uses for()loops to
    *                    find the square root of a number
    *                    up to four decimal places long.
    import APCS.Keyboard;
    class SquareRootForLoopTest1
         public static void main (String[]args)
              //define variables
              double SquareRoot = 0; //holds initial value
              double num1 = 0;
              boolean done = false;
              double tempReg1 = 0; //holds initial value of i
              double tempReg2 = 0; //holds
              double tempReg3 = 0;
              //while loop start
    //          while (!done)
              //program input
              System.out.println("\t\t\tSQUARE ROOT CALCULATOR PROGRAM");
              System.out.println(""); //skip line
              System.out.println("Enter the number you would like to be square rooted or [0] to end the program.");
              System.out.print("");
              SquareRoot = Keyboard.readInt();
              System.out.println(""); //skip line
              System.out.println("You entered "+SquareRoot+".");
              System.out.println(""); //skip line
              //for loop function
              for(double i = 0; i < 999999; i+=.0001)
              tempReg1 = i * i;
              tempReg2 = i;
    //          while (!done)
                        if(tempReg1 == SquareRoot)
                             System.out.println("The square root is "+tempReg2);
                             System.out.println("");
                        else
                             System.out.print("");
              //while loop check to finish
    //          if(SquareRoot == 0)
    //               done = true;
    //          }//end while loop
    }Still doesn't work. =[                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Square Root Help

    ok, I used the search function and had a hard time understanding how to do things and I don't think any of the posts answered my question.
    Right now, I am working on an assignment that makes me figure out the quadratic formula. I am having trouble with the square root part of the program.
    For instance that part is: sqrt( b*b - 4*a*c)
    I want my program to be able to tell if the square root is a perfect square then go ahead an calculate it, but if it is not, then we just want to reduce the square root function, or even if it is a perfect square, I need to make the program reduce fractions when possible.
    For instance, here is an example that is a perfect square: sqrt(25) = 5 , the program would just spit out five automatically.
    BUT
    If it were: sqrt(24), then I would want it to reduce it to 2 sqrt(6) and that is what the program would pop out.
    Also, I am having trouble on how to tell the program how to "reduce fractions" , because if I had the square root in the last example, I might be able to reduce fractions for the whole quadratic function.
    example. ( 2 - 2 sqrt(6) ) / 2              would reduce to   1 - sqrt(6) and that is what the program would say.
    basically it seems like we are avoiding actually dealing with decimals.
    If you could just point me in the right direction or have a good link, it would be appreciated!!!

    It seems to me your real problem is taking a number and finding all prime factors of that number. Once you have a list of those, you know you can pull duplicates out of the square root. If all of them were duplicates, you had a perfect square.
    Here's a simple program I scrawled out to factor and reassemble into the appropriate form:
    import java.util.*;
    class FactorTest {
        public static void main(String[] args) {
            int value = 96;
            LinkedList<Integer> factors = new LinkedList<Integer>();
            LinkedList<Integer> primeNumbers = new LinkedList<Integer>();
            populatePrimeList(primeNumbers);
            while (value > 1) {
               boolean factorFound = false;
               for (int prime : primeNumbers) {
                  if (value % prime == 0) {
                     value = value / prime;
                     factors.add(prime);
                     factorFound = true;
                     break;
               if (!factorFound) {
                  expandPrimeList(primeNumbers);
            int left = 1;
            int right = 1;
            int lastValue = 1;
            for (int factor : factors) {
               if (lastValue == factor) {
                  left *= factor;
                  lastValue = 1;
               else {
                  right *= lastValue;
                  lastValue = factor;
            right *= lastValue;
            System.out.println(left + " sqrt " + right);
        public static void populatePrimeList(LinkedList<Integer> primes) {
           primes.add(2);
           primes.add(3);
           primes.add(5);
           primes.add(7);
           primes.add(11);
           primes.add(13);
        public static void expandPrimeList(LinkedList<Integer> primes) {
           int testPrime = primes.get(primes.size() - 1);
           boolean foundFactors;
           do {
              foundFactors = false;
              testPrime += 2;
              for (int prime : primes) {
                 if (testPrime % prime == 0) {
                    foundFactors = true;
                    break;
           } while (foundFactors);
           primes.add(testPrime);
    }Edited by: jboeing on Jan 15, 2008 11:18 AM

  • Square root formula in Calculated Characteristics

    Have a great days.
    There are two MIC in my inspection plan. first (0010) is for entering number and another (0020) is calculated characteristics. I want to calculate the square root of 0010 charateristics in 0020.
    What should be teh formula to put in 0020 char.
    Please guide. thanks in advance.
    Regards,
    Dipesh Bhavsar
    Edited by: dipeshbhavsar1982 on Jul 31, 2011 9:41 AM

    HI
    0020 MIC should be created with control indicator for formula tab(calc.characteristic)
    and in quality plan assign the first MIC as normal
    and assign second MIC then system will ask a formula ...
    there you can give the formula in terms of character
    example (0010)2
    Faisal

  • Square root problem

    Problem:
    Using the Newton-Raphson method, find the square root of an input positive integer number (ensure that the input is positive). Compare the result with Math.sqrt (n).
    Hints:
    * Our function is f(x) = x^2 - n where n is the input number. Then, Newton-Raphson method sas that xk+1 is a better approximation for the square root of n than xk where
    xk+1 = (xk + n / xk) ---------->all the k are below the x.
    * You can take x0 as n.
    * Stop when |xk+1 - xk| < e where e is a very small number (take as 1.0E-09).
    Sample execution:
    Type the integer whose square root you would like to compute: 2
    Square root of 2 is 1.414213562373095 by Newton-Raphson method and
    1.4142135623730951 by Math class.
    I didnt understand what is formula of Newton-Raphson method exactly.Therefore, i couldnt apply the method into java.It is my lab assignment please help me until friday morning.Thanks.

    umutcan55 wrote:
    I didnt understand what is formula of Newton-Raphson method exactly.You could [start with the Wikipedia article|http://en.wikipedia.org/wiki/Newton's_method] for example.
    Therefore, i couldnt apply the method into java.So you don't actually have a Java question, right? So this is not the correct forum.
    It is my lab assignment please help me until friday morning.That's irrelevant.

  • How to print square root ?

    Hi...i want to print square root on command prompt and a symbol(i don't know what it's name for second symbol). But i get a problem. Below is my code. For what i understand i should use \u221A right? :-
    public class Test
         public static void main(String[]args)
              try
                   System.out.println("\u221A");
                   System.out.println("\u00ea");
              catch(Exception e)
                   e.printStackTrace();
    }But the result is only question mark...can someone show me the right way and what's wrong to my code. I very appreciate to any help. Thank you.

    but it does show up in swing components
    import javax.swing.*;
    import java.awt.*;
    public class printsymb
         private static final String SYMBOL = String.valueOf( '\u221A' );
         public static void main( String args[] )
              display( SYMBOL );
              System.out.print( SYMBOL );
              System.out.println( 4 );
         private static void display( String symbol )
              JTextArea text = new JTextArea( symbol );
              JFrame f = new JFrame();
              f.add( text, BorderLayout.CENTER );
              enableJFrame( f );
         private static void enableJFrame( JFrame frame )
              frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
              frame.setSize( 320, 240 );
              frame.setVisible( true );
    }you can always put it out like this "sqrt(someExp)" can't you?
    Edited by: scphan on Apr 4, 2009 1:41 PM

  • Problems with square root approximations with loops program

    i'm having some trouble with this program, this loop stuff is confusing me and i know i'm not doing this correctly at all. the expected values in the tester are not matching up with the output. i have tried many variations of the loop in this code even modifying the i parameter in the loop which i guess is considered bad form. nothing seems to work...
    here is what i have for my solution class:
    /** A class that takes the inputted number by the tester and squares it, and
    *  loops guesses when the nextGuess() method is called. The epsilon value is
    *  also inputted by the user, and when the most recent guess returns a value
    *  <= epsilon, then the hasMoreGuesses() method should return false.
    public class RootApproximator
       /** Takes the inputted values from the tester to construct a RootApproximator.
        * @param val the value of the number to be squared and guessed.
        * @param eps the gap in which the approximation is considered acceptable.
         public RootApproximator(double val, double eps)
              value = val;
              square = Math.sqrt(val);
              epsilon = eps;
       /** Uses the algorithm where 1 is the first initial guess of the
        *  square root of the inputted value. The algorithm is defined by
        *  "If X is a guess for a square root of a number, then the average
        *  of X and value/X is a closer approximation.
        *  @return increasingly closer guesses as the method is continually used.
       public double nextGuess()
             final int TRIES = 10000;
             double guess = 1;
              for (double i = 1; i < TRIES; i++)
                   double temp = value / guess;
                   guess = (guess + temp) / 2.0;
              return guess;
       /** Determines if there are more guesses left if the difference
        *  of the square and current guess are not equal to or less than
        *  epsilon.
        *  @return the value of the condition.
       public boolean hasMoreGuesses()
              return (square - guess <= epsilon);
       private double square;
       private double value;
       private double epsilon;
       private double guess;
    here is the tester:
    public class RootApproximatorTester
       public static void main(String[] args)
          double a = 100;
          double epsilon = 1;
          RootApproximator approx = new RootApproximator(a, epsilon);
          System.out.println(approx.nextGuess());
          System.out.println("Expected: 1");
          System.out.println(approx.nextGuess());
          System.out.println("Expected: 50.5");
          while (approx.hasMoreGuesses())
             approx.nextGuess();
          System.out.println(Math.abs(approx.nextGuess() - 10) < epsilon);
          System.out.println("Expected: true");
    and here is the output:
    10.0
    Expected: 1 // not sure why this should be 1, perhaps because it is the first guess.
    10.0
    Expected: 50.5 // (100 + 1) / 2, average of the inputted value and the first guess.
    true
    Expected: true
    i'm new to java this is my first java course and this stuff is frustrating. i'm really clueless as to what to do next, if anyone could please give me some helpful advice i would really appreciate it. thank you all.

    i'm new to java this is my first java course and this
    stuff is frustrating. i'm really clueless as to what
    to do nextMaybe it's because you don't have a strategy for what the program is supposed to do? To me it looks like a numerical scheme for finding the squareroot of a number.
    Say the number you want to squarerroot is called value and that you have an approximation called guess. How do you determine whether guess is good enought?
    Well in hasMoreGuesses you check whether,
    (abs(value-guess*guess) < epsilon)
    The above decides if guess is within epsilon of being the squareroot of value.
    When you calculate the next guess in nextGuess why do you loop so many times? Aren't you supposed to make just one new guess like,
    guess = (guess + value/guess)/2.0
    The above generates a new guess based on the fact that guess and value/guess must be on each side of value so that the average of them must be closer too value.
    Now you can put the two together to a complete algoritm like,
    while (hasMoreGuesses()) {
       nextGuess();
    }In each iteration of the loop a new "guess" of the squareroot is generated and this continues until the guess is a sufficiently close approximation of the squareroot.

Maybe you are looking for