Está en la página 1de 16

Ejercicios de MATLAB (Ningún lenguaje se aprende por osmosis)

FECHA DE ENTREGA: 10/JUNIO/2017, CADA ALUMNO DEBERÁ ENTREGAR EL JUEGO COMPLETO

1.1.-Utilizando MATLAB, evaluar las siguientes expresiones para el valor dado de x. Cree un
script.
1 5
y= − 2 , x= 2
x −3 x − x −6
tan x − sin x π
= y = , x
x − sin x 6
1 1
y= − , x= 3
(
2 1− x 3 1− 3 x ) ( )

1.2.-La longitud del arco de parábola de la figura es

1 2 b 2  4a + b 2 + 16a 2 
s= b + 16a 2 + ln  
2 8a  b 

Utilizando MATLAB, calcular s para a=12 y b=8. Cree un script.

1.3.-Un proyectil se dispara con un ángulo θ y una velocidad inicial v0. Calcular utilizando
MATLAB, el alcance horizontal, la altura máxima y el tiempo de vuelo del proyectil, desde
que sale hasta que impacta con el suelo. Cree un script.
θ = 60°, v0 = 600 m / s, g =10 m / s 2
v02
xmax = sin(2θ )
g
v02
ymax = sin2θ
g
v0
tvuelo = 2 sinθ
g

1.4.-Ley del enfriamiento de Newton


T=Ts+(T0−Ts)e−kt

pág. 1
La temperatura ambiente es Ts=20, la temperatura inicial del cuerpo T0=5. Calcular utilizando
MATLAB, la temperatura T del cuerpo en el instante t=3, sabiendo que k=0.45. Cree un script.

2.1.-Crear el vector que contenga los números pares entre 10 y cero. Crear un vector que contenga
los múltiplos de 3 entre 6 y 36, ambos inclusive. Cree un script.

2.2.-Crear una matriz 3×2 y otra de 2×3con los vectores u=[1,0,-3]; v=[4,1,-2];
• Calcular el producto u.*v y cociente u./v elemento a elemento de los dos vectores
• Calcular el producto escalar de los dos vectores y el ángulo entre ellos
 
u ⋅ v = u ⋅ v ⋅ cos θ

2.3.-Sea el vector u=2:3:18;


• Acceder a los tres primeros elementos del vector u
• Acceder al segundo, cuarto y sexto elementos del vector u
• Acceder al sexto, cuarto y sexto elemento del vector u
• Acceder a los tres últimos elementos del vector u
• Acceder al primero, tercero y cuarto elementos del vector u

2.4.-Crear la matriz A=[10:-1:4;ones(1,7);2:2:14;zeros(1,7)] con lápiz y papel y luego, comprobar


con MATLAB
• Obtener la matriz B=A([1,3],[1,3,5:7]) con lápiz y papel y luego, comprobar con MATLAB

2.5.-Crear estas dos matrices A y B sin inicializar cada elemento de la matriz, en una sola línea en
la ventana de comandos
 1 0 −6 
   1 3 5 7 9 11 
 2 0 −4   0 5 10 15 20 25 
 3 0 −2   
   10 20 30 40 50 60 
 4 0 0   −6 −4 −2 0 2 4 
5 0 2   
 
• Eliminar la última fila de la primera matriz y la tercera columna de la segunda matriz

2.6.-Crear la matriz B de 5×6 a partir de un vector A de 30 elementos utilizando el comando


reshape. Acceder a los elementos marcados en color rojo

pág. 2
 0 2 3 4 2
2.7. Sea la matriz  −2 3 −1 5 1

 0 2 −4 −3 1
 
1. Crear un vector columna de nueve elementos que contenga los elementos de la primera, tercera y
cuarta columna
2. Crear un vector fila de ocho elementos, que contenga los elementos de la segunda fila y de la
tercera columna
3. Crear un vector fila de cinco elementos que contenga los dos últimos elementos de la última
columna y los tres primeros elementos de la primera fila.

2.8.- Crear una tabla de valores del coseno de los ángulos comprendidos entre 0 y 180, de 30 en 30
grados
ángulo coseno
0
30
60
...

2.9.-Sean las matrices


 1 0 −1 1 −2 3 
= A =  B  
 4 −2 −3  1 −1 2 
Realizar las siguientes operaciones con lápiz y papel y comprobar luego con MATLAB
A*BT(el superíndice T indica traspuesta)
AT*B
A.*B (producto elemento a elemento)
A./B

2.10 Sean las matrices


 2 4 −1   −2 5 0  0 3 5 
     
A=  3 1 −5  B =
 −3 2 7  C =
2 1 0 
0 1 4   −1 6 9   4 6 −3 
     

pág. 3
Comprobar si son verdaderas o falsas estas afirmaciones:
A+(B+C)= (A+B)+C, propiedad asociativa
2(A+B)=2A+2B
A*(B+C)=A*B+A*C, propiedad distributiva
A*B=B*A, propiedad conmutativa
(A*B)T=BT*AT
(A*B)*C=A*(B*C)
(A+B)T=AT+BT

2.11.-Resolver el sistema de tres ecuaciones mediante la operación X=A\b. donde A es la matriz de


los coeficientes, b es el vector de los términos independientes y X es el vector de las incógnitas.
 4x − 2 y + 6z = 8

 2x + 8 y + 2z = 4
6 x + 10 y + 3 z =
 0

2.12. Dado el vector de datos u=[5, 9, 2, 4, 1, 12, 7, 6, 5, 8];


• El valor máximo y el índice de dicho elemento en el vector u
• El valor mínimo y el índice de dicho elemento en el vector u
• La suma de todos los elementos
• El producto de todos los elementos
• El valor medio
• Crear un vector v a partir del u pero con los elementos ordenados en orden ascendente, utilizando
la función sort

2.13. Crear una tabla de valores de la función


x2 − 2
y=
x+4
para los siguientes valores de x: -3, -2, -1, 0, 1, 2, 3

2.14. Comprobar que


sin x
lim =1
x →0 x
Establecer el formato largo para expresar los números con 15 decimales (format long)
Crear un vector x cuyos elementos son 1,0.1, 0.01,0.001,...y calcular el cociente sin(x)/x. Regresar al
formato por defecto( format short)

2.15.-Comprobar que la suma



1
∑2
n =1
n
=1

Establecer el formato, 15 decimales (format long).


Calcular la suma (a) n=10, (b) n=20, (c) n=40.

pág. 4
Crear el vector n, luego el vector y=1/2n, y sumar los elementos del vector y con la función sum de
MATLAB Restaurar el formato por defecto

2.16. Comprobar que la suma


( −3)
−n

12 ∑ =π
n =0 2n + 1

Calcular la suma para (a) n=10, (b) n=20, (c) n=40.

2.17.-Comprobar
π 1 1 1 1 1
=1 − + − + − +
4 3 5 7 9 11

3.1 La población de Estados Unidos se puede modelar mediante la siguiente formula


197273000
y= −0.03134( t −1913.25 )
1+ e

donde t es el tiempo en años. Hacer un gráfico que muestre la población de USA cada 10 años desde el
año 1790 hasta el 2000. Crear un script

3.2 Dibujar la función y=3x3-26x+10, su primera derivada y su segunda derivada, en el intervalo -


2≤x≤4, en la misma gráfica y con distintos colores y estilo de línea. Crear un script

pág. 5
3.3 Dibujar una curva cicloide, que en ecuaciones paramétricas es
x=r(t-sint),
y=r(t-cost),

Tomar r=1.5 y 0≤t≤4π

3.4. Dibujar la superposición x1+x2 de dos Movimientos Armónicos Simples de la misma dirección
y distinta frecuencia en el intervalo 0≤t≤4π,

pág. 6
x1=sin(t)
x2 =sin(2t)

Superponer en el mismo gráfico la amplitud modulada (envolvente) en color diferente y con grosor de
línea1.5

3.5.Tiro parabólicoUn cuerpo se lanza desde la altura y0con velocidad v0, que hace un ángulo θ con
la horizontal. Las ecuaciones del movimiento son:
= x v0 cos θ ⋅ t
1
y = y0 + v0 sin θ ⋅ t + (−g )t2
2

La ecuación de la trayectoria del móvil es


x2
y0 + x tan θ − x 2 2 (1 + tan 2 θ )
g g
y= y0 + x tan θ − =
2 v0 cos θ
2 2
2v0

Dados los datos de la altura inicial y0, la velocidad inicial v0 y el ángulo de tiro θ calcular el alcance
horizontal y el tiempo de vuelo del proyectil, cuando llega al suelo y=0.

Escribir el script parabolico que produzca una gráfica semejante a la de la figura (más abajo) y que
realice las siguientes tareas:

1. Establezca mediante comandos input, los valores de la altura y0, velocidad inicial v0 y ángulo de
tiro θ
2. Determine el tiempo de vuelo calculando una de las raíces de la ecuación de segundo grado
3. Calcular el alcance, conocido el tiempo de vuelo
4. Represente la trayectoria y la decore con título, etiquetas en el eje X y en el eje Y. Utilice el
comando axis para establecer nuevos valores máximos y mínimos para el eje X y para el eje Y
distintos de los que MATLAB establece por defecto
5. Utilice el comando text, para que aparezca en algún lugar de la gráfica, los datos del tiempo de
vuelo y del alcance

Ejemplo: Un cañón dispara una bala desde lo alto de un acantilado de 100 m de altura con una velocidad
de 46 m/s haciendo un ángulo de 30° por encima de la horizontal. Tomar g=10 m/s2

>> parabolico altura: 100


velocidad inicial: 46 ángulo:30

pág. 7
3.6.-Tiro parabólico 3D

Se dispara un proyectil con velocidad de 60 m/s haciendo un ángulo de 30°, desde la ventana del vagón
de un tren en movimiento a lo largo del eje X con velocidad de 20 m/s. Tómese g=10 m/s2

Representar la trayectoria del proyectil

Ecuaciones del movimiento


a x = 0 vx = 30 3  x = 30 3 ⋅
  
a y = 0 vy = 20  y = 20 ⋅ t
a = -10 v = 30 − 10 ⋅ t  z = 30 ⋅ t − 5 ⋅ t 2
 z  z 

Comprobar que

• El proyectil alcanza la máxima altura cuando vz=0, en el instante t=3 s, la altura es de zmax=45 m.
• El proyectil impacta contra el suelo cuando z=0, en el instante t=6 s. En este instante las
coordenadas del punto de impacto son: x=120 m, y=311.8 m

pág. 8
3.7.-Dibujar la función
xy 2
= z -1 ≤ x ≤ 3 1 ≤ y ≤ 4
x2 + y 2

3.8. Dibujar la función

=z rθ 0 ≤ θ ≤ 360 0 ≤ r ≤ 2

pág. 9
Utilizar la función pol2cart para convertir coordenadas polares a coordenadas rectangulares.

4.1. Escribir una función que convierta grados F (Fahrenheit) a grados C (Celsius) de acuerdo con
la siguiente fórmula
5
=C ( F − 32 )
9

>> gradosF_C(32)
ans = 0
>> gradosF_C(212)
ans = 100

4.2. Las nuevas coordenadas (X,Y) de un punto (x,y) del plano que es girado alrededor del eje Z
un ángulo θ (en el sentido de las agujas del reloj) viene dado por

 X x cos θ − y sin θ
=

Y x sin θ + y cos θ
=
 X   cos θ − sin θ  x 
 =  
 Y   sin θ cos θ  y 

Utilizar el comando compass para dibujar el vector posición r=xi+yj y correspondiente el vector girado
R=Xi+Yjun ángulo θ.

pág. 10
>> u=[sqrt(3);1];
>> ang=120;
>> v=rotacion(ang,u)
v=
-1.7321
1.0000
>> hold on
>> compass(u(1),u(2))
>> compass(v(1),v(2))
>> hold off

Definimos la función rotacion

5.1.-Sea el vector x=[-4,0,5,-3,0,3,7,-1,6];


Contar cuantos elementos del vector son positivos, negativos o nulos

5.2.-Una empresa paga los siguientes tipos de salario anual: 12000, 15000, 18000, 24000, 35000,
50000 y 70000. El número de empleados en cada una de las categorías es: 3000, 2500, 1500,
1000, 400, 100 y 25. Calcular:

• El número total de empleados


• El número de empleados de la empresa cuyos salarios son superiores a 32000 e inferiores a dicha
cantidad
• El salario medio por empleado en la empresa (media ponderada)

pág. 11
5.3. Crear un script que realice la siguiente tarea: cuando se proporciona una medida de longitud
expresada en mm, cm, dm, m, km se obtiene la respuesta de dicha medida convertida a m
(metros). Por ejemplo, medida=50 y unidad='cm' aparece
0.5 m

5.4. El recibo de la electricidad de los residentes en una determinada ciudad se calcula del
siguiente modo:
1. Si se consumen 500 Kwh o menos el coste es de 2 céntimos por Kwh
2. Si se consumen más de 500 Kwh y pero no más de 1000 el coste es 10 euros por los primeros
500 Kwh y 5 céntimos por Kwh para el consumo que exceda los 500 Kwh
3. Si se consumen más de 1000 Kwh el coste es 35 euros por los primeros 1000 Kwh y 10 céntimos
por Kwh para el consumo que exceda los 1000 Kwh
4. La compañía eléctrica incluye un gasto fijo de 5 euros, independiente del consumo.

Las lecturas del contador de electricidad de cinco familias ha sido el siguiente: 200, 500, 700, 1000,
1500 Kwh, respectivamente. Mostrar los resultados del cálculo en dos columnas, una del consumo y la
otra del costo de la electricidad consumida.

200 9
500 15
700 25
1000 40
1500 90

5.5. Escribir una función (r_polar ) que convierta las coordenadas rectangulares x e y a polares r,
θ.

>> [r,ang]=r_polar(sqrt(3),1)
r= 2.0000 ang = 0.5236
>> [r,ang]=r_polar(-sqrt(3),-1)
r= 2.0000 ang = 3.6652
>> [r,ang]=r_polar(sqrt(3),-1)
r= 2.0000 ang = 5.7596

6.1.-Comprobar, utilizando un bucle for

π 1 1 1 1
=1 − + − + +
4 3 5 7 9

6.2. Cálculo de raíz cuadrada de un número n, mediante el siguiente algoritmo

1. Establecer el formato a 15 decimales, (long)


2. Establecer el valor inicial de n
3. Establecer el valor inicial de x en n/2

pág. 12
4. Repetir seis veces
Reemplazar x por (x+n/x)/2
5. Mostrar la raíz cuadrada de n y x.
6. Restaurar el formato por defecto, (short)

6.3.-El número irracional π. Para hallar la longitud de una circunferencia de radio R, primero se
calcula el perímetro de un triángulo equilátero (3 lados) inscrito en dicha circunferencia,
luego, de un hexágono (6 lados), un dodecágono (12 lados) y así, sucesivamente. El límite de la
sucesión de perímetros es precisamente la longitud de la circunferencia 2πR.

Si tomamos una circunferencia de radio unidad, al dividir entre dos los valores de los perímetros iremos
obteniendo las sucesivas aproximaciones del número irracional π.

Podemos calcular la longitud del lado an un polígono regular de n lados


inscrito en la circunferencia de radio R, (en color rojo).
π 
an = 2 R sin  
n
Del mismo modo, obtenemos la longitud del lado de un polígono regular
inscrito de 2n lados (en color azul)
π 
a2 n = 2 R sin  
 2n 
α  1 − cos α
Teniendo en cuenta que   =
2 2
Establecemos la relación entre an y a2n y por tanto, entre el perímetro Pn del polígono regular de n lados
y el perímetro P2n del polígono regular de 2n lados.

Pn2
P=
2n 2nR 2 − 4 −
R 2 n2
Tomando como radio R, la unidad

• Para un triángulo, n=3, la longitud del lado es a3=2sin60°, y el perímetro P3 = 3 3


• Para un hexágono, n=6, la longitud del lado es a6=2sin30°=1, y el perímetro P6=6.
• y así, sucesivamente

Para obtener las sucesivas aproximaciones del número irracional π mediante la fórmula anterior
procedemos del siguiente modo:

1. Partimos del valor del perímetro P de un triángulo equilátero inscrito en una circunferencia de
radio unidad, el valor de n es 3.
2. Calculamos el perímetro P de un polígono de 2n lados a partir del valor del perímetro de un
polígono regular de n lados.
3. El valor obtenido P será el valor del perímetro de un polígono regular de n=2n lados.
4. Se imprime el valor de P dividido entre dos (aproximación de π)

pág. 13
5. Se vuelve al paso 2.

6 lados, aproximación de pi: 3.00000000


12 lados, aproximación de pi: 3.10582854
24 lados, aproximación de pi: 3.13262861
48 lados, aproximación de pi: 3.13935020
96 lados, aproximación de pi: 3.14103195

6.4-Desarrollo en serie

El desarrollo en serie de sin(x) es


1 1
sin x ≈ x − x3 + x5 − 
3! 5!
N
x 2 n +1
= sin x lim ∑ ( −1)
n

N →∞
n =0 ( 2n + 1)!
Comparar el valor dado por la función MATLAB sin(x) con el valor obtenido al sumar un número
determinado de términos (5, 10, 15..) del desarrollo en serie para un argumento dado, por ejemplo,
x=π/6 (30 grados).

Definir una función denominada serie_sin que admita como parámetros el número n de términos de la
serie y el argumento x (radianes) de la función sin.

>> format long


>> serie_sin(2,pi/6)
ans = 0.499674179394364
>> serie_sin(5,pi/6)
ans = 0.500000000020280
>> sin(pi/6)
ans = 0.500000000000000
>> format short

6.5.- Repetir el ejercicio 6.4 pero con la función coseno


N 2n
n x
= cos x lim ∑ ( −1)
N →∞
n =0 ( 2n ) !

6.6.-Generar un número aleatorio entero entre 1 y 10 mediante la función randi. Este es el número
secreto quehay que adivinar. Utilizar el bucle while del que se sale cuando el usuario
introduce mediante el comando input el número correcto. Orientar al usuario si el número
que prueba es mayor o menor que el número secreto

¿Cuál es el número secreto?: 3

pág. 14
Es más pequeño
¿Cuál es el número secreto?: 2
Es más pequeño
¿Cuál es el número secreto?: 1
Has acertado

6.7.-Ordenar una lista de números

Para ordenar una lista de números emplearemos el método de la burbuja, un


método tan simple como poco eficaz. Se compara el primer elemento, índice
0, con todos los demás elementos de la lista, si el primer elemento es mayor
que el elemento j, se intercambian sus valores, siguiendo el procedimiento
explicado en la figura. Se continua este procedimiento con todos los
elementos del array menos el último. La figura explica de formagráfica este
procedimiento.

Crear una función denominada ordenar que devuelva un vector ordenado en


orden ascendente cuando se le pasa un vector de datos desordenado

Llamamos a la función ordenar y le pasamos el vector de datos


desordenados: 1.65 1.82 1.72 1.75 1.73 1.85 1.901.74 1.76 1.77

>> ordenar([1.65 1.82 1.72 1.75 1.73 1.85 1.90 1.74 1.76 1.77])
ans = 1.6500 1.7200 1.7300 1.7400 1.7500 1.7600 1.7700 1.8200 1.8500 1.9000

6.8.-Los primeros polinomios de Legendre y la fórmula de recurrencia son, respectivamente


P0 ( x ) = 1
P1 ( x ) = x

=
P2 ( x)
1
2
( 3x 2 − 1)
=
P3 ( x)
1
2
( 5 x3 − 3x )
P4 ( x=
)
1
8
( 35x 4 − 30 x 2 + 3)
P5 ( x =
)
1
8
( 63x5 − 70 x3 + 15 x )
P6 ( =
x)
1
16
( 231x6 − 315 x 4 + 105 x 2 − 5)

( n + 1) Pn+1 =( 2n + 1) xPn − nPn−1

pág. 15
Defina una función recursiva legendre(n,x) para representar gráficamente los cinco primeros polinomios
deLegendre para -1≤x≤1.

Utilizar la función plot para representar cada uno de los polinomios con la siguientes opciones

plot(x,y,color(n),'displayName',num2str(n))

....

legend('-DynamicLegend','location','Best')

Definir un vector de cinco colores, color(n) es el elemento n de dicho vector. Los otros dos parámetros
nos permiten identificar cada una de las curvas mediante el comando legend.

Ajuste los datos generados por el método: a) De los mínimos cuadrados, b)De los polinomios de
Lagrange.

pág. 16