You are on page 1of 15

Inicio

MATLAB

Clculos aritmticos
Variables escalares

Vectores y matrices
Entrada/salida

Grficos
bidimensionales
Funciones

Sentencias
condicionales

Bsico

Ejercicios

1.-Variables

1.1.-Evaluar las siguientes expresiones para el valor dado de x

y=
y=
y=

5
1
x2 x6
, x
x3
tan xsin x
,
x
= 6
xsin x
1
1
3(1 3 x) ,
2(1x)

=2
x=3

Solucin

Sentencias iterativas

>> x=2;
>> y=1/(x-3)-5/(x^2-x-6)
y =
0.2500

Ejemplos

>> x=pi/6;
>> y=(tan(x)-sin(x))/(x-sin(x))
y =
3.2777

>> x=3;
>> y=1/(2*(1-sqrt(x)))-1/(3*(1-nthroot(x,3)))
y =
0.0707

1.2.-La longitud del arco de parbola de la figura es

s=

4a + b2 + 16a2
b2
1
b2 + 16a2 +
ln (
)
2
8a
b

Calcular s para a=12 y b=8


Solucin

>> a=12; b=8;


>> s=sqrt(b^2+16*a^2)/2+b^2*log((4*a+sqrt(b^2+16*a^2))/b)/(8*a)
s =
25.9922

1.3.-Un proyectil se dispara con un ngulo y una velocidad inicial v0. Calcular el alcance horizontal, la altura
mxima y el tiempo de vuelo del proyectil, desde que sale hasta que impacta con el suelo
=60, v0=600 m/s, g=10 m/s2.

xmax =
ymax =
tvuelo =

v20
g

sin(2)

v20
sin2
2g
v0
2 g sin

Solucin

>> th=60; v0=600; g=10;


>> x_max=v0^2*sind(2*th)/g
x_max = 3.1177e+004
>> y_max=v0^2*sind(th)^2/(2*g)
y_max = 1.3500e+004
>> t_vuelo=2*v0*sind(th)/g
t_vuelo = 103.9230

1.4.-Ley del enfriamiento de Newton

T = Ts + (T0 Ts ) ekt

La temperatura ambiente es Ts=20, la temperatura inicial del cuerpo T0=5. Calcular la temperatura T del cuerpo
en el instante t=3, sabiendo que k=0.45.
Solucin

>> Ts=20; T0=5; k=0.45;


>> T=Ts+(T0-Ts)*exp(-k*3)
T = 16.111396090311629

2.-Vectores y matrices
2.1.-Crear el vector que contenga los nmeros pares entre 10 y cero. Crear un vector que contenga los mltiplos
de 3 entre 6 y 36, ambos inclusive.
Solucin

>> x=10:-2:0
x =
10
>> x=6:3:36
x =
6

12

15

18

21

24

27

30

33

36

2.2.-Crear una matriz 32 y otra de 23con 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 = uv cos
Solucin

>> u=[1,0,-3]; v=[4,1,-2];


>> A=[u',v']
A =
1
4
0
1
-3
-2
>> A=[u;v]
A =
1
0
-3
4
1
-2
>> u.*v
ans =
4
0
>> u./v
ans =
0.2500

>> p=u*v'
p =
10
>> th=acosd(p/(norm(u)*norm(v)))
th = 46.3647

1.5000

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


Solucin

>> u=2:3:18
u =
2
5
>> u(1:3)
ans =
2
5
>> u(2:2:6)
ans =
5
11
>> u(end-2:end)
ans =
11
14
>> u([1,3,4])
ans =
2
8

11

14

17

17
17
11

2.4.-Crear la matriz A=[10:-1:4;ones(1,7);2:2:14;zeros(1,7)] con lpiz y papel y luego, comprobar con MATLAB
Obtener la matriz B=A([1,3],[1,3,5:7]) con lpiz y papel y luego, comprobar con MATLAB
Solucin

>> A=[10:-1:4;ones(1,7);2:2:14;zeros(1,7)]
A =
10
9
8
7
6
5
4
1
1
1
1
1
1
1
2
4
6
8
10
12
14
0
0
0
0
0
0
0
>> B=A([1,3],[1,3,5:7])
B =
10
8
6
5
4
2
6
10
12
14

2.5.-Crear estas dos matrices A y B sin inicializar cada elemento de la matriz, en una sola lnea en la ventana de
comandos

1
2

4
5

0 6
0 4

0 2

0 0
0 2

1
3
5 7 9 11
5 10 15 20 25
0

10 20 30 40 50 60

6
Eliminar
ltima
primera matriz y la tercera columna de la segunda matriz
4 la2
0 fila
2 de 4la
Solucin

>> A=[(1:5)',zeros(5,1),(-6:2:2)']
A =
1
0
-6
2
0
-4
3
0
-2
4
0
0
5
0
2
>> B=[1:2:11;0:5:25;10:10:60;-6:2:4]
B =
1
3
5
7
9
11
0
5
10
15
20
25
10
20
30
40
50
60
-6
-4
-2
0
2
4
>> A(end,:)=[]
A =
1
3
5
7
9
11
0
5
10
15
20
25
10
20
30
40
50
60
>> B(:,3)=[]
B =
1
3
7
9
11
0
5
15
20
25
10
20
40
50
60
-6
-4
0
2
4

2.6.-Crear la matriz B de 56 a partir de un vector A de 30 elementos utilizando el comando reshape, y acceder a


los elementos marcados en color rojo

Nota: reshape(A,m,n) crea una matriz mn a partir de los elementos de la matriz A que debe tener mn
elementos.
Solucin

>> A=1:30;
>> B=reshape(A,5,6)
B =
1
6
11
2
7
12
3
8
13
4
9
14
5
10
15
>> B([3,4,5],[4,5])
ans =
18
23
19
24
20
25
>> B(2:4,3:5)
ans =
12
17
22
13
18
23
14
19
24
>> B(2:end,end)
ans =
27
28
29
30
>> B(end,3:5)
ans =
15
20
25

16
17
18
19
20

21
22
23
24
25

26
27
28
29
30

2.7. Sea la matriz

4 2
0 2 3
2 3 1 5 1
0 2 4 3 1

Crear un vector columna de nueve elementos que contenga los elementos de la primera, tercera y cuarta
columna

Crear un vector fila de ocho elementos, que contenga los elementos de la sugunda fila y de la tercera columna

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.
Solucin

>> A=[0,2,3,4,2;-2,3,-1,5,1;0,2,-4,-3,1]
A =
0
2
3
4
2

-2
3
-1
5
1
0
2
-4
-3
1
>> u=[A(:,1);A(:,3);A(:,4)]
u =
0
-2
0
3
-1
-4
4
5
-3
>> u=[A(2,:),A(:,3)']
u =
-2
3
-1
5
1
>> u=[A(end-1:end,end)',A(1,1:3)]
u =
1
1
0
2
3

-1

-4

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

coseno

Solucin

>> ang=0:30:180;
>> y=cosd(ang);
>> [ang',y']
ans =
0
1.0000
30.0000
0.8660
60.0000
0.5000
90.0000
0
120.0000
-0.5000
150.0000
-0.8660
180.0000
-1.0000

2.9.-Sean las matrices

A=(

1 0 1
)
4 2 3

B=(

1 2 3
)
1 1 2

Realizar las siguientes operaciones con lpiz y papel y comprobar luego con MATLAB
A*BT(el superndice T indica traspuesta)
AT*B

A.*B (producto elemento a elemento)


A./B

Solucin

>> A=[1,0,-1;4,-2,-3]
A =
1
0
-1
4
-2
-3
>> B=[1,-2,3;1,-1,2]
B =
1
-2
3
1
-1
2
>> A*B'
ans =
-2
-1
-1
0
>> A'*B
ans =
5
-6
11
-2
2
-4
-4
5
-9
>> A.*B
ans =
1
0
-3
4
2
-6
>> A./B
ans =
1.0000
0
4.0000
2.0000

2.10 Sean las matrices

2 4 1
A = 3 1 5
0 1 4

-0.3333
-1.5000

2 5 0
B = 3 2 7
1 6 9

0 3 5
C = 2 1 0
4 6 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 operacin X=A\b. donde A es la matriz de los
coeficientes, b es el vector de los trminos indpendientes y X es el vector de las incgnitas.

4x 2y + 6z = 8

2x + 8y + 2z = 4

6x + 10y + 3z = 0
4 2 6 x 8
2 8 2y = 4
6 10 3 z 0
Solucin

>> A=[4,-2,6;2,8,2;6,10,3]
A =
4
-2
6
2
8
2
6
10
3
>> b=[8;4;0]
b =
8
4
0
>> X=A\b
X =
-1.8049
0.2927
2.6341
>> A*X
ans =
8.0000
4.0000
0

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

El valor mximo y el ndice de dicho elemento en el vector u


El valor mnimo 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 funcin sort
Solucin

>> u=[5,9,2,4,1,12,7,6,5,8]
u =
5
9
2
4
>> [m,k]=max(u)
m =
12
k =
6
>> [m,k]=min(u)
m =
1
k =
5
>> sum(u)
ans =
59
>> prod(u)
ans =
7257600
>> mean(u)
ans =
5.9000
>> v=sort(u)
v =
1
2
4
5

12

12

2.13. Crear una tabla de valores de la funcin

y=

x2 2
x+4

para los siguientes valores de x: -3, -2, -1, 0, 1, 2, 3


Solucin

>> x=-3:3;
>> y=(x.^2-2)./(x+4);
>> [x',y']
ans =
-3.0000
7.0000
-2.0000
1.0000
-1.0000
-0.3333
0
-0.5000
1.0000
-0.2000
2.0000
0.3333
3.0000
1.0000

2.14. Comprobar que

lim

x0

sin x
=1
x

Establecer el formato largo para expresar los nmeros 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)
Solucin

>> format long


>> n=0:5;
>> x=1./10.^n;
>> y=sin(x)./x;
>> [x',y']
ans =
1.000000000000000
0.100000000000000
0.010000000000000
0.001000000000000
0.000100000000000
0.000010000000000
>> format short

0.841470984807897
0.998334166468282
0.999983333416666
0.999999833333342
0.999999998333333
0.999999999983333

2.15.-Comprobar que la suma

n=1

1
=1
2n

Establecer el formato, 15 decimales (format long). Calcular la suma (a) n=10, (b) n=20, (c) n=40.

Crear el vector n, luego el vector y=1/2n, y sumar los elementos del vector y con la funcin sum de MATLAB
Restaurar el formato por defecto
Solucin

>> format long


>> n=1:10;
>> y=1./2.^n;
>> sum(y)
ans =
0.999023437500000
>> format short

2.16. Comprobar que la suma

(3)n

12
=
2n + 1
n=0

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


Solucin

>> format long


>> n=0:10;
>> y=sqrt(12)*(-3).^(-n)./(2*n+1);
>> sum(y)
ans =
3.141593304503082
>> pi
ans =
3.141592653589793
>> format short

2.17.-Comprobar

1
1
1
1
= 1 + + + ...
4
3
5
7
9
Solucin

>> n=1:4:10001;
>> sum(1./n-1./(n+2))
ans =
0.7853
>> pi/4
ans =
0.7854

>> n=1:2:10001;
>> sum((-1).^((n-1)/2)./n)
ans =
0.7854

3.-Grficos
3.1 La poblacin de Estados Unidos se puede modelar mediante la siguiente formula

y=

197273000
1 + e0.03134(t1913.25)

donde t es el tiempo en aos. Hacer un grfico que muestre la poblacin de USA cada 10 aos desde el ao 1790
hasta el 2000. Crear un script

Solucin

3.2 Dibujar la funcin y=3x3-26x+10, su derivada primera y su derivada segunda, en el intervalo -2x4, en la
misma grfica y con distintos colores y estilo de lnea. Crear un script

Solucin

3.3 Dibujar una curva cicloide, que en ecuaciones paramtricas es


x=r(t-sint),
y=r(t-cost),

Tomar r=1.5 y 0t4

Solucin

3.4. Dibujar la superposicin x1+x2 de dos Movimientos Armnicos Simples de la misma direccin y distinta
frecuencia en el intervalo 0t4,
x1=sin(t)
x2 =sin(2t)

Superponer en el mismo grfico la amplitud modulada (envolvente) en color diferente y con grosor de lnea1.5

Solucin

3.5.Tiro parablico

Un 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
y = y0 + v0 sin t + 12 (g)t2

La ecuacin de la trayectoria del mvil es

g x2
g
= + x tan
(1 +
)
2 v20 cos2
2v20
y
0
y
0
x
2
tan
2
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.
y=

+ x tan

Escribir el script parabolico que produzca una grfica semejante a la de la figura (ms 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 races de la ecuacin de segundo grado
3. Calcular el alcance, conocido el tiempo de vuelo

4. Represente la trayectoria y la decore con ttulo, etiquetas en el eje X y en el eje Y. Utilice el comando axis para
estabecer nuevos valores mximos y mnimos para el eje X y para el eje Y distintos de los que MATLAB
establece por defecto
5. Utilice el comando text, para que apareza en algn lugar de la grfica, los datos del tiempo de vuelo y del
alcance

Ejemplo: Un can 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

Solucin

3.6.-Tiro parablico 3D

Se dispara un proyectil con velocidad de 60 m/s haciendo un ngulo de 30, desde la ventana del vagn de un tren
en movimiento a lo largo del eje X con velocidad de 20 m/s. Tmese g=10 m/s2
Representar la trayectoria del proyectil

Ecuaciones del movimiento

ay = 0

ax = 0

az = 10

Comprobar que

vy = 20

vx = 303

vz = 30 10t

y = 20t

x = 303t

z = 30t 5t2

El proyectil alcanza la mxima 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

Solucin

3.7.-Dibujar al funcin

z=

xy 2
x2 +y 2

1 x 31 y 4

Solucin

3.8. Dibujar la funcin

z = r
0 3600 r 2

Utilizar la funcin pol2cart para convertir cocordendas polares a coordenadas rectangulares.

Solucin

4.-Funciones
4.1. Escribir una funcin que convierta grados F (Fahrenheit) a grados C (Celsius) de acuerdo con la siguiente
frmula

C=

5
(F 32)
9

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

La definicin de la funcin gradosF_C es


Solucin

4.2. Las nuevas coordendas (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 posicin r=xi+yj y correspondiente el vector girado R=Xi+Yj
un ngulo .
>> 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 funcin rotacion


Solucin

5.-Sentencias condicionales
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


Solucin

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

El nmero 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)
Solucin

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

El script es el siguiente
Solucin

5.4. El recibo de la electricidad de los residentes en una determinada ciudad se calcula del siguinete modo:
1. Si se consumen 500 Kwh o menos el coste es de 2 cntimos por Kwh

2. Si se consumen ms de 500 Kwh y pero no ms de 1000 el coste es 10 euros por los primeros 500 Kwh y 5
cntimos por Kwh para el consumo que exceda los 500 Kwh

3. Si se consumen ms de 1000 Kwh el coste es 35 euros por los primeros 1000 Kwh y 10 cntimos por Kwh para
el consumo que exceda los 1000 Kwh
4. La compaa elctrica 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 clculo en dos columnas, una del cosumo y la otra del coste de la
electricidad consumida.
200
500
700
1000
1500

9
15
25
40
90

Solucin

5.5. Escribir una funcin que convierta las coordendas 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

La definicin de la funcin r_polar es

Solucin

6.-Sentencias iterativas
6.1.-Comprobar, utilizando un bucle for

1
1
1
1
= 1 + + + ...
4
3
5
7
9
Solucin

6.2. Clculo de raz cuadrada de un nmero 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


4. Repetir seis veces

Reemplazar x por (x+n/x)/2

5. Mostrar la raz cuadrada de n y x.

6. Restaurar el formato por defecto, (short)


Solucin

6.3.-El nmero irracional

Para hallar la longitud de una circunferencia de radio R, primero se calcula el permetro de un tringulo equiltero
(3 lados) inscrito en dicha circunferencia, luego, de un hexgono (6 lados), un dodecgono (12 lados) y as,
sucesivamente. El lmite de la sucesin de permetros es precisamente la longitud de la circunferencia 2R.
Si tomamos una circunferencia de radio unidad, al dividir entre dos los valores de los permetros iremos
obteniendo las sucesivas aproximaciones del nmero irracional .

Podemos calcular la longitud del lado an un polgono regular de n lados inscrito en la circunferencia de radio R,
(en color rojo).

an = 2R sin ( )
n
Del mismo modo, obtenemos la longitud del lado de un polgono regular inscrito de 2n lados (en color azul)

a2n = 2R sin ( )
2n

1 cos
Teniendo en cuenta que sin ( ) =
2
2

Establecemos la relacin entre an y a2n y por tanto, entre el permetro Pn del polgono regular de n lados y el
permetro P2n del polgono regular de 2n lados.

Pn2
P2n = 2nR2 4 2 2

R n
Tomando como radio R, la unidad

Para un tringulo, n=3, la longitud del lado es a3=2sin60, y el permetro P3 = 33

Para un hexgono, n=6, la longitud del lado es a6=2sin30=1, y el permetro P6=6.


y as, sucesivamente.

Para obtener las sucesivas aproximaciones del nmero irracional mediante la frmula anterior procedemos del
siguiente modo:

1. Partimos del valor del permetro P de un tringulo equiltero inscrito en una circunferencia de radio unidad, el
valor de n es 3.
2. Calculamos el permetro P de un polgono de 2n lados a partir del valor del permetro de un polgono regular
de n lados.
3. El valor obtenido P ser el valor del permetro de un polgono regular de n=2n lados.
4. Se imprime el valor de P dividido entre dos (aproximacin de )
5. Se vuelve al paso 2.

6 lados, aproximacin de pi: 3.00000000


12 lados, aproximacin de pi: 3.10582854
24 lados, aproximacin de pi: 3.13262861
48 lados, aproximacin de pi: 3.13935020
96 lados, aproximacin de pi: 3.14103195

El script es el siguiente
Solucin

6.4-Desarrollo en serie

El desarrollo en serie de sin(x) es

sin(x) x

1 3
x
3!
N

1 5
x
5!

sin(x) = lim (1)n


N

n=0

...

x2n+1
(2n + 1)!

Comparar el valor dado por la funcin MATLAB sin(x) con el valor obtenido al sumar un nmero determinado
de trminos (5, 10, 15..) del desarrollo en serie para un argumento dado, por ejemplo, x=/6 (30 grados).

Definir una funcin denominada serie_sin que admita como parmetros el nmero n de trminos de la serie y el
argumento x (radianes) de la funcin 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

La definicin de la funcin serie_sin es la siguiente


Solucin

Repetir este ejercicio pero con la funcin coseno


N

cos(x) = lim (1)n


N

n=0

x2n
(2n)!

6.5.-Generar un nmero aleatorio entero entre 1 y 10 mediante la funcin randi. Este es el nmero secreto que
hay que adivinar. Utilizar el bucle while del que se sale cuando el usuario introduce mediante el comando input el
nmero correcto. Orientar al usuario si el nmero que prueba es mayor o menor que el nmero secreto
Cul es el nmero secreto?: 3
Es ms pequeo
Cul es el nmero secreto?: 2
Es ms pequeo
Cul es el nmero secreto?: 1
Has acertado

El script es el siguiente:
Solucin

6.6.-Ordenar una lista de nmeros

Para ordenar una lista de nmeros emplearemos el mtodo de la burbuja, un mtodo tan simple como poco eficaz.
Se compara el primer elemento, ndice 0, con todos los dems 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 forma
grfica este procedimiento.
Crear una funcin denominada ordenar que devuelva un vector ordenado en orden ascendente cuando se le pasa
un vector de datos desordenado

Llamamos a la funcin ordenar y le pasamos el vector de datos desordenados: 1.65 1.82 1.72 1.75 1.73 1.85 1.90
1.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

La definicin de la funcin ordenar es


Solucin

MATLAB dispone de una funcin denominada sort que realiza la misma tarea
>> sort([1.65 1.82 1.72 1.75 1.73 1.85 1.90 1.74 1.76 1.77])

En el caso de tablas bidimensionales o multidimensionales, podemos elaborar nuestra propia versin de la


funcin ordenar, pero MATLAB dispone de la funcin sortrows que realiza esta tarea. Por ejemplo, queremos
odenar la siguiente tabla primero por das y despus por temperaturas
Da
15
3

Temperatura
21
32

17
21
8

15
19
35

>> a=[15 21; 3 32; 17 15; 21 19; 8 35]


a =
15
21
3
32
17
15
21
19
8
35
>> sort(a,1)
ans =
3
15
8
19
15
21
17
32
21
35
>> sortrows(a,1)
ans =
3
32
8
35
15
21
17
15
21
19
>> sortrows(a,2)
ans =
17
15
21
19
15
21
3
32
8
35

Fijarse en la importante diferencia entre los resultados de las llamadas a sort(a,1) y sortrows(a,1)
6.7.-Los primeros polinomios de Legendre y la frmula de recurrencia son, respectivamente

P0 (x) = 1
P1 (x) = x
P2 (x) = 12 (3x2 1)
P3 (x) = 12 (5x3 3x)
P4 (x) = 18 (35x4 30x2 + 3)
P5 (x) = 18 (63x5 70x3 + 15x)
P6 (x) =

1
(231x6
16

315x4 + 105x2 5)

...
(n + 1)Pn+1 = (2n + 1)xPn nPn1

Define una funcin recursiva legendre(n,x) para representar grficamente los cinco primeros polinomios de
Legendre para -1x1.
Utilizar la funcin 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 parmetros nos
permiten identificar cada una de las curvas mediante el comando legend.

Solucin
Energas Renovables EUITI de Eibar