Está en la página 1de 3

GUIA N° 5 MULTIPLICACION DE POLINOMIOS -FFT

Nombre : Harol Helbert Merma Quispe

1. Implementar la multiplicación de polinomios tradicional (producto de convolución)


def polyconv(pol1, pol2):
  O1, O2 = len(pol1) - 1, len(pol2) - 1
  if O1 < 0 or O2 < 0:
    producto = None
  else:
    O = O1 + O2
    producto = [0]*(O + 1)
    for i, elem1 in enumerate(pol1):
      for j, elem2 in enumerate(pol2): 
        producto[i + j] += elem1*elem2
  return producto
def Poli(grado):
  P=[]
  for i in range (0,grado+1):
    E = int(input("Ingresar coef : "))
    P.append(E)
  return P
#Inicio
G1 = int(input("Grado del primer polinomio"))
p1 = Poli(G1)
print(p1)
G2 = int(input("Grado del segundo polinomio"))
p2 = Poli(G2)
print(p2)
p3=polyconv(p1,p2)
print("Producto ",p3)
Prueva

25 x 7+ 235 x 6 +140 x 5+ 222 x 4 + 94 x3 +161 x 2+23 x +15


2. Implementar el método de multiplicación de polinomios en su presentación por puntos.
Dados n puntos {(x0, y0),(x1, y1), . . . ,(xn−1, yn−1)} que representan al polinomio P(x) y otros n
puntos {(x0, y′0),(x1, y′1), . . . ,(xn−1, y′n−1)} que representan al polinomio Q(x). • Utilizar el
algoritmo de lagrange para generar los polinomios P(x) y Q(x).

import numpy as np
import sympy as sym
def Arreglo(Cantidad):
  A=[]
  for i in range (0,Cantidad):
    E = float(input("Ingrese elementos : "))
    A.append(E)
  return A
def Lagrange(Px ,Py):
  n= len(Px)
  x= sym.Symbol('X')
  Polinomio = 0
  for i in range (0,n,1):
    N = 1
    D= 1
    for j in range (0,n,1):
      if (i!=j):
        N = N*(x-Px[j])
        D = D*(Px[i]-Px[j])
      Termino = (N/D)*Py[i]
    Polinomio = Polinomio + Termino
  return Polinomio
# Inicio
x =int(input("Ingrese absisas : "))
Px = Arreglo(x)
y =int(input("Ingrese numero de Ordenadas : "))
Py = Arreglo(y)
Pol =Lagrange(Px, Py)
print("Polinomio Forma de Lagrange :",Pol)
Polsim = sym.expand(Pol)
print("Polinomio Simplifificado : ",Polsim)
Polinomio Forma de Lagrange : -4.66143233331432e-5*(X -
19.3005352)*(X - 17.1759746)*(X - 15.965948)*(X - 11.221328)*(X -
9.86282) + 0.00282438215659692*(X - 19.3005352)*(X - 17.1759746)*(X
- 15.965948)*(X - 11.221328)*(X - 4.2172) - 0.00521977003820609*(X
- 19.3005352)*(X - 17.1759746)*(X - 15.965948)*(X - 9.86282)*(X -
4.2172) + 0.0110415411338624*(X - 19.3005352)*(X - 17.1759746)*(X -
11.221328)*(X - 9.86282)*(X - 4.2172) - 0.0119197032184*(X -
19.3005352)*(X - 15.965948)*(X - 11.221328)*(X - 9.86282)*(X -
4.2172) + 0.00214881773742267*(X - 17.1759746)*(X - 15.965948)*(X -
11.221328)*(X - 9.86282)*(X - 4.2172)
Polinomio Simplifificado : -0.00117134655205731*X**5 +
0.0731814623255681*X**4 - 1.75291515546887*X**3 +
19.9069575890989*X**2 - 104.294484479541*X + 199.910170471785

También podría gustarte