[?] ¿Cómo hacer la derivada en c++ sin funciones de biblioteca?

Iniciado por asa5, 14 Diciembre 2017, 18:47 PM

0 Miembros y 1 Visitante están viendo este tema.

asa5

¡Hola!

Gracias por leer mi mensaje, y en adelanto por la respuesta ^w^.

El problemilla que tengo es que tengo que evaluar un polinomio en una x dada por el usuario, con un grado que nos da este, y calcular la derivada del polinomio.

La primera parte lo he conseguido, pero estoy estancado con lo de la derivada, al principio lo hice con pow para hacerme una idea, pero como era un bucle quise reducir el coste computacional, y hasta ahí bien, pero el problema es que cuando intenté unir las dos funciones para que no me pidiese los coeficientes 2 veces, pues me quedé estancado porque la función nunca calcula la derivada, sino algo raro.

Por ejemplo, la primera derivada de:
2x^2 + 2x + 2 = 10 cuando x = 2.

¿Alguna idea? mi código es el siguiente:

#include <iostream>
#include <cmath>

using namespace std;

unsigned Potencia(unsigned grado, float x)
{
   unsigned elevado=1;
   for(unsigned i = 1; i <= grado; i++)
   {
       elevado = elevado * x;
   }
   return elevado;
}

void f_de_x(unsigned grado, float coeficiente, float x)
{
   float potencia1=1, potencia2=1, polinomio, derivada;

   for(unsigned i=grado+1; i>0; i--)
   {
       cout << "Introduzca el coeficiente enesimo n = " << 1+grado-i << endl;
       cin >> coeficiente;
       polinomio = polinomio + coeficiente * potencia1;
       potencia1 = x * potencia1;
       potencia2 = Potencia(i-1, x);
       derivada = derivada + i * coeficiente * potencia2;
       cout<<derivada<<endl;
   }
   cout << "El resultado del polinomio es: " << polinomio << endl;
   cout << "El resultado de la derivada es: " << derivada << endl;
}

int main()
{
   unsigned grado;
   float x, coeficiente;
   cout << "Grado del polinomio." << endl;
   cin >> grado;

   cout << "X donde evaluar el polinomio." << endl;
   cin >> x;
   f_de_x(grado, coeficiente, x);

}


¡Muchas gracias!

CalgaryCorpus

Aqui mi perfil en LinkedIn, invitame un cafe aqui

asa5

Cita de: CalgaryCorpus en 14 Diciembre 2017, 19:30 PM
Por que si x es float, la potencia es un unsigned?
Supongo que un pequeño fallo de programador novato x'D