/* Cubic Root */
#include <math.h>
#include <stdio.h>
double cbrt(double x);
void main()
{
double x, y;
printf(" X
Cubic_root(X) \n\n");
for(x = -10.0; x <= 10.0;
x += 1.)
{
printf(" %6.2f %10.7f \n", x, cbrt(x));
}
}
double cbrt(double x)
{
int i;
double w1, w2, y1, p,
q, r;
double eps = 1.0e-10;
if(x == 0.0)
{
return(0.0);
}
w1 = 1.0;
for(i = 0; i < 100; i++)
{
p
= 2.0*w1*w1;
q
= x/w1;
r
= p+q;
if(r
== 0.0)
w2 = 0.5*w1;
else
w2 = 0.5 * (w1 + 3.0 * x / r);
y1
= w1 * w1 * w1;
if(
fabs(y1 - x) <= eps)
{
return(w2);
}
else
w1 = w2;
}
}