post #1 (permalink) Antiguo 03-oct-2011, 20:01
Post newton en dev c++
hola necestio hacer un programa que calcule la raiz de cualquier funcion yo se como hacerla si es de un grado fijo pero no se como hacer para cuando el usuario sea el que la determine, esto se hace por newton rapson pero la verdad no se como, ahi les envio el codigo pero solo sirve para calcular cuando sea de 2 grado y yo quiero que sirva para N grado.
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <conio.h>
#include <time.h>

double funcion (double x);
double derivadaf (double x);

main()
{
int Nit, i;
double cota,xi,xsol,error;

printf("Metodo de Newton-Raphson\n");
printf("Cota de error maxima: ");
scanf ("%lf",&cota);
printf ("Numero maximo de iteraciones: ");
scanf ("%d",&Nit);
printf ("Punto inicial: ");
scanf ("%lf",&xi);

i = 1; /* Contador de iteraciones */
error = cota + 1 ; /* Para asegurar que error > cota al ppio */

while (i<= Nit && error > cota)
{
/* Aplicamos formula Newton-Raphson */
xsol = xi - funcion (xi) / derivadaf(xi);
error = fabs (xsol-xi);
i++;
/* En la siguiente iteracion xsol es xi */
xi = xsol;
}

printf ("La solucion es %lf\n", xsol);
printf ("El valor de la funcion es %g\n",funcion(xsol));
printf ("El error alcanzado es %g\n", error);
if (i>=Nit)
printf ("Se ha alcanzado el maximo n. de iteraciones\n");
else
printf ("El n. de iteraciones ha sido %d\n",i);
getch();
}
double funcion(double x)
{
double f;
f = x*x + 2*x - 35;
return (f);
}

double derivadaf(double x)
{
double fp;
fp = 2*x + 2;
return (fp);

}
Usuario Registrado
Fecha de Ingreso: oct-11
Mensajes: 1
Gracias dadas: 0
Agradecido 0 veces en 0 Mensajes
juli16 está desconectado
Responder Citando
Respuesta

Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Ir al Foro


La franja horaria es GMT -3. Ahora son las 04:06.