Programaci´ on: Multiplicaci´ on de polinomios
Tarea optativa
Objetivos. Escribir una funci´on que multiplique dos polinomios. Los polinomios se re- presentan como listas de sus coeficientes.
Requisitos. Ciclos de tipo for, sumas.
Preliminares te´ oricos (se recomienda hacerlos antes de la clase)
1. F´ormulas para los coeficientes del producto de los polinomios, un ejemplo.
Sean
f(x) = a1+ a2x + a3x2+ a4x3, g(x) = b1+ b2x + b3x2.
Denotemos por ck los coeficientes del producto h(x) = f(x)g(x):
h(x) = c1+ c2x + c3x2+ c4x3+ c5x4+ c6x5. Exprese los coeficientes de h a trav´es de los coeficientes de f y g:
c1 = c2 = c3 = c4 = c5 = c6 =
2. En los sumandos aibj que forman el coeficiente c3 del ejercicio anterior, ¿cu´al es la relaci´on entre i y j?
i + j =
En general, ¿cu´al es la relaci´on entre i y j en los sumandos aibj que forman ck? i + j =
Programaci´on: Multiplicaci´on de polinomios, p´agina 1 de 3
F´ormula general escita de manera abstracta. Sean f(x) y g(x) polinomios de grados m y n respectivamente:
f(x) = a1+ a2x + a3x2+ . . . + am+1xm, g(x) = b1+ b2x + b3x2+ . . . + bn+1xn. Entonces
ck = X
i,j : i+j=k+1 1≤i≤m+1
1≤j≤n+1
aibj.
Sustituyendo j por k + 1 − i uno puede escribir la suma con una variable i:
ck= X?
i=?
aibk+1−i. Vamos a determinar los l´ımites de la variaci´on de i.
3. Si j = k + 1 − i, ¿c´omo se escriben las desiguldades j ≥ 1 y j ≤ n + 1 en t´erminos de la variable i?
j≥ 1 ⇐⇒ ⇐⇒ i ≤
j≤ n + 1 ⇐⇒ ⇐⇒ i ≥
4. Entrenamiento: simplificar sistemas de desigualdades simples. Simplifique los siguientes sistemas de desigualdades:
i ≥ 2;
i ≥ 5 ⇐⇒ i ≥ |{z}
?
i≤ 8;
i≤ 4 ⇐⇒ i ≤ |{z}
?
i ≥ a;
i ≥ b ⇐⇒ i ≥ | {z }
?
i≤ a;
i≤ b ⇐⇒ i ≤ | {z }
?
5. L´ımites de la variaci´on de i. Tomando en cuenta que j = k + 1 − i escriba todas las desigualdades en t´erminos de la variable i y simplifique el sistema obtenido:
i ≥ 1 i ≤ m + 1 j≥ 1 j≤ n + 1
⇐⇒
i ≥ 1 i ≤ m + 1 i ≤
i ≥
⇐⇒
i ≥ i ≤
Programaci´on: Multiplicaci´on de polinomios, p´agina 2 de 3
6. Escriba los l´ımites de la variaci´on de i en la f´ormula general para los coeficientes del producto de dos polinomios:
ck=
z }| {?
X
i=| {z }
?
aibk+1−i.
7. Problema PolProduct. Escriba una funci´on que calcule la lista de los coeficientes del producto de dos polinomios dados por sus listas de los coeficientes.
Entrada: a, b (listas de los coeficientes de los polinomios f(x) y g(x));
Variables locales: m, n, p, i, k, c;
// Calculemos los grados de los polinomios f(x), g(x) y f(x)g(x):
m := (longitud de a) - 1;
n := ...
p := ...
c := lista nula de longitud ...
Para k := 1, ..., p + 1:
imin := ...
imax := ...
c[k] se calcula como la suma de las expresiones ...
donde i corre de imin a imax;
Regresar: c.
8. Comprobaci´on. Es f´acil ver que
(2 − 3x + 5x2)(3 + 4x − x2+ 7x3) = 6 − x + x2+ 37x3− 26x4+ 35x5.
Por lo tanto la funci´on PolProduct aplicada a las listas 2, −3, 5 y 3, 4, −1, 7 debe regresar la lista 6, −1, 1, 37, −26, 35.
Programaci´on: Multiplicaci´on de polinomios, p´agina 3 de 3