// nraices.c
//
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int na, char *arg[])
{
double v;
double n;
if (na < 3) {
fprintf(stderr, "Introduce radicando y número\n"
"Así: \n"
"\t%s <radicando> <numero>\n"
"\n\ny yo te daré su raiz enésima \n\n"
,arg[0]);
exit(-1);
return (-1);
}
v = atof(arg[2]);
n = atof(arg[1]);
if (v<= 0)
{
fprintf(stderr, "El número debe ser positivo.\n");
exit(-1);
}
if (n<= 1)
{
fprintf(stderr, "El radicando debe ser mayor de 1.\n");
exit(-1);
}
double pow(double x, double n);
double f(double x)
{
return pow(x, n)-v; //Función cuya raíz busco
}
double Df(double x)
{
return n*(pow(x, (n-1))); //Derivada de la función f(x)
}
double newton(double semilla, double tolerancia)
{
double x1, x2;
double dif;
x1 = semilla;
do {
x2 = x1 - f(x1)/Df(x1);
dif = fabs(x2-x1);
x1 = x2;
} while (dif > x2*tolerancia);
return x1;
}
double raiz = newton(1.0, 1e-9);
printf("La raíz enésima es %17.12f\n",raiz );
return 0;
}
________________________________
Tengo que hacer un programa que calcule raices n-ésimas pero no logro que me compile, los errores que me da el compilador de geany son :
" /tmp/ccYhZhGT.o: In function `f.3225':
nraices.c:(.text+0x23): undefined reference to `pow' "
" /tmp/ccYhZhGT.o: In function `Df.3228':
nraices.c:(.text+0x184): undefined reference to `pow' "
collect2: ld returned 1 exit status
Espero que podáis ayudarme, ya que a mí no se me ocurre nada--
Gracias
//
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int na, char *arg[])
{
double v;
double n;
if (na < 3) {
fprintf(stderr, "Introduce radicando y número\n"
"Así: \n"
"\t%s <radicando> <numero>\n"
"\n\ny yo te daré su raiz enésima \n\n"
,arg[0]);
exit(-1);
return (-1);
}
v = atof(arg[2]);
n = atof(arg[1]);
if (v<= 0)
{
fprintf(stderr, "El número debe ser positivo.\n");
exit(-1);
}
if (n<= 1)
{
fprintf(stderr, "El radicando debe ser mayor de 1.\n");
exit(-1);
}
double pow(double x, double n);
double f(double x)
{
return pow(x, n)-v; //Función cuya raíz busco
}
double Df(double x)
{
return n*(pow(x, (n-1))); //Derivada de la función f(x)
}
double newton(double semilla, double tolerancia)
{
double x1, x2;
double dif;
x1 = semilla;
do {
x2 = x1 - f(x1)/Df(x1);
dif = fabs(x2-x1);
x1 = x2;
} while (dif > x2*tolerancia);
return x1;
}
double raiz = newton(1.0, 1e-9);
printf("La raíz enésima es %17.12f\n",raiz );
return 0;
}
________________________________
Tengo que hacer un programa que calcule raices n-ésimas pero no logro que me compile, los errores que me da el compilador de geany son :
" /tmp/ccYhZhGT.o: In function `f.3225':
nraices.c:(.text+0x23): undefined reference to `pow' "
" /tmp/ccYhZhGT.o: In function `Df.3228':
nraices.c:(.text+0x184): undefined reference to `pow' "
collect2: ld returned 1 exit status
Espero que podáis ayudarme, ya que a mí no se me ocurre nada--
Gracias