• No se han encontrado resultados

Programación: División de un polinomio entre un binomio

N/A
N/A
Protected

Academic year: 2021

Share "Programación: División de un polinomio entre un binomio"

Copied!
6
0
0

Texto completo

(1)

Programaci´ on:

Divisi´ on de un polinomio entre un binomio

Objetivos. Escribir una funci´on que divida un polinomio entre un binomio m´onico. Vamos a usar esta funci´on en otras partes del curso. En este texto estamos suponiendo que los

´ındices de arreglos empiezan desde 1.

Requisitos. Ciclos, multiplicaci´on de un polinomio por un binomio, representaci´on de listas (arreglos), representaci´on de polinomios.

El algoritmo que vamos a estudiar tiene varios nombres: divisi´on sint´etica, algoritmo de Horner, regla de Ruffini.

1. Guardar polinomios como listas de coeficientes en el orden ascendente. Como antes, representamos polinomios como listas de sus coeficientes, empezando con el t´ermino independiente. Por ejemplo, representamos el polinomio

f(x) = 5x3− 7x2+ 1 como la siguiente lista:

|{z}

? , |{z}

? , |{z}

?

, 5.

El grado de este polinomio es |{z}

?

, y la lista de coeficientes es de longitud |{z}

?

.

Se dice que −7 es el coeficiente de la potencia |{z}

x?

.

En general, un polinomio a1+ a2x + a3x2+ . . . + anxn−1 se guarda como la lista de sus coeficientes:

| {z }

?

, | {z }

?

, | {z }

?

, . . . , | {z }

?

.

Si an 6= 0, entonces el grado del polinomio es | {z }

?

, y la longitud de la lista de coeficientes es | {z }

?

.

Para cada ´ındice k ∈{1, . . . , n}, el n´umero ak es el coeficiente de la potencia | {z }

x?

.

(2)

F´ ormulas para dividir un polinomio entre un binomio m´ onico (se recomienda deducirlas antes de la clase pr´ actica)

2. Polinomios m´onicos (repaso). Un polinomio de una variable se llama m´onico el coeficiente de la mayor potencia en este polinomio es igual a 1. Por ejemplo, el polinomio 4 − 6x + x2 es m´onico, y 7 − 5x − 4x2 no lo es.

3. Caso n = 5, construimos un sistema de ecuaciones. Vamos a dividir f(x) entre g(x), donde f(x) es un polinomio de grado 4 y g(x) es un binomio m´onico:

f(x) = a1+ a2x + a3x2+ a4x3+ a5x4, g(x) = −b + x.

Dividir f(x) entre (x − b) significa encontrar un polinomio q(x) y un n´umero r tales que f(x) = (x − b)q(x) + r.

De la f´ormula (x − b)q(x) = f(x) − r concluimos que

el producto (x − b)q(x) debe ser del mismo grado que f(x), esto es, de grado |{z}

?

. Por eso el polinomio q(x) debe ser de grado |{z}

?

.

Denotemos sus coeficientes por c1, c2, c3, c4 y obtenemos la siguiente ecuaci´on:

a1+ a2x + a3x2+ a4x3+ a5x4 = (−b + x)(c1+ c2x + c3x2+ c4x3) + r.

Igualamos los coeficientes de las potencias de x en ambos lados:

coeficiente de x0:

| {z }

a? = | {z }

?

| {z }

?

+ | {z }

?

; (1)

coeficiente de x1:

| {z }

a?

= | {z }

?

; (2)

x2:

| {z }

a?

= | {z }

?

; (3)

x3:

| {z }

a?

= | {z }

?

; (4)

x4:

| {z }

a?

= | {z }

?

. (5)

Las inc´ognitas de este sistema de ecuaciones son c1, c2, c3, c4, r.

(3)

4. Caso n = 5, resolvemos el sistema de ecuaciones.

Estamos resolviendo el sistema de ecuaciones (1)–(5).

La | {z }

primera/´ultima

ecuaci´on del sistema tiene solamente una inc´ognita,

y esta inc´ognita ya est´a en la forma despejada:

| {z }

c?

= | {z }

a?

. (6)

Ahora de la ecuaci´on ( |{z}

?

) podemos despejar otra inc´ognita | {z }

c?

, esto es, expresarla en t´erminos de | {z }

c?

, | {z }

a?

y | {z }

?

, Luego de la ecuaci´on | {z }

?

despejamos | {z }

?

, etc.:

| {z }

c?

= | {z }

?

c4 + | {z }

?

; (7)

| {z }

c?

= | {z }

?

| {z }

?

+ | {z }

?

; (8)

| {z }

c?

= | {z }

?

| {z }

? + | {z }

?

; (9)

| {z }

?

= | {z }

?

| {z }

?

+ | {z }

?

. (10)

Aunque sabemos el valor de la inc´ognita c4, no lo sustituimos en (7).

De manera similar, en (8) dejamos c3, etc.

Por supuesto, para n = 5 podr´ıamos escribir c4, c3, . . .en t´erminos de a1, . . . , a5 y b, pero las f´ormulas ser´ıan complicadas y no podr´ıamos generalizarlas.

Preferimos escribir f´ormulas recursivas porque son c´omodas para generalizar y programar.

Notemos que las f´ormulas (7), (8) y (9) tienen la misma estructura:

ck = | {z }

?

, k = 3, |{z}

? , |{z}

?

. (11)

Las f´ormulas (6) y (10) tienen otras expresiones en el lado izquierdo o en el lado derecho.

(4)

5. F´ormulas para n general.

Ahora vamos a dividir f(x) entre g(x), donde f(x) es de grado n−1 y g(x) es un polinomio m´onico:

f(x) = a1+ a2x + a3x2+ . . . + anxn−1, g(x) = −b + x.

Buscamos un polinomio q(x) y un n´umero r tales que f(x) = (−b + x)q(x) + r.

El polinomio q(x) es de grado | {z }

?

, es decir, tiene | {z }

?

coeficientes.

Se debe cumplir la siguiente igualdad de polinomios:

(−b + x)(c1+ c2x + . . . + cn−1xn−2) + r = a1+ a2x + a3x2+ . . . + anxn−1.

Generalizando los resultados del Ejercicio 4 se puede ver que los coeficientes inc´ognitos c1, . . . , cn−1, rse pueden calcular de la siguiente manera:

| {z }

c?

= | {z }

?

;

ck = | {z }

?

| {z }

c?

+ | {z }

?

, k = | {z }

?

, | {z }

?

, . . . , | {z }

?

;

| {z }

? = | {z }

?

.

Notemos que ck se expresa en t´erminos de | {z }

c?

,

as´ı que k debe ir en el orden | {z }

ascendente/descendente

desde | {z }

?

hasta | {z }

?

.

(5)

6. Algoritmo divpolbinom (pseudoc´odigo).

funci´on divpolbinom(a, b):

variables locales: n, c, k;

n := | {z }

?

;

c :=lista nula de longitud | {z }

?

;

| {z }

c?

:= | {z }

?

;

para k := | {z }

?

, | {z }

?

, . . . , | {z }

?

:

ck:= | {z }

?

;

| {z }

?

:= | {z }

?

;

salida: | {z }

? y | {z }

?

.

7. Ciclos descendentes en GNU Octave.

Los “ciclos descendentes” en GNU Octave se puede programar usando el comando : (dos puntos) e indicando un paso negativo. Se recomienda ejecutar los siguientes comandos:

for k = 100:-10:60, disp(k);

endfor

8. Ejemplo de una funci´on en GNU Octave que regresa dos objetos. Se reco- mienda guardar la siguiente funci´on en un archivo ab.m:

function [p, q] = ab(n), p = n * n;

q = 7 * ones(n, 1);

endfunction

Luego se pueden hacer pruebas desde el int´erprete:

ab(4)

[p, q] = ab(4)

(6)

Programaci´ on de la divisi´ on de un polinomio entre un binomio

9. Problema divpolbinom.

Traduzca el Algoritmo 6 a un lenguaje de programaci´on. En otras palabras, escriba una funci´on que divida un polinomio f(x) entre un binomio x − b.

Entrada: el arreglo a de los coeficientes de f(x) y el n´umero b.

Salida: el arreglo de los coeficientes del cociente y el residuo.

10. Comprobaci´on. Es f´acil ver que −11 + 8x − 5x2+ x3 = (−4 + x)(4 − x + x2) + 5.

Por eso divpolbinom([-11; 8; -5; 1], 4) debe regresar [4; -1; 1] y 5.

11. Comprobaci´on. Divida el polinomio 2x3− 5x2+ x − 7entre el binomio x + 3 (haga los c´alculos en papel). Luego ejecute divpolbinom([-7; 1; -5; 2], -3).

12. Problema poleval.

Escriba una funci´on que calcule el valor del polinomio f(x) con coeficientes dados en el punto dado b.

Entrada: el arreglo de los coeficientes del polinomio f(x), el punto b.

Salida: el n´umero f(b).

Haga la comprobaci´on con algunos ejemplos.

13. Sea f(x) un polinomio y sea b un n´umero. Recuerde como expandir f(x) en las potencias del binomio (x − b) usando la divisi´on sint´etica.

14. Sea f(x) un polinomio y sea b un n´umero. Sean c1, c2, c3, . . . , cn los coeficientes de la expansi´on de f(x) en las potencias del binomio (x − b):

f(x) = c1+ c2(x − b) + c3(x − b)2+ c4(x − b)3+ . . . + cn(x − b)n−1. Recuerde la f´ormula de Taylor y exprese f(b) y f0(b) a trav´es de c1 y c2. 15. Problema polvaldiff.

Escriba una funci´on que calcule el valor del polinomio dado f(x) y de su derivada f0(x) en el punto dado b, utilizando la funci´on divpolbinom. Use los resultados de dos ejercicios anteriores.

Entrada: la lista de los coeficientes del polinomio f(x), el punto b.

Salida: la lista que consiste de dos n´umeros, f(b) y f0(b).

Despu´es de programar la funci´on requerida haga comprobaciones.

Referencias

Documento similar

El principio del argumento permite averiguar si una cierta funci´ on holomorfa tiene ra´ıces n-´ esimas holomorfas, es decir, si existe una funci´ on holomorfa g tal que g n = f.. Sea

Escribe una Funci´ on Langevin que reciba como argumento de entrada un vector de valores x y devuelva como argumento de salida un vector con los valores de la funci´ on de Langevin

Figura 6.39: Parte superior: Funci´on Original f g2dis (x, y) definida en (6.21) con la discontinuidad dada por una par´abola, parte inferior izquierda: Apro- ximaci´on obtenida por

De este modo, cobra sentido el estudio del car´ acter din´ amico del juego, el cual puede ser modelizado median- te iteraciones sucesivas de la funci´ on F (bidimensional),

Figura 6.34: Reconstrucci´ on de la funci´ on utilizando multirresoluci´ on de Her- mite basada 2 puntos y en funci´ on y primera derivada aproximada en la mitad de puntos, guardando

El inconveniente operativo que presenta el hecho de que la distribuci´ on de probabilidad de una variable aleatoria es una funci´ on de conjunto se resuelve mediante el uso de

Definici´ on 1.1.1 Un espacio topol´ ogico es un par (X, τ ), donde X es un conjunto y τ es una familia de subconjuntos de X con las siguientes propiedades:.. Se denota por F

En [2] determinamos experimentalmente el comporta- miento de la longitud promedio ¯ L de las cadenas en funci´on de la frecuencia de la perturbaci´on f p , el tiempo de aplica- ci´on