Solved

cube root of x

Posted on 1997-11-09
6
1,041 Views
Last Modified: 2012-05-04
Assignment: Write a program to read in a real number x and output the integer n closest to the cube root of x. Assume that x is always non-negative. The program should allow the user to repeat this calculation as often as desired.

We just covered functions, loops (not yet at arrays). Please provide the code. Thanks!
0
Comment
Question by:chadd082197
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
6 Comments
 
LVL 2

Expert Comment

by:kellyjj
ID: 1216617
function cube(x:real):integer;
begin
    x=x*x*x;
    cube=round(x);
end

Hope this helps.  
0
 
LVL 2

Expert Comment

by:wpinto
ID: 1216618
kellyjj, I believe chadd is looking for a function that will return the cube root of x, not the cube of x

Chadd, I could give you the code but it goes against my principle of completing another persons assignment. This way you won't learn anything. If you wish, I could give you the pseudo-code based on the Newton-Raphson method. You could then try to implement it & if you face any problem you can ask me more specific questions.

If you are still interested only in the code, I hope someone else can help you

Wilfred

0
 
LVL 2

Expert Comment

by:kellyjj
ID: 1216619
wpinto :  

Opps!! I guess I don't know how to read. hehe  =]   Darn it.  Oh well, it will teach chaddd to get others to do his work.
0
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 

Author Comment

by:chadd082197
ID: 1216620
To kellyjj: This will help me very little. And I am not getting others to do my work, I simply wanted a little help (I thought that's what this site was all about). Thanks anyway tho.

To wpinto: I respect that. Any algorithm that you could provide would be helpful I'm sure. The 200 points is still at large.
0
 

Accepted Solution

by:
mwdejager earned 200 total points
ID: 1216621
This fuction assumes that x >= 0.
If a^n = e^(n log a)  where the base is e,
then the following function should work.

Function CubeRoot(x : Real) : Real;

Begin
      If x = 0 Then      
            CubeRoot := 0
      Else
            CubeRoot := Exp(Ln(x) / 3);
End;
0
 
LVL 2

Expert Comment

by:wpinto
ID: 1216622
Hi chadd,

The above code will give you the cube root if you have access to functions such as log & exp. Also note that cube root of x is equivalent to x^(1/3), so if you have access to a power function its even easier.

The below algoritm needs only access to the addition & division operators

Here's the algorithm I promised

To compute y = x^(1/3)    
y^3 = x    
y^3-x = 0    
Let f(y) = y^3-x
f'(y) = 3y^2    
By Newton iteration:
y[n+1] = y[n] - f(y[n])/f'(y[n]) -------- f'(y[n]) <> 0
y[n+1] = y[n] - (y[n]^3-x)/(3y[n]^2) ---- 3y[n]^2 <> 0
y[n+1] = y[n] - (y[n]-x/y[n]^2)/3 ------- y[n] <> 0
y[n+1] = (2y[n] + x/y[n]^2) / 3 --------- x <> 0    

Now the answer is in y[n] if y[n+1] = y[n]. Since we are dealing with floating point nos, its highly unlikely that you will reach the above condition. So you will have to check for a small difference between them eg. y[n+1] - y[n] < 0.000001. Note, the smaller the constant, the more precise the answer but the number of iterations will be more!

Here's the pseudo code

Function CubeRoot(x : Real) : Real;
VAR Yn : Real;
VAR Yn1 : Real;
Begin
   If x = 0 Then
   CubeRoot := 0
Else
   Loop
   {
     Yn1 = ((Yn + Yn) + x / Yn / Yn) / 3;
     if (absolute(Yn1 - Yn) < 0.00001)
     exit loop;

     Yn = Yn1;
   }
   CubeRoot := Yn1;
End;

Hope this helps

Wilfred
0

Featured Post

On Demand Webinar - Networking for the Cloud Era

This webinar discusses:
-Common barriers companies experience when moving to the cloud
-How SD-WAN changes the way we look at networks
-Best practices customers should employ moving forward with cloud migration
-What happens behind the scenes of SteelConnect’s one-click button

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Why do some people recommend buying business VoIP from an ISP? What are the benefits to my company? What are the costs?
This article is in regards to the Cisco QSFP-4SFP10G-CU1M cables, which are designed to uplink/downlink 40GB ports to 10GB SFP ports. I recently experienced this and found very little configuration documentation on how these are supposed to be confi…
There's a multitude of different network monitoring solutions out there, and you're probably wondering what makes NetCrunch so special. It's completely agentless, but does let you create an agent, if you desire. It offers powerful scalability …
In this video you will find out how to export Office 365 mailboxes using the built in eDiscovery tool. Bear in mind that although this method might be useful in some cases, using PST files as Office 365 backup is troublesome in a long run (more on t…
Suggested Courses

622 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question