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

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

3 downloads 54 Views 127KB Size

Recommend Stories


Escuela: un binomio fantástico
Libro/Escuela: un binomio fantástico Beatriz Helena Robledo, Subdirectora de Lectura y Escritura del CERLALC Beatriz Helena Robledo es la actual Subd

HORIZONTES BIBLIOTECARIOS: un binomio fantástico
JORNADAS DE INTERCAMBIO Programa ACEX Bilbao, 13, 14 y 15 de septiembre de 2011 _______________________________________________ HORIZONTES BIBLIOTEC

3.2 DIVIDIR UN POLINOMIO POR x a. REGLA DE RUFFINI
1 TEMA 3 – ÁLGEBRA – MATEMÁTICAS CCSSI – 1º BACH TEMA 3 – ÁLGEBRA 3.1 – DIVISIÓN DE POLINOMIOS COCIENTE DE MONOMIOS El cociente de un monomIo por ot

Teorías y modelos en la práctica enfermera. Un binomio imposible?
ENSAYOS Teorías y modelos en la práctica enfermera. ¿Un binomio imposible? Theories and models in clinical nursing practice. An impossible relationsh

LA COMPETENCIA CIENTÍFICA Y LA COMPETENCIA DIGITAL UN BINOMIO IMPRESCINDIBLE
LA COMPETENCIA CIENTÍFICA Y LA COMPETENCIA DIGITAL UN BINOMIO IMPRESCINDIBLE Mª Elvira González Asesoría de Ciencias, Berritzegune Nagusia Cursos de

(NO HACER) + (HACER): un binomio contra la corrupción
(NO HACER) + (HACER): un binomio contra la corrupción ÍNDICE: Resumen (p. 1). I. El campesino y la mula (p. 2). II. Los jóvenes y la corrupción (p. 3)

Story Transcript

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}

?

El grado de este polinomio es

|{z}

,

|{z}

?

, 5.

?

, 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 + a2 x + a3 x2 + . . . + an xn−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?

Programaci´on: Divisi´on de un polinomio entre un binomio, p´agina 1 de 6

.

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 + a2 x + a3 x2 + a4 x3 + a5 x4 ,

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 + a2 x + a3 x2 + a4 x3 + a5 x4 = (−b + x)(c1 + c2 x + c3 x2 + c4 x3 ) + r. Igualamos los coeficientes de las potencias de x en ambos lados: coeficiente de x0 :

| {z }

=

| {z } | {z }

a?

coeficiente de x1 :

| {z }

?

=

|

a?

x2 :

| {z } | {z }

=

|

| {z } a?

?

{z

;

(1)

?

}

;

(2)

{z

}

;

(3)

}

;

(4)

}

.

(5)

?

=

|

a?

x4 :

| {z }

?

a?

x3 :

+

{z ?

=

|

{z ?

Las inc´ognitas de este sistema de ecuaciones son c1 , c2 , c3 , c4 , r. Programaci´on: Divisi´on de un polinomio entre un binomio, p´agina 2 de 6

4. Caso n = 5, resolvemos el sistema de ecuaciones. Estamos resolviendo el sistema de ecuaciones (1)–(5). La

|

{z

}

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

primera/´ ultima

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

| {z }

| {z }

c?

Ahora de la ecuaci´on (

|{z}

(6)

.

a?

) podemos despejar otra inc´ognita

, | {z } c?

?

esto es, expresarla en t´erminos de

, y , | {z } | {z } | {z } c?

Luego de la ecuaci´on

| {z }

a?

despejamos

?

| {z }

?

, etc.:

?

| {z }

=

c?

| {z }

=

| {z }

=

| {z } | {z }

?

+

| {z }

?

| {z } | {z } ?

=

(7)

;

?

?

c?

| {z }

c4 +

?

c?

| {z }

| {z }

?

(8)

;

(9)

.

(10)

?

+

| {z }

?

| {z } | {z }

;

?

+

| {z }

?

?

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 f´aciles 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.

Programaci´on: Divisi´on de un polinomio entre un binomio, p´agina 3 de 6

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 + a2 x + a3 x2 + . . . + an xn−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 + c2 x + . . . + cn−1 xn−2 ) + r = a1 + a2 x + a3 x2 + . . . + an xn−1 . Generalizando los resultados del Ejercicio 4 se puede ver que los coeficientes inc´ognitos c1 , . . . , cn−1 , r se pueden calcular de la siguiente manera:

| {z }

=

| {z }

c?

ck

;

?

=

| {z } | {z }

?

=

|

| {z }

c?

?

| {z }

+

{z

,

k=

, ,..., ; | {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 ?

Programaci´on: Divisi´on de un polinomio entre un binomio, p´agina 4 de 6

}

.

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

|

?

regresar

}

;

?

| {z } ?

y

| {z }

.

?

7. Ciclos descendentes en Wolfram Mathematica. Los “ciclos descendentes” en Wolfram Mathematica se pueden programar de manera similar al lenguaje C. Se recomienda ejecutar los siguientes comandos uno por uno: > For[k = 100, k >= 60, k -= 10, Print[k]] > For[k = 8, k >= 3, k--, Print[k]] Tambi´en hay otras construcciones para hacer lo mismo: > Do[Print[k], {k, 100, 60, -10}] > Do[Print[k], {k, 8, 3, -1}] 8. Ejemplo de una funci´ on en Wofram Mathematica que regresa dos objetos. > AB[n_] := Module[{a, b}, a = n * n; b = Table[7, {n}]; {a, b}] > AB[4] Programaci´on: Divisi´on de un polinomio entre un binomio, p´agina 5 de 6

Programaci´ on de la divisi´ on de un polinomio entre un binomio 9. Problema DivPolBinom (2 %). 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: la lista a de los coeficientes de f(x) y el n´ umero b. Salida: la lista 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}, 5}. 11. Comprobaci´ on. Divida el polinomio 2x3 − 5x2 + x − 7 entre el binomio x + 3 (haga los c´alculos en papel). Luego ejecute DivPolBinom[{-7, 1, -5, 2}, -3]. 12. Problema PolEval (1 %). Escriba una funci´on que calcule el valor del polinomio f(x) con coeficientes dados en el punto dado b. Entrada: la lista 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 f 0 (b) a trav´es de c1 y c2 . 15. Problema PolValDiff (2 %). Escriba una funci´on que calcule el valor del polinomio dado f(x) y de su derivada f 0 (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 f 0 (b). Despu´es de programar la funci´on requerida haga comprobaciones. Programaci´on: Divisi´on de un polinomio entre un binomio, p´agina 6 de 6

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.