You are on page 1of 2

Universidad Nacional de Colombia, Medell n Escuela de Matem aticas M etodos Num ericos 18 Marzo 2014

Trabajo de Programaci on Parte I


Entrega: Lunes 21 de abril antes de las 5pm. Se deben entregar los programas en MATLAB como archivos .m electr onicamente comprimidos en un solo .zip o .rar (los detalles de la forma de hacerlo se anunciar an pr oximamente). Recuerde que esta primera parte es opcional y tendr a un valor efectivo del 5 % de la nota del curso (la segunda parte tendr a un valor del 10 % si se entrega la primera parte, y un valor del 15 % en caso contrario). El objetivo de este trabajo es desarrollar un programa MATLAB para determinar aproximaciones a los ceros de polinomios de grado menor o igual a 4. Para ello, emplearemos la notaci on que usa MATLAB para trabajar con polinomios; es decir, un polinomio de grado n se representa por el vector de sus coecientes en orden decreciente de las potencias. Por ejemplo el polinomio 2x3 + 5x 6 se representa por el vector [2 0 5 -6]. Tenga en cuenta que, para la elaboraci on del trabajo no pueden usarse como parte de su programa las funciones fzero, roots, polyder o similares de MATLAB. Se pueden usar las rutinas del curso o modicaciones de estas. Cada estructura del tipo function debe escribirse en un archivo .m aparte y adem as debe estar debidamente documentado. 1. (10 %) Polinomios de grado 2. Escribir una funci on function [cero1, cero2] = SolucionCuadratica(c) la cual dado el vector de coecientes c de un polinomio de grado 2 devuelve un vector con los dos ceros (reales o complejos) del polinomio. Tenga en cuenta la discusi on del error en el ejemplo 5, secci on 1.2, del libro de Burden y Faires. 2. (10 %) Divisi on Sint etica. Escriba una funci on function [q,r] = DivisionSintetica(c,a) la cual dados el vector de coecientes c de un polinomio P(x) (de grado arbitrario) y un n umero real a, regresa el vector de coecientes q del polinomio cociente Q(x) y el residuo r resultantes al dividir P(x) por x a. Es decir, se tiene que P(x) = Q(x)(x a) + r. Sugerencia: Ver explicaci on del m etodo de Horner en la secci on 2.6 de libro de Burden y Faires. 3. (10 %) M etodo de Newton para polinomios. Escriba una funci on function [p0, err, k, y] = newtonPoly(c, p0, delta, epsilon, max1) que implementa el m etodo de Newton para un polinomio con vector de coecientes c, y donde los otros par ametros son los mismos de la rutina newton del curso. 4. (10 %) Polinomios de grado 3. Escribir una funci on function [cero1, cero2, cero3] = SolucionCubica(c) la cual dado el vector de coecientes c de un polinomio de grado 3 devuelve un vector con los tres ceros del polinomio. La funci on debe determinar un primer cero usando el m etodo de bisecci on (disponible), o el m etodo de Newton (numeral anterior), o una combinaci on de estos. Luego el polinomio se reduce utilizando divisi on sint etica, quedando un polinomio cuadr atico que ya sabemos resolver. Ayuda: Note que es suciente concentrarse en el intervalo [M, M] donde M = m ax 2 |a2 | + |a1 | + |a0 | |a3 | ,1

(con esto, para |x| M se tiene que |a3 x3 | > |a2 x2 + a1 x + a0 | y por lo tanto p(x) = 0), con p(x) = a3 x3 + a2 x2 + a1 x + a0 . 5. (60 %) Polinomios de grado 4. Escribir una funci on function [cero1, cero2, cero3, cero4] = SolucionCuartica(c) la cual dado el vector de coecientes c de un polinomio de grado 4 devuelve un vector con los cuatro ceros del polinomio. El m etodo usado depende del tema: 1

Tema A: M etodo de Bairstow. Factorice el polinomio en dos factores cuadr aticos de la siguiente manera (se puede asumir que el coeciente de x4 es 1) de la siguiente manera: Dividiendo por x2 + ux + v se obtiene un cociente x2 + sx + t y un residuo px + q: x4 + ax3 + bx2 + cx + d = (x2 + sx + t)(x2 + ux + v) + (px + q). Queremos determinar u y v de tal manera que p = q = 0. De esta igualdad obtenemos expresiones para p y q como funciones de u y v (con a, b, c, d constantes): p(u, v) q(u, v) = = c bu + uv + (u2 v)(a u) d bv + v2 + uv(a u)

Alguna soluci on de p(u, v) = q(u, v) = 0 se pueden determinar usando el m etodo de Newton para sistemas con valor inicial [u(0) , v(0) ]T = [a, b]T . Note que las soluciones no son u nicas; se puede garantizar la convergencia a una soluci on con el valor inicial sugerido ? (Para m as informaci on ver el art culo del tema en wikipedia (ingl es)). Tema B: M etodo de DurandKerner. Sea el polinomio P(x) = x4 + ax3 + bx2 + cx + d y supongamos que sus ra ces (posiblemente complejas) son Q, R, S, T . Entonces P(x) = (x Q)(x R)(x S)(x T ). Despejando Q de esta ecuaci on obtenemos: Q=x Note que la iteraci on P(x) . (x R)(x S)(x T )

P (xk ) (xk R)(xk S)(xk T ) da x1 = Q para cualquier x0 = R, S, T (es fuertemente estable). Adem as si se reemplazan R, S, T por aproximaciones q, r, s diferentes de P, entonces P sigue siendo punto jo de la iteraci on xk+1 = xk xk+1 = xk P (xk ) . (xk r)(xk s)(xk t)

La clave del m etodo es entonces combinar est a iteraci on para Q con iteraciones similares simult aneas para R, S, T . As obtenemos P (qk ) qk+1 = qk (qk rk )(qk sk )(qk tk ) P ( rk ) rk+1 = rk (rk qk )(rk sk )(rk tk ) P ( sk ) sk+1 = sk (sk qk )(sk rk )(sk tk ) P (tk ) tk+1 = tk (tk qk )(tk rk )(tk sk ) con condiciones iniciales, por ejemplo, q0 = A0 , r0 = A1 , s0 = A2 , t0 = A3 donde A = 0,4 + 0,9i. El m etodo usa aritm etica compleja y produce las cuatro aproximaciones simult aneamente. (Para m as informaci on ver el art culo del tema en wikipedia (ingl es).) Tema C: M etodo de Muller. L ea la explicaci on del m etodo de Muller en la secci on 2.6 del libro de Burden y Faires, y u selo para obtener un primer cero posiblemente complejo. Entonces el polinomio se puede reducir a un polinomio de grado 2 o 3 (2 en el caso de un cero complejo, tambi en el complejo conjugado es cero). La asignaci on del tema depende de la suma de los u ltimos d gitos del documento de identidad del grupo, m odulo 3. Por ejemplo, si los estudiantes del grupo tiene como ducumentos de itentidadad: 10172117068, 1097727682 y 1104706267, la suma de los u ltimos d gitos es s = 8 + 2 + 7 = 17 y 17 m odulo 3 es 2 (2 es el residuo de dividir 17 en 3), el tema que les corresponde es el C. s m odulo 3 = 0 s m odulo 3 = 1 s m odulo 3 = 2 Tema A Tema B Tema C

Observaci on. Eval ue las rutinas de los numerales 1, 3, 4 con varios polinomios comparando los resultados con los obtenidos por la funci on roots de MATLAB. El error relativo debe ser menor que el 108 . 2