Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad 1
Ejercicio 7. Se pide realizar una función que recibiendo como argumento de en-
trada un número entero positivo n devuelva el valor de la aproximación de
la divina proporción para el término n de la serie de Fibonacci. La divi-
na proporción es la división del término i de la serie de Fibonacci entre el
anterior.
2
Ejercicio 9. Escribir una función de MATLAB que tome como entradas un vector
de números enteros v y un número entero n, y que devuelva el número de
veces que n está contenido en el vector v.
Ejercicio 10. Escribir una función que calcule el producto de dos vectores v y
w que se pasan como parámetros. Si no se recibiesen dos argumentos de
entrada se deberá mostrar un mensaje de error por pantalla y devolver un
−1. Si las dimensiones de los vectores fueran incoherentes para realizar el
producto escalar de deberá devolver un −1 y mostrar también un mensaje
de error.
Ejercicio 11. Escribir una función de MATLAB que construya un vector que
contenga los n primeros términos de la serie de Fibonacci, donde n es un
parámetro que se pasará como argumento de entrada.
Ejercicio 12. Escriba una función de MATLAB que reciba un vector de números
reales, v, como argumento de entrada y determine cuál de todos ellos es el
más cercano al primero de los elementos del vector y devuelva su posición, p,
dentro del vector. Ejemplo: para v = (2, 6, 4, 1, 10), p = 4, ya que el número
más cercano al primero (2) es el cuarto (1). Si no se proporciona un vector
de entrada se generará un vector de tamaño 10 de números aleatorios reales
entre 0 y 10. En caso de que el vector no tenga al menos dos componentes,
el método devolverá un −1.
Ejercicio 13. Escriba una función que determine si el número que se le pasa como
parámetro es o no un primo.
Ejercicio 14. Escriba una función que devuelva un vector con los n primeros
números primos.
Ejercicio 15. Escriba una función que devuelva un vector con los n primeros
números primos ordenados de mayor a menor.
Ejercicio 16. Escriba una función que devuelva el n-ésimo número primo, siendo
n el valor pasado como parámetro.
Ejercicio 17. Escriba una función que devuelva cuántos números distintos apare-
cen en el vector que se pasa como parámetro.
3
Ejercicio 18. Escriba una función que devuelva un vector con los factores primos
del número que se pasa como parámetro.
Ejercicio 19. Escriba una función que devuelva una matriz con dos filas: en la
primera aparecerán los factores primos del número que se pasa como paráme-
tro; en la segunda, los exponentes de dichos factores primos. Por ejemplo,
para el número 102, que es 23 ∗ 3 ∗ 5, se devolverá la siguiente matriz:
2 3 5
.
3 1 1
Ejercicio 20. Escriba una función que devuelva el máximo común divisor de n y
m.
Ejercicio 21. Escribir una función que dibuje un tablero de ajedrez. Las casillas
negras se indicarán con N y las blancas con B.
Ejercicio 22. Escribir una función en MATLAB que tome como parámetros la
posición (fila y columna) de un alfil en el tablero de ajedrez y muestre todos
sus posibles movimientos con un asterisco.
Ejercicio 23. Escribir una función en MATLAB que tome como parámetros la
posición (fila y columna) de un caballo en el tablero de ajedrez y muestre
todos sus posibles movimientos con un asterisco.
Ejercicio 24. Escribir una función en MATLAB que, sin usar la función eye,
devuelva una matriz identidad de nxn.
Ejercicio 25. Escribir una función en MATLAB que, sin usar la función diag,
devuelva los valores situados en la diagonal principal de una matriz que se
pasa como parámetro.
Ejercicio 26. Escribir una función en MATLAB que calcule la traza de una ma-
triz.
Ejercicio 27. Escribir una función que construya una matriz cuadrada de anchura
par, formada por 1 y 0 alternativos. Por ejemplo, si n = 6:
1 2 3 4 5 6
1 1 0 1 0 1 0
2 0 1 0 1 0 1
3 1 0 1 0 1 0 .
4 0 1 0 1 0 1
5 1 0 1 0 1 0
6 0 1 0 1 0 1
4
Ejercicio 28. Vandermonde. Escribir una función que reciba como parámetro un
vector v y un entero n y devuelva la matriz de Vandermonde de n columnas.
El vector v representa los valores de la segunda columna. Por ejemplo, si
v = [1234] y n = 5, la matriz de Vandermonde tiene los valores de v en la
segunda columna, y n columnas en total:
0 1 2 3 4
1 1 1 1 1
20 21 22 23 24
0 1 2 3 4 .
3 3 3 3 3
40 41 42 43 44
Ejercicio 29. Escribir una función que, tomando como parámetro un número
entero n, devuelva una matriz de dimensión nxn que contenga de forma
ordenada los n ∗ n primeros términos de la serie de Fibonacci. Para n = 3,
por ejemplo:
1 1 2
3 5 8 .
13 21 34
Ejercicio 30. Escribir una función en MATLAB que calcule el producto de dos
matrices.
Ejercicio 31. Escribir una función que tome un parámetro n y construya una
matriz con el triángulo de Targalia de dimensión n. Por ejemplo, para n = 4,
la matriz que se espera es:
1 2 3 4
1 1 0 0 0
2 1 1 0 0 .
3 1 2 1 0
4 1 3 2 1
Ejercicio 32. Escribir una función que, dado un parámetro n, devuelva una matriz
formada por asteriscos que se formen un triángulo equilátero. Por ejemplo,
para n = 4 y n = 5, las figuras son:
1 2 3 4 5 6 7
1 *
2 * * * .
3 * * * * *
4 * * * * * * *
5
1 2 3 4 5 6 7 8 9
1 *
2 * * *
.
3 * * * * *
4 * * * * * * *
5 * * * * * * * * *
Ejercicio 33. Escribir una función tome como parámetro un número n y devuelva
una matriz de nxn, triangular superior, con la siguiente forma:
1 2 3 ··· n
0 1 2 ··· n−1
0 0 1 ··· n−2
.
0 0 0 ··· ···
0 0 0 1 2
0 0 0 0 1
Ejercicio 34. Escribir una función que construya una matriz de nxn cuya diagonal
principal esté formada por unos, y el resto de diagonales están formadas por
su distancia a la diagonal principal. Por ejemplo, para n = 5:
1 2 3 4 5
2 1 2 3 4
3 2 1 2 3 .
4 3 2 1 2
5 4 3 2 1
Ejercicio 35. Escribir una función que construya una matriz de nxn cuya diagonal
principal esté formada por los valores pasados en un parámetro m, y el resto
de diagonales están formadas por su distancia a la diagonal principal más
m. Por ejemplo, para n = 5 y m = 6:
6 7 8 9 10
7 6 7 8 9
8 7 6 7 8 .
9 8 7 6 7
10 9 8 7 6
Ejercicio 36. Escribir una función que tome un argumento n y devuelva una
matriz de nxn con todos los números desde 1 hasta n2 . Por ejemplo, para
n = 4.
6
1 2 3 4
1 1 2 3 4
2 5 6 7 8 .
3 9 10 11 12
4 13 14 15 16
Ejercicio 37. Escribir una función que tome un argumento n y devuelva una
matriz de nxn con todos los números desde 1 hasta n2 , ordenados de mayor
a menor. Por ejemplo, para n = 4.
1 2 3 4
1 16 15 14 13
2 12 11 10 9 .
3 8 7 6 5
4 4 3 2 1
Ejercicio 38. Escribir una función en MATLAB que devuelva una matriz de nxn
con los números desde el 1 hasta n2 colocados en las filas en zigzag. Por
ejemplo, para n = 4:
1 2 3 4
1 16 15 14 13
2 12 11 10 9 .
3 8 7 6 5
4 4 3 2 1
Ejercicio 39. Escribir una función que construya una matriz de nxn, con n impar,
en la que cada elemento es un número que representa la distancia al elemento
central de la matriz. La distancia es la suma de las distancias en filas y
columnas. Por ejemplo, para n = 5:
1 2 3 4 5
1 4 3 2 3 4
2 3 2 1 2 3
.
3 2 1 0 1 2
4 3 2 1 2 3
5 4 3 2 3 4
Ejercicio 40. Escribir una función que construya una matriz de nxn, con n impar,
en la que cada elemento es una letra que representa la distancia al elemento
7
1 2 3 4 5
1 e d c d e
2 d c b c d
.
3 c b a b c
4 d c b c d
5 e d c d e
Ejercicio 41. Escribir una función en MATLAB que busque, en la cadena que
se pasa como primer parámetro, la cadena que se pasa como segundo. La
operación debe devolver un −1 si no la encuentra, o la posición en la que
aparece. Por ejemplo: encontrar (’Problemas de MATLAB’, ’MATLAB’)
debe devolver 14.
Ejercicio 42. Escribir una función que, tomando una cadena de caracteres co-
mo parámetro, devuelva un 1 si la cadena es un palı́ndromo, y 0 en caso
contrario, sin considerar los espacios en blanco.
Ejercicio 43. Un vector es un monte si su primera mitad es creciente, la segunda
decreciente y, además, el vector es un palı́ndromo. Escribir una función que
determine si el vector v que se pasa como parámetro es o no un monte.
Ejercicio 44. Mediante el algoritmo de Montecarlo es posible calcular el valor
aproximado de π. Partimos de una circunferencia de radio 1 inscrita en un
cuadrado de lado 2. Para aproximar el valor de π, lanzamos un número gran-
de de dardos aleatoriamente dentro del cuadrado. Al terminar el proceso,
la proporción entre el número de dardos dentro del cı́rculo y el número de
dardos totales será aproximadamente igual a la relación entre la superficie
del cı́rculo y la superficie del cuadrado. Puesto que conocemos la superficie
del cuadrado ( lado x lado = 2x2 = 4) y la expresión para calcular la del
cı́rculo (π ∗ radio2 ∗ 12 ), podemos despejar un valor aproximado para π.
S(circulo) dardos(circulo)
≈ ,
S(cuadrado) dardos(cuadrado)
entonces
π dardos(circulo)
≈ ,
4 dardos(cuadrado)
ası́
dardos(circulo)
π≈4 .
dardos(cuadrado)
8
1 2 3 4 5 6 7 8 9 10
1 S 1 1
2 1 1 1 1 1
3 1 1 1
4 1 1 1 1 1
5 1
6 1 1 1 1 1 1
7 1 1
8 1 1 1 1 1
9 1
10 1 E