Producto de monomios en C++ Linux

El siguiente código permite, a través de la función monomio, desarrollar el producto :

(X + X1) . (X + X2) . (X + X3) … (X + Xn)

en su forma polinómica:

Xn + A(n-1).X(n-1)+…+ A2.X2 + A1.x + A0

Es muy útil a la hora de poner ejercicios de divisibilidad polinómica, desarrollo de binomio de Newton, etc. Por otra parte, una ligera modificación de monomio permitiría usarla como parte de un programa un poco más complejo que obtenga polinomios de interpolación de Lagrange. Este es el código:

#include <iostream>

using namespace std;

void monomio(int n, double *x, double *D);

int main(){

   cout << "Este programa efectua el producto de monomios
          (X+X1).(X+X2).(X+X3)..., a su" << endl;

      cout << "forma polinomica X^n + A(n-1).X^(n-1)+...+ A0 "
             << endl << endl;

   int i, n;

   cout << "Nunero de monomios = ? ";

   cin >> n;

   cout << endl;

// Asignación de memoria dinámica

   double *x, *D;

   x = new double [n];

   D = new double [n+1];

// Introduce los valores Xn

   for (i = 0; i < n; i++) {

      cout << "X(" << i+1 << ") = ";

      cin >> x[i];

   }

   cout << endl;

   monomio(n, x, D); // función declarada arriba

   int prov = n;

// Imprime los coeficientes del polinomio

   cout << "Los coeficientes del polinomio son: " << endl << endl;

   for (i = 0; i < n+1; i++) {

      cout << "A[" << prov << "] = " << D[i] << endl;

      prov -= 1;

   }

   delete x, D;

   cout << endl;

   return 0;

}

void monomio(int n, double *x, double *D){

   double *E;

   E = new double [n];

   D[0] = 1;

   D[1] = x[0];

   for (int i = 1; i < n; i++) {

      for (int k =1; k < i+1; k++) {

         E[k] = D[k] + D[k-1]*x[i];

      }

      D[i+1] = D[i]*x[i];

      for (int j = 1; j < i+1; j++) {

         D[j] = E[j];

      }

   }

   delete E;

}

compilamos con:

g++ monomio.c++ -o monomio

Para ejecutar:

./monomio [Enter]

Esto es lo que se presenta interactivamente en pantalla:

Este programa efectua el producto de monomios (X+X1).(X+X2).(X+X3)
..., a su forma polinomica X^n + A(n-1).X^(n-1)+...+ A0

Nunero de monomios = ? 5

X(1) = 1
X(2) = -2
X(3) = 3
X(4) = -4
X(5) = 5

Los coeficientes del polinomio son:

A[5] = 1
A[4] = 3
A[3] = -23
A[2] = -51
A[1] = 94
A[0] = 120

para el desarrollo de (X + 1).(X – 2).(X + 3).(X – 4).(X + 5) = X5 + 3X4 – 23X3 – 51X2 + 94X + 120.

Esta entrada fue publicada en Código C++. Guarda el enlace permanente.

Una respuesta a Producto de monomios en C++ Linux

  1. Pingback: Producto de monomios en python |

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s