Actualizado el 21 de Marzo del 2018 (Publicado el 11 de Octubre del 2017)
1.862 visualizaciones desde el 11 de Octubre del 2017
121,1 KB
4 paginas
Creado hace 9a (09/11/2015)
Programaci´on: Multiplicaci´on de un polinomio
por un binomio
Objetivos. Escribir una funci´on que multiplique un polinomio por un binomio.
Requisitos. Ciclos y otros elementos de programaci´on.
1. Arreglos en Python3 + NumPy. Hay que tener en cuenta que
en Python los ´ındices de elementos de arreglos empiezan en 0.
Para acostumbrarse a la sintaxis ejecute los siguientes comandos uno por uno:
a = array([10, 20, 30], dtype = double)
(∗ crear un arreglo con entradas 10, 20, 30 guardadas como n´umeros reales ∗)
len(a)
(∗ longitud del arreglo ∗)
a[0]
a[1]
(∗ obtener el valor del elemento con ´ındice 0 ∗)
(∗ obtener el valor del elemento con ´ındice 1 ∗)
a[1] = 70
(∗ modificar el valor del elemento con ´ındice 1 ∗)
(∗ ver el arreglo modificado ∗)
a
b = zeros((7,), dtype = double) (∗ crear un arreglo de 7 ceros ∗)
2. Guardar polinomios como arreglos de sus coeficientes. Vamos a representar los
polinomios como arreglos de sus coeficientes, empezando con el t´ermino independiente.
Por ejemplo, el polinomio
f(x) = 7x4 − 3x2 + 5x + 4
se guardar´a como un arreglo de n´umeros 4, 5, −3, 0, 7. En general, el polinomio
f(x) = a0 + a1x + a2x2 + ··· + an−1xn−1
guardamos como el arreglo con entradas a0, a1, a2, . . . , an−1. Aqu´ı n es el n´umero de
coeficientes, o sea la longitud del arreglo de coeficientes. En vez de n se puede usar la
variable d = n − 1, es decir, el grado del polinomio. N´otese que para todo ´ındice k de 0
a n − 1, el coeficiente de xk es ak.
Programaci´on: Multiplicaci´on de un polinomio por un binomio, p´agina 1 de 4
F´ormulas de multiplicaci´on de un polinomio por un binomio
(se recomienda deducirlas antes de la clase pr´actica)
3. F´ormulas para multilicar un polinomio de grado 3 por un binomio m´onico.
Sean f(x) un polinomio de grado 3 y g(x) un binomio m´onico, es decir, un binomio cuyo
coeficiente del grado mayor es 1:
coeficientes.
coeficientes.
g(x) = b + x.
f(x) = a0 + a1x + a2x2 + a3x3,
Notemos que el polinomio f(x) es de grado 3 y por lo tanto tiene(cid:124) (cid:123)(cid:122) (cid:125)
En este caso el producto f(x)g(x) es de grado (cid:124)(cid:123)(cid:122)(cid:125)
, esto es, tiene (cid:124) (cid:123)(cid:122) (cid:125)
Denotemos los coeficientes del producto f(x)g(x) por c0, c1, . . . ,(cid:124) (cid:123)(cid:122) (cid:125)
¿cu´antos?
¿cu´antos?
:
?
c0 + c1x + c2x2 + c3x3 + c4x4 = (a0 + a1x + a2x2 + a3x3)(b + x).
?
Exprese los coeficientes c0, . . . , c4 a trav´es de a0, . . . , a3 y b:
c0 = (cid:124)
c1 = (cid:124)
c2 = (cid:124)
c3 = (cid:124)
c4 = (cid:124)
?
?
(cid:123)(cid:122)
(cid:123)(cid:122)
(cid:123)(cid:122)
(cid:123)(cid:122)
(cid:123)(cid:122)
?
?
?
(cid:125)
(cid:125)
(cid:125)
(cid:125)
(cid:125)
,
,
,
,
.
Se puede ver que las f´ormulas para c1, c2, c3 tienen la misma estructura:
ck = (cid:124)
(cid:123)(cid:122)
(cid:125)
,
para
(cid:124)(cid:123)(cid:122)(cid:125)
≤ k < (cid:124)(cid:123)(cid:122)(cid:125)
.
Las f´ormulas para los “coeficientes extremos” c0 y c4 son diferentes (“degeneradas”).
?
?
?
Programaci´on: Multiplicaci´on de un polinomio por un binomio, p´agina 2 de 4
4. F´ormulas para multiplicar un polinomio por un binomio m´onico.
Sean
Entonces el producto f(x)g(x) es de grado (cid:124) (cid:123)(cid:122) (cid:125)
f(x) = a0 + a1x + . . . + an−1xn−1,
, esto es, tiene(cid:124)
g(x) = b + x.
(cid:123)(cid:122)
(cid:125)
coeficientes.
Denotemos por c0, . . . , cn los coeficientes del producto f(x)g(x):
c0 + c1x + ··· + cnxn = (a0 + a1x + . . . + an−1xn−1)(b + x).
?
¿cuantos?
Exprese los coeficientes c0, . . . , cn a trav´es de los coeficientes a0, . . . , an−1 y b.
c0 = (cid:124)
ck = (cid:124)
cn = (cid:124)
(cid:125)
(cid:123)(cid:122)
(cid:125)
?
(cid:123)(cid:122)
?
(cid:123)(cid:122)
?
;
.
(cid:125)
para
(cid:124) (cid:123)(cid:122) (cid:125)
≤ k < (cid:124) (cid:123)(cid:122) (cid:125)
;
?
?
5. Algoritmo MulPolBinom (pseudoc´odigo).
funci´on MulPolBinom(a, b):
variables locales: n, c, k;
(cid:123)(cid:122)
n := longitud(a);
(cid:125)
c := arreglo nulo de longitud (cid:124)
c0 := (cid:124)
para cada k en el intervalo entero(cid:2)(cid:124) (cid:123)(cid:122) (cid:125)
(cid:123)(cid:122)
(cid:125)
;
;
?
?
(cid:1):
,(cid:124) (cid:123)(cid:122) (cid:125)
(cid:125)
?
?
;
ck := (cid:124)
cn := (cid:124)
(cid:123)(cid:122)
(cid:125)
regresar (cid:124) (cid:123)(cid:122) (cid:125)
?
;
(cid:123)(cid:122)
?
.
?
Programaci´on: Multiplicaci´on de un polinomio por un binomio, p´agina 3 de 4
Programar la multiplicaci´on de un polinomio por un binomio
en alg´un lenguaje de programaci´on
6. Problema MulPolBinom.
Traduzca el algoritmo MulPolBinom a un lenguaje de programaci´on. En otras palabras,
escriba una funci´on que calcule los coeficientes del producto de un polinomio f(x) por un
binomio b + x.
Entrada (argumentos de la funci´on): a, b,
donde a es el arreglo de los coeficientes de f(x).
Salida (que debe regresar la funci´on): el arreglo de los coeficientes del producto.
Por ejemplo, en Python3 + NumPy la funci´on MulPolBinom se puede definir de la si-
guiente manera (hay que sustituir . . . por expresiones apropiadas):
Programa 1: MulPolBinom
1 from numpy import *
def MulPolBinom(a, b):
n = len(a)
c = ...
c[0] = ...
...
...
return c
6
11
print(MulPolBinom(array([7, -2, 4, -5]), 3))
print(MulPolBinom(array([3, -7, 5]), 3))
# test 2
# test 1
7. Primera comprobaci´on. Es f´acil ver que
(7 − 2x + 4x2 − 5x3)(3 + x) = 21 + x + 10x2 − 11x3 − 5x4,
Por eso el comando
print(MulPolBinom[array([7, -2, 4, -5]), 3])
debe imprimir en la pantalla el arreglo 21, 1, 10, -11, -5.
8. Segunda comprobaci´on. Multiplique a mano el polinomio 5x2 −7x+3 por el binomio
x + 2. Luego calcule MulPolBinom[array([3, -7, 5]), 2].
Programaci´on: Multiplicaci´on de un polinomio por un binomio, p´agina 4 de 4
Comentarios de: Programación: Multiplicación de un polinomio por un binomio (0)
No hay comentarios