Professional Documents
Culture Documents
Ejercicios de Matlab
Ejercicios de Matlab
Puede no utilizar los nombres sugeridos para los argumentos de las funciones, pero debe de
utilizar los nombres de las funciones especificados.
Las funciones a implementar no evaluarán los datos de entrada (por ejemplo, si es especifica
que un dato será entero no haga pruebas dentro de su función para validar esta información).
Asuma que los argumentos de entrada son correctamente ingresados en el momento de su
ejecución.
Escriba las funciones que se piden en cada ejercicio. Utilice “;” al final de las instrucciones para
evitar la observación de los cálculos en la Ventana de Comandos, aunque esto no influya en la
calificación.
Los problemas etiquetados con (**) son más difíciles de resolver, por lo que no se preocupe si le
toma más tiempo que los otros.
Utilice el archivo de evaluación test4.p para su revisión mientras va avanzando, así como para
la calificación final.
1. (2p) Escriba una función llamada vecindario que tome como entrada un vector fila v y
cree otro vector fila de salida que contenga los valores absolutos de las diferencias
entre elementos vecinos de v. Por ejemplo, si v = [1 2 4 7], entonces la salida de
función será [1 2 3]. Note que el vector de salida tendrá un elemento menos que el
vector de entrada. Verifique que la entrada v sea un vector y que tenga por lo menos
dos elementos y retorne un arreglo vacío en caso contrario. No se le permite utilizar la
función diff.
3. (2p) Escriba una función semisuma que tome como entrada por lo menos una matriz
de dos dimensiones A y calcule la suma de los elementos que se encuentren en la
diagonal y a la derecha de esta. La diagonal está definida como el conjunto de
números cuyos índices fila y columna son los mismos.
4. (2p) Escriba una función llamada elementos que tome como entrada un arreglo
llamado X que sea una matriz o un vector. La función identificará aquellos elementos
de X que sean mayores que la suma de sus dos índices. Por ejemplo, si el elemento
X(2,3) es 6, entonces el elemento deberá ser identificado porque 6 es mayor que 2 + 3.
La salida de la función tendrá almacenados los índices de estos elementos encontrados
en una matriz de salida de Nx2. La primera columna contendrá los índices fila,
mientras que la segunda columna contendrá los índices columna correspondientes.
Por ejemplo, la instrucción index = elementos([1 2; 5 2; 6 0]) retornará una matriz
index igual a [1 2; 2 1; 3 1]. Si no hay elementos que cumplan con la condición, la
función retornará un arreglo vacío.
5. (2p) Escriba una función llamada uno_por_n que retorne el menor entero positivo n
para el cual la suma 1 +1/2 + 1/3 + … + 1/n sea mayor o igual a x donde x será el
argumento de entrada. Limite el número máximo de n términos en la suma a 10,000 y
retorne -1 si excede este valor. (Nota: si su programa o el evaluador toma demasiado
tiempo, puede haber creado un lazo infinito y necesita presionar Ctrl-C en el teclado).
6. (2p) Escriba una función llamada pi_aproximado que utilice la siguiente aproximación
de :
∞
(−3)𝑘
𝜋 = √12 ∑
2𝑘 + 1
𝑘=0
7. (2p) Escriba una función llamada separado_por_dos que tome una matriz A de
enteros positivos como entrada y retorne dos vectores fila. El primer vector de salida
contendrá todos los elementos pares de A y nada más, mientras que el segundo
contendrá todos los elementos impares de A y nada más. No puede utilizar lazos-for o
lazos-while.
8. (2p) Escriba una función llamada divvy que tome una matriz A de enteros positivos y
un solo valor entero positivo k como dos argumentos de entrada y retorne una matriz
B que tenga las mismas dimensiones de A. Los elementos de B son todos divisibles por
k. Si un elemento de A es divisible por k, el elemento correspondiente en B debe tener
el mismo valor. Si un elemento de A no es divisible por k, el elemento correspondiente
en B debe ser el producto del elemento en A y k. No se le permite utilizar lazos-for o
lazos-while. Por ejemplo, la instrucción X = divvy([1 2; 3 4],2) retornará un X
igual a [2 2; 6 4].
𝑛
sen( (2k − 1) t)
∑
(2𝑘 − 1)
𝑘=1