Spesifikasi :
Dengan menggunakan Newton's Method sebagai acuan dasar dalam membuat fungsi akar.
angka 128 adalah 128 bit = 16 bytes sebagai batas maksimal double.
#include <stdio.h>
#define epsilon 1e-12
double akar(double x) {
double d = x/128;
double xn = d;
double xnmin;
double temp;
while (d > epsilon) {
xnmin = xn;
xn = xnmin - ((xnmin * xnmin - x)/(2 * xnmin));
temp = xn - xnmin;
if (temp < 0) {
d = temp * (-1);
} else {
d = temp;
}
}
return xn;
}
/* Program Utama */
int main() {
float x;
printf("Akar dari : ");
scanf("%f", &x);
printf("adalah %.4f\n", akar(x));
return 0;
}
#define epsilon 1e-12
double akar(double x) {
double d = x/128;
double xn = d;
double xnmin;
double temp;
while (d > epsilon) {
xnmin = xn;
xn = xnmin - ((xnmin * xnmin - x)/(2 * xnmin));
temp = xn - xnmin;
if (temp < 0) {
d = temp * (-1);
} else {
d = temp;
}
}
return xn;
}
/* Program Utama */
int main() {
float x;
printf("Akar dari : ");
scanf("%f", &x);
printf("adalah %.4f\n", akar(x));
return 0;
}