Parcialito 1 - 2022b - Tema 1#
Ejercicio 1#
Implementar una función que dadas 2 secuencias recibidas como argumento retorne los índices de cada una de ellas a partir de los cuales se obtiene la subsecuencia en común de mayor longitud, y retorne también la longitud de dicha secuencia. Por ejemplo, las cadenas:
"TAGGTTAATGGGCCATTTTCGGCACCCTAGGTAGCTTATT"
, y"ACCATACTATGGTTTTTCCTAAGCGATTGGCATTTTCTTG"
tienen un solapamiento máximo de 7 caracteres, como se muestra a continuación:
Mientras que las cadenas:
"TACCAGTCTATGTCATCCAGGGTAGCTGTTTGATTGTCCC"
, y"CGAACGGAGAAAGTTAGCATTCCCAGTTGTCGGGTCTACG"
tienen un solapamiento máximo de 5 caracteres:
Por otro lado, las listas [0, 1, 2, 3, 4, 5]
y [2, 3, 4]
tienen un solapamiento de 3 elementos.
Ejercicio 2#
El algoritmo de Newton-Raphson es uno de los más utilizados para encontrar las raices de una ecuación. Para ello, necesitamos una función \(f(x)\) a la que le buscaremos la raíz, es decir, el \(x\) tal que \(f(x) = 0\). Una vez que tenemos \(f(x)\), necesitamos \(f'(x)\) y partir de un punto, llamado \(x_0\).
Dado un valor \(x_0\), \(f(x)\) y \(f'(x)\), podemos calcular un siguiente punto como:
de manera genérica, dado un punto cualquiera para \(f(x_k)\), donde \(x_k\) es el valor de \(x\) en la iteración \(k\), podemos obtener \(x_{k+1}\) del siguiente modo:
Claramente, tenemos como condición que \(f(x_k) \neq 0\).
Dada \(f(x) = \cos(x) - 2 x^3\) y \(f'(x) = -\sin(x) - 6 x^2\):
- Implementar las funciones
fx(x)
ydfdx(x)
con las definiciones de \(f(x)\) y \(f'(x)\), respectivamente. -
Implementar una función que implemente el algoritmo descripto anteriormente, considerando:
- La función debe recibir un parámetro que indique el error máximo admitido (\(\delta\)) que indica qué tan cerca del cero podemos frenar (sin llegar al cero).
- La función debe recibir un parámetro que indique la cantidad de iteraciones máximas (\(N\)).
- La función debe retornar el valor de \(x\) y el número de iteración cuando \(|f(x)| \leq \delta\) o cuando se alcance el número de iteraciones.
- En cada iteración, la función debe imprimir por pantalla: “Iteración k: x = valor de x, f(x) = valor de f(x)”, donde “k” es el número de iteración, “valor de x” es el valor de \(x\) en dicha iteración y “valor de f(x)” es el valor de \(f(x)\) en dicha iteración.