none
programa que halla la raiz de una funcion de n grado

    Question

  • 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 mando 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);

    }
    Monday, October 03, 2011 10:46 PM

All replies

  • Revisé tu código y veo que usas la librería math.h en esta librería se usan funciones de coseno, arcoseno, coseno, integral, entre otras. Una función es la pow que eleva el número a una potencia el formato es double pow(double x, double y); el cual calcula x elevado a la potencia y, entonces para sacar la raíz cuadrada de un numero pow(x,0.5); o también pow(x,1/2); entonces como son variables puedes pedir ese número y convertirlo a fracción.

     

    www.thepisode.webs.com


    Wednesday, October 12, 2011 11:10 PM
  • Hola, creo que por raíz el OP se refiere a la raíz de un polinomio, no a la raíz cuadrada de un número real...
     
    @Kiara: sugiero le eches un vistazo a este artículo y al código que le acompaña, puede darte una idea sobre cómo hacerlo.
     
    ¡Saludos!
     


    Fernando A. Gómez F.
    fermasmas.wordpress.com
    Galería de ejemplos
    Thursday, October 13, 2011 3:43 PM