funciones lineales cuadráticas y cubicas

Iniciado por marcecompu, 21 Julio 2014, 17:03 PM

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

marcecompu

Hola

Bueno mi problema es el siguiente:

1.- Me gustaria programar en C++ funciones lineales cuadráticas y cubicas perola verdad no se ni por donde o como empezar no se si en este lenguaje sería lo adecuado o sería mejor hacerlo en visual basic

Si por favor alguien puede darme una guía se lo agradeceria infinitamente

avesudra

Hola marcecompu, bienvenido al foro. Supongo que lo que quieres hacer es un programe que halle las soluciones de dichas funciones ¿no? , quizás no te he entendido bien.

O lo que quieres es un programa que a partir de una ecuación dada sin la forma general para aplicar directamente la formula de resolución.

Es decir meter:

Citarax2+bx+c=0

Y hallar la solución. O quizás lo que quieres es que el programa tu le metas algo así y te la halle:

Citarx2+3x2+0.5x+4x=-3

Un saludo.
Regístrate en

marcecompu

justamente lo que quiero hacer es introducir una funcion por ejemplo
X^2-14x+48
y que el programa me de el resultado de forma grafica



eferion

Una guia sobre esto... hay varias formas de hacer esto... cada una con sus ventajas y sus inconvenientes.

Yo personalmente "recompilaria" la función. Un polinomio se puede encapsular fácilmente como una sucesión de monomios del tipo:

Código (cpp) [Seleccionar]

class Monomio
{
  public:

    Monomio( double multiplicador, double exponente )
      : _multiplicador( multiplicador),
        _exponente( exponente )
    {
    }

    double operator( )( double x) const
    {
      return pow( x * multiplicador, _exponente );
    }

    friend std::ostream& operator << ( std::ostream& out, const Monomio& monomio )
    {
      if ( monomio.multiplicador > 0 )
        out << "+";

      out << monomio.multiplicador;

      if ( monomio._exponente != 0.0 )
      {
        out << "x";
        if ( monomio._exponente != 1.0 )
          out << "^" << monomio._exponente;
      }

      return out;
    }

  private:

    double multiplicador;
    double _exponente;
};


Y con esto el resto del proceso se simplifica enormemente:

Código (cpp) [Seleccionar]

class Polinomio
{
  public:

    Polinomio( const std::vector< Monomio >& monomios )
      : _monomios( monomios )
    { }

    double operator( )( double x) const
    {
      double resultado = 0.0f;

      for ( const auto& monomio : _monomios )
      {
        resultado += monomio( x);
      }

      return resultado;
    }

    friend std::ostream& operator<<( std::ostream& out, const Polinomio& poli )
    {
      out << "y=";

      for ( const auto& monomio : poli._monomios )
        out << monomio;

      return out;
    }

  private:

    std::vector< Monomio > _monomios;
};

int main()
{
  std::vector< Monomio > monomios { { 1.0, 2.0 }, { -14.0, 1.0 }, { 48.0, 0.0 } };

  Polinomio poli( monomios );

  std::cout << "Función: " << poli << std::endl;
  std::cout << "Resultados: " << std::endl;
  for ( double x = 0; x < 10; x++ )
  {
    std::cout << "x=" << x << " - y=" << poli( x ) << std::endl;
  }
}


Para graficar las funciones tendrás que pelearte con alguna librería gráfica... pero al menos ya tienes la pareja de valores (x,y)