4.  Métodos matemáticos.

Slides:



Advertisements
Presentaciones similares
Diseño y análisis de algoritmos
Advertisements

Cociente de polinomios
Descomposición en Fracciones simples.
Problemas resueltos de inducción
Recursión y Relaciones de Recurrencia
FACTORIZACIÓN LU Bachilleres:
EC. DIFERENCIAL Def: Se llama ecuación diferencial a una relación que contiene una o varias derivadas de una función no especificada “y” con respecto.
LA CLASE VIRTUAL POLINOMIOS.
Valores y Vectores Propios
Diferenciación e Integración Numérica
2.1 – Expresiones algebraicas
Análisis Matemático III
Sistemas de Ecuaciones Diferenciales Lineales
Unidad 1: ECUACIONES DIFERENCIALES DE PRIMER ORDEN
Ecuaciones 3º de ESO.
Análisis y Diseño de Algoritmos
Módulo 8 Ecuaciones Lineales.
EXPONENTES Y RADICALES
Ecuaciones de recurrencia
TRANSFORMACIONES LINEALES PARA REDES NEURALES ARTIFICIALES
Operaciones con Polinomios
Análisis de Algoritmos
TEMA 4 TRANSFORMADA DE LAPLACE
Del lenguaje ordinario al lenguaje algebraico
Unidad 1: ECUACIONES DIFERENCIALES DE PRIMER ORDEN
Ecuaciones de segundo grado
Resolución de recurrencias, por cambio de variable
Divide y vencerás 1. Método general.
Ecuaciones Algebraicas
“Ecuaciones de primer grado y sistemas de ecuaciones”
Al hallar la raíz cuadrada de un número puede suceder que:
Matemáticas Aplicadas CS I
3. Recursividad y Backtracking
Ecuaciones diferenciales de orden superior
Parte II. Algorítmica. 4. Programación dinámica.
1  Una Ecuaci ó n de Recurrencia Lineal de Orden n a Coeficientes Constantes se define seg ú n la ecuaci ó n: ∑ d K a K = g(n) donde d K son constantes.
Parte I. Estructuras de Datos.
M.C. Meliza Contreras González 1.  Es normal que un algoritmo se base en procedimientos auxiliares, haga llamadas recursivas para tamaños menores o reduzca.
Capítulo 6. ANÁLISIS DE ALGORITMOS
Análisis de Algoritmos
Tema 7: NOTACIONES ASINTÓTICAS
Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid Bloque 2: Divide y Vencerás Unidad 1: Nociones básicas.
REGLA DE RUFFINI DÍA 11 * 1º BAD CS
POLINOMIOS p(x) = p0 + p1x + p2x2 + p3x3 + … + pnxn pn ≠ 0
INAOE CURSO PROPEDEUTICO PARA LA MAESTRIA EN ELECTRONICA
EXPRESIONES ALGEBRAICAS
ÁLGEBRA.
ECUACIONES DE 2º GRADO a.x2 + b.x + c = 0
FACTORIZACION.
Operaciones Algebraicas
CALCULO INTEGRAL (ARQ)
@ Angel Prieto BenitoMatemáticas 4º ESO Opc B1 Tema 3 * 4º ESO Opc B ECUACIONES Y SISTEMAS.
 Un sistema de ecuaciones es un grupo de ecuaciones que representan líneas rectas.  Una ecuación es una igualdad en la que los términos pueden ser conocidos.
Análisis de Fourier.
Matemáticas II. Profesor: Ing. Yadhira M. Rangel Carrillo.
Integración por fracciones simples
QUINTA CONFERENCIA Lugar: Oficinas Generales Fecha: 15 de Diciembre de 2007 Conferencista: Prof. Carlos Betancourt Monroy Centro de Estudios Científicos.
Inducción y Recursión Matemáticas Discretas L. Enrique Sucar INAOE.
Lic. JOSEPH V, RUITON RICRA. Sean los siguientes polinomios en “x”: P(x) = 5x + 2, x  {-1; 0; 1; 3; 4; 9} Q(x) = x 2 + 3x - 1, x  {-2; -1; 0; 3; 9}
6. Sistemas de ecuaciones diferenciales lineales
28/10/2015 SISTEMAS DE ECUACIONES LINEALES Es aquel conjunto formado por dos o más ecuaciones, en el cual su conjunto solución verifica cada una de las.
Soluciones en Serie de Ecuaciones Lineales
Tipos de Datos abstractos
@ Angel Prieto BenitoApuntes de Matemáticas 3º ESO1 U.D. 4 * 3º ESO E.AC. Polinomios.
Hernández Camacho Víctor Jesus Islas Sánchez Karla Vanessa
Solución a Ecuaciones de Recurrencia Dr. Rogelio Dávila Pérez División de Posgrado Universidad Autónoma de Guadalajara
TEMA 2 INTEGRAL DE RIEMANN.
FACTORIZACIÓN POR: Moisés Inostroza C..
Propiedad Intelectual Cpech PPTCAC008MT21-A16V1 Álgebra I Propiedad Intelectual Cpech ACOMPAÑAMIENTO ANUAL BLOQUE 21.
Transcripción de la presentación:

4.  Métodos matemáticos

Funciones Discretas Para estudiar la eficiencia de los algoritmos, generalmente usamos funciones discretas, que miden cantidades tales tiempo de ejecución, memoria utilizada, etc. Estas funciones son discretas porque dependen del tamaño del problema (n). Por ejemplo, n podría representar el número de elementos a ordenar. Notación: f (n) o bien fn , representa al tiempo, por eso también se usa T(n) o Tn

Notación O Se dice que una función f (n) es O(g(n)) si existe una constante c > 0 y un n0 >= 0 tal que para todo n >= n0 se tiene que f (n) <= cg(n). (cota superior de un algoritmo) Se dice que una función f (n) es Ω(g(n)) si existe una constante c > 0 y un n0 >= 0 tal que para todo n >= n0 se tiene que f (n) >= cg(n). (cota inferior) Se dice que una función f (n) es Θ (g(n)) si f (n) = O(g(n)) y f (n) = Ω(g(n)).

Ejemplos Θ (n) 3n = O(n) 2 = O(1) 2 = O(n) 3n + 2 = O(n) An2+ Bn + C = O(n2) Alog n + Bn + C nlog n + Dn2 = ? 3 = Ω(1) 3n = Ω(n) 3n = Ω(1) 3n + 2 = Ω(n) Θ (n)

Ecuaciones de Recurrencia Son ecuaciones en que el valor de la función para un n dado se obtiene en función de valores anteriores. Esto permite calcular el valor de la función para cualquier n, a partir de condiciones de borde (o condiciones iniciales) Ejemplo: Torres de Hanoi an = 2an-1 + 1 a0 = 0 Ejemplo: Fibonacci fn = fn-1 + fn-2 f0 = 0 f1 = 1

Ecuaciones de Primer Orden Consideremos una ecuación de la forma an = ban-1 + cn donde b es una constante y cn es una función conocida. Como precalentamiento, consideremos el caso b = 1: an = an-1 + cn Esto se puede poner en la forma an - an-1 = cn Sumando a ambos lados, queda una suma telescópica: an = a0 + Σck 1<=k<=n

Ecuaciones de Primer Orden: (cont.) Para resolver el caso general: an = ban-1 + cn dividamos ambos lados por el “factor sumante” bn: an/bn = an-1/bn-1 +cn/bn Si definimos An = an /bn, Cn = cn=bn, queda una ecuación que ya sabemos resolver: An = An-1 + Cn con solución An = A0 + Σck 1<=k<=n y finalmente an = a0bn + Σckbn-k

Ejemplo: Torres de Hanoi El número de movimientos de discos está dado por la ecuación an = 2an-1 + 1 a0 = 0 De acuerdo a lo anterior, la solución es an = Σ2n-k = Σ2k 1<=k<=n 0<=k<=n-1 Lo que significa an = 2n-1

Propuesto Generalizar este método para resolver ecuaciones de la forma an = bnan-1 + cn donde bn y cn son funciones conocidas.

Ecuaciones Lineales con coef. Const. Ejemplo: Fibonacci fn = fn-1 + fn-2 f0 = 0 f1 = 1 Este tipo de ecuaciones tienen soluciones exponenciales, de la forma fn = λn: fn = fn-1 + fn-2  λn = λn-1 + λn-2 Dividiendo ambos lados por λn-2 obtenemos la ecuación característica λ2 - λ + 1 = 0 cuyas raíces son Ф1= (1+ sqrt(5))/2 ≈ 1.618 Ф2= (1- sqrt(5))/2 ≈ 0.618

Ecuaciones Lineales con coef. Const. La solución general se obtiene como una combinación lineal de estas soluciones: fn = A Ф1n + B Ф2n La condición inicial f0 = 0 implica que B = -A, esto es, fn = A(Ф1n - Ф2n) y la condición f1 = 1 implica que A(Ф1 - Ф2) = A sqrt(5) = 1 con lo cual obtenemos finalmente la fórmula de los números de Fibonacci: fn =(1 /sqrt(5)) (Ф1n - Ф2n) Nótese que Ф2n tiende a 0 cuando n tiende a infinito, de modo que fn = Θ (n)

Teorema Maestro (div. para reinar) Consideremos la ecuación de la forma T(n) = pT(n/q) + Kn Supongamos que n es una potencia de q, digamos n = q k Entonces T(q k ) = pT(q k -1 ) + Kq k Y si definimos a k = T(q k ) tenemos la ecuación: a k = pa k -1 + Kq k La cual tiene solución a k = a 0 p k + K Σqjpk-j (ver al principio) 1<=j<=n

Teorema Maestro (cont.) Como k = log q n, tenemos T(n) = T(1)plog q n + Kplog q n Σ(q/p)j 1<=j<=log q n Y observamos que plog q n = (qlog q p) log q n =(qlog q n) log q p =(n) log q p Por lo tanto: T(n) = (n) log q p (T(1) + K Σ(q/p)j )

Teorema Maestro: caso p < q T(n) = pT(n/q) + Kn

Teorema Maestro: caso p = q T(n) = pT(n/q) + Kn

Teorema Maestro: caso p > q T(n) = pT(n/q) + Kn

Dividir para Reinar Este es un método de diseño de algoritmos que se basa en subdividir el problema en sub-problemas, resolverlos recursivamente, y luego combinar las soluciones de los sub-problemas para construir la solución del problema original. Ejemplo: Multiplicación de Polinomios. Supongamos que tenemos dos polinomios con n coeficientes, o sea, de grado n-1: A(x) = a0+a1*x+ ... +an-1*xn-1B(x) = b0+b1*x+ ... +bn-1*xn-1 representados por arreglos a[0], .., a[n-1] y b[0], ..,b[n-1]. Queremos calcular los coeficientes del polinomio C(x) tal que C(x) = A(x)*B(x).

Solulción Un algoritmo simple para calcular esto es: // Multiplicación de polinomios  for( k=0; k<=2*n-2; ++k )     c[k] = 0; for( i=0; i<n; ++i)     for( j=0; j<n; ++j)         c[i+j] += a[i]*b[j]; Evidentemente, este algoritmo requiere tiempo O(n2). ¿Se puede hacer más rápido?

Dividir-componer Supongamos que n es par, y dividamos los polinomios en dos partes. Por ejemplo, si A(x) = 2 + 3*x - 6*x2 + x3 entonces se puede reescribir como A(x) = (2+3*x) + (-6+x)*x2 y en general A(x) = A'(x) + A"(x) * xn/2 B(x) = B'(x) + B"(x) * xn/2 Entonces C = (A' + A"*xn/2) * (B' + B"*xn/2)  = A'*B' + (A'*B" + A"*B') * xn/2 + A"*B" * xn

Dividir-componer (cont.) C = (A' + A"*xn/2) * (B' + B"*xn/2)  = A'*B' + (A'*B" + A"*B') * xn/2 + A"*B" * xn Esto se puede implementar con 4 multiplicaciones recursivas, cada una involucrando polinomios de la mitad del tamaño que el polinomio original. T(n) = 4*T(n/2) + K*n donde K es alguna constante cuyo valor exacto no es importante. Por lo tanto la solución del problema planteado (p=4, q=2) es T(n) = O(nlog2 4) = O(n2) lo cual no mejora al algoritmo visto inicialmente.

Dividir-componer (cont.) Pero... hay una forma más eficiente de calcular C(x). Si renombramos : D = (A'+A") * (B'+B") E = A'*B‘ F = A"*B" entonces C = E + (D-E-F)*xn/2 + F*xn Lo cual utiliza sólo 3 multiplicaciones recursivas, en lugar de 4. Esto implica que T(n) = O(nlog2 3) = O(n1.59)