Sunteți pe pagina 1din 23

UNIVERSIDAD DE LAS FUERZAS ARMADAS

INGENIERÍA ELECTRÓNICA EN AUTOMATIZACIÓN Y CONTROL

LABORATORIO DE MATEMÁTICA

SOFIA LISSETTE YUMISACA DUCHE


15 de Junio del 2017

ING. NANCY BETANCOURT


2 Programación en Matlab

1. Crear la función Datos que no recibe dato de entrada ni envia dato de salida.Imprima
su informacion personal.(Nombre, Apellido,Semestre,email, Carrera, etc.)
1 f u n c t i o n Datos ( )
2 sofia
3 yumisaca
4 tercero
5 espe

Ejecución del programa

>> Datos()

ans =

Sofia, Yumisaca,Tercero,sofit_25@hotmail.com, Electrónica Automatización y Control

>>

Explicación
La función datos, no ingresa datos de entrada, sólo permite mostrar en el compilador lo que se
encuentra entre comillas simples.
2. Crear la función Cuenta que recibe dos datos de entrada(cadenas de caracteres)y
no envı́a dato de salida. El primer dato es su nombre y el segundo datos es su
apellido.La función deberá imprimir el número de letras que tiene su nombre y el
número de letras que tiene su apellido.
1 f u n c t i o n Cuenta ( a , b )
2 l=s i z e ( a )
3 m=s i z e ( b )

Ejecución del programa

>> nombre=’Sofia’
nombre =

Sofia

>> apellido=’Yumisaca’

apellido =

Yumisaca

>> Cuenta(nombre,apellido)

numero_de_letras_Nombre =

numero_de_letras_Apellido =

2
Sec. 1 Ejercicios 3

Explicación
Esta es una función con dos datos de entrada, antes de determinar el numero de letras se debe
determinar el tamaño de cada dato, con el comando size(), y luego guardarlo en una nueva
variable, para que se muestre en pantalla el tamaño de cada dato ingresado, hay que tomar en
cuenta que los caracteres deben ser ingresados con comillas simples.

3. Crear la función ParImpar que tome como dato de entrada una matriz de orden NxM
Y que envı́e como dato de salida el valor cero 0 si la suma de todos los elementos de
la matriz es impar o que envı́e como dato de salida uno 1 si la suma de los elementos
de la matriz es par.
1 f u n c t i o n ParImpar (w)
2 x=sum (w) ;
3 suma=sum ( x )
4 z=mod( suma , 2 ) ;
5 y=suma / 2 ;
6 i f z==0
7 1
8 else 0
9 end

Ejecución del programa

>> w=[1 2 ;4 5 ;7 8 ]

w =

1 2
4 5
7 8

>> ParImpar(w)

suma =

27

ans =

>>

Explicación
En la matriz NxM se usa el comando suma para determinar la

4. Crear una función variables, que tome como dato de entrada dos variables y que
imprima en pantalla la suma, resta, multiplicación y la división entre las variables.
Ejecute el programa usando variables simples(enteros, flotantes), vectores y matri-
ces. Agregar validaciones(IF) en los casos que sean necesarios.
1 function variables (a , b)
2 %v a r i a b l e s s i m p l e s
3 m=s i z e ( a ) ;
4 n=s i z e ( b ) ;

3
4 Programación en Matlab

5 i f 1==m( 2 )&&1==n ( 2 )
6 suma=a+b
7 r e s t a=a−b
8 m u l t i p l i c a c i o n=a ∗b
9 d i v i s i o n=a /b
10 else
11 i f m( 1 )==n ( 1 )&& m( 2 )==n ( 2 )
12 suma=a+b
13 r e s t a=a−b
14 m u l t i p l i c a c i o n=a . ∗ b
15
16 else
17 d i s p ( ’MATRICES INCOMPATIBLES ’ )
18 d i s p ( ’FAVOR INGRESAR MATRICES DEL MISMO ORDEN ’ )
19
20 end
21 end
22 %m a t r i c e s

Ejecución del programa

>> a=12

a =

12

>> b=34

b =

34

>> variables(a,b)

suma =

46

resta =

-22

multiplicacion =

408

division =

0.3529

>> a=12.45

4
Sec. 1 Ejercicios 5

a =

12.4500

>> b=45.78

b =

45.7800

>> variables(a,b)

suma =

58.2300

resta =

-33.3300

multiplicacion =

569.9610

division =

0.2720

>> a=[1 2 3;4 5 6; 7 8 9]

a =

1 2 3
4 5 6
7 8 9

>> b=[0 1 1; 9 8 7; 6 5 4]

b =

0 1 1
9 8 7
6 5 4

>> variables(a,b)

suma =

1 3 4

5
6 Programación en Matlab

13 13 13
13 13 13

resta =

1 1 2
-5 -3 -1
1 3 5

multiplicacion =

0 2 3
36 40 42
42 40 36

>> a=[1 2 3]

a =

1 2 3

>> b=[5 6 4]

b =

5 6 4

>> variables(a,b)

suma =

6 8 7

resta =

-4 -4 -1

multiplicacion =

5 12 12

>> a=[1 2; 3 4; 4 5]

a =

1 2
3 4
4 5

6
Sec. 1 Ejercicios 7

>> b=[1 2; 3 4; 5 6; 2 1]

b =

1 2
3 4
5 6
2 1

>> variables(a,b)
>> a=[1 2; 3 4; 5 6; 2 1]

a =

1 2
3 4
5 6
2 1

>> b=[2 3; 4 5]

b =

2 3
4 5

>> variables(a,b)
MATRICES INCOMPATIBLES
FAVOR INGRESAR MATRICES DEL MISMO ORDEN
>>

Explicación
Para este ejercicio se tomó en cuenta muchos aspectos, cuando los datos son enteros o flotantes se
realizan los cálculos sin problemas, sin embargo, cuando son vectores y matrices se debe validar
que el tamaño de estos sea el mismo, porque las operaciones no se pueden realizar si no cumplen
esta condición.
5. Manipulación de matrices
Investigue como funciona el comando mod().
Crear una matriz de orden nxm, extraer la cuarta fila de la matriz.
Crear una matriz de orden nxm, extraer la segunda columna de la matriz.
Dada la matriz de orden nxm, extraer una matriz de orden 4x4.
Dada una matriz de orden nxn cualesquiera, use los siguientes comando: suma,
prod.Escriba al menos dos ejemplos de uso.

1 f u n c t i o n e x t r a e r (w)
2 x=s i z e (w) ;
3 i f x ( 1 )>=4
4 f i l a 4 =w ( 4 , : )
5 else

7
8 Programación en Matlab

6 d i s p ( ’ e l numero de f i l a s debe s e r mayor a 3 ’ )


7 end
8 i f x ( 2 )>=2
9 columna2=w ( : , 2 )
10 else
11 d i s p ( ’ e l numero de columnas d e b e r s e r mayor a 1 ’ )
12 end
13 i f x ( 2 )>3&&x ( 1 )>3
14 m a t r i z 4 x 4=w ( 1 : 4 , 1 : 4 )
15 else
16 d i s p ( ’ m a t r i z de orden i n f e r i o r a 4 x4 ’ )
17 end
18 i f x ( 1 )==x ( 2 )
19 suma=sum (w)
20 p r o d u c t o=prod (w)
21 e l s e d i s p ( ’MATRIZ NO CUADRADA’ )
22 end

Ejecución del programa

>> w=[1 2 3 4 5; 6 7 8 9 10; 9 8 7 6 5; 4 3 2 1 2]

w =

1 2 3 4 5
6 7 8 9 10
9 8 7 6 5
4 3 2 1 2

>> extraer(w)

fila4 =

4 3 2 1 2

columna2 =

2
7
8
3

matriz4x4 =

1 2 3 4
6 7 8 9
9 8 7 6
4 3 2 1

MATRIZ NO CUADRADA
>> w=[1 2 3; 4 5 6; 7 8 9]

w =

8
Sec. 1 Ejercicios 9

1 2 3
4 5 6
7 8 9

>> extraer(w)
el numero de filas debe ser mayor a 3

columna2 =

2
5
8

matriz de orden inferior a 4x4

suma =

12 15 18

producto =

28 80 162

>> w=[1 2 3 4 5; 6 7 8 9 0; 0 9 8 7 6; 5 4 3 2 1; 2 3 4 5 6]

w =

1 2 3 4 5
6 7 8 9 0
0 9 8 7 6
5 4 3 2 1
2 3 4 5 6

>> extraer(w)

fila4 =

5 4 3 2 1

columna2 =

2
7
9
4
3

matriz4x4 =

9
10 Programación en Matlab

1 2 3 4
6 7 8 9
0 9 8 7
5 4 3 2

suma =

14 25 26 27 18

producto =

0 1512 2304 2520 0

>>

Explicación
Se utilizó una funcion para la extraccion de las filas y columnas que se piden, al ponerla en
una función este código sirve para cualquier tipo de matriz ingresada a través de la ventana de
comandos.
Crear una función que permita calcular la media, la varianza y la desviación
estándar de una serie de datos que están almacenados en un matriz.

1 f u n c t i o n c a l c u l a r (w)
2 l=s i z e (w)
3 d i s p ( ’ La media de l a m a t r i z e s : ’ )
4 s=sum ( sum (w) ) ;
5 Media=s / ( l ( 1 ) ∗ l ( 2 ) )
6 d i s p ( ’ La v a r i a n z a e s : ’ )
7 n=(w−Media ) . ˆ 2 ;
8 d=sum ( sum ( n ) ) ;
9 V a r i a n z a=d / ( l ( 1 ) ∗ l ( 2 ) )
10 d i s p ( ’ La d e s v i a c i o n e s t a n d a r e s : ’ )
11 D e s v i a c i o n=s q r t ( V a r i a n z a )

Ejecución del programa

>> w=[1 2 3; 4 5 6]

w =

1 2 3
4 5 6

>> calcular(w)
La media de la matriz es:

Media =

3.5000

La varianza es:

10
Sec. 1 Ejercicios 11

Varianza =

2.9167

La desviacion estandar es:

Desviacion =

1.7078

>>

Explicación
Para esta función se utilizo el dato de entrada que es una matriz de cuaquier orden, y genera los
calculos de la media, la varianza y la desviación estándar, para el cálculo de la media solamente
se aplico dos veces el comando ”sum()”para sumar todos los elementos de la matriz y dividirlo
para el número de elementos, para la varianza se aplicó la sumatoria de la diferencia de los
cuadrados de la resta entre los elementos de la matriz y la media, todo eso divido para el número
de elementos de la matriz y finalmente el cálculo de la desviación estándar que es la raı́z cuadrada
de la varianza.

6. Investigue para que sirven los siguientes comandos de Matlab. Que datos sirven
como entrada y cual es la salida o resulado que envı́a el comando.

mod()

El comando mod() sirve para hallar el residuo en la división de dos números.


Los datos de entrada pueden ser escalares, vectores o matrices.

Ejecución del programa

a=[3,4,-6,7];
>> b=2;
>> c=mod(a,b)

c =

1 0 0 1

diag()

El comando diag() lo que hace es generar un vector a partir de una matriz, dicho vector
es la diagonal principal de la matriz. Los datos de entrada son solamente matrices y en la
salida entrega un vector.

Ejecución del programa

N =

3 5 2 1 4 6
1 5 10 9 0 1

11
12 Programación en Matlab

4 2 7 6 5 0
3 2 9 8 5 1
5 3 1 6 2 1
3 2 1 0 6 9

>> s=diag(N)

s =

3
5
7
8
2
9

real()

Este comando devuelve la parte real de una número complejo

Ejecución del programa

Z = 2+3*i;
X = real(Z)

X =

imag()

Retorna la parte imaginaria de un numero complejo

Ejecución del programa

Z = 2+5*i;
>> imag(Z)

ans =

round()

Redondea la parte entera de un número decimal

Ejecución del programa

V=[4.66,3.2,6.2,7.5];
>> round(V)

12
Sec. 1 Ejercicios 13

ans =

5 3 6 8

fix()

redondea cada elemento de un vector o matriz al número entero más cercano hacia cero.
Ejecución del programa

V=[4.66,3.2,6.2,7.5];
>> fix(V)

ans =

4 3 6 7

floor()

Redondea un número al siguiente entero más pequeño

Ejecución del programa

floor(2.5), floor(-9/2), floor(7.3 + 2*i)

ans =

ans =

-5

ans =

7.0000 + 2.0000i

ceil

Redondea cada elemento de una matriz al número entero más próximo mayor o igual que
ese elemento

Ejecución del programa

X = [-3.9 -1.2 4.4; 8.7 7 2.4+3.6i];


Y = ceil(X)

Y =

13
14 Programación en Matlab

-3.0000 + 0.0000i -1.0000 + 0.0000i 5.0000 + 0.0000i


9.0000 + 0.0000i 7.0000 + 0.0000i 3.0000 + 4.0000i

sign()

Este comando tiene como dato de entrada un array y como dato de salida un array del
mismo orden que el primero pero entregando lo siguiente:

1 si el dato es mayor a cero


0 si el dato es igual a cero
-1 si el dato es menor a cero

Ejecución del programa

D=[3,-2,0,6,-1,0];
>> sign(D)

ans =

1 -1 0 1 -1 0

log()

Devuelve el logaritmo de un numero en base natural, incluso los números negativos, usando
valor absoluto.

Ejecución del programa

log(4)

ans =

1.3863

log10()

Devuelve el logaritmo de un numero en base 10, incluso los números negativos, usando valor
absoluto.

Ejecución del programa

log(4)

ans =

1.3863

>> log10(-5)

ans =

14
Sec. 1 Ejercicios 15

0.6990 + 1.3644i

exp()

Este comando utiliza el valor de e (euler) y lo eleva al número deseado

Ejecución del programa

exp(3)

ans =

20.0855

linspace()

Devuelve un vector fila de 100 puntos uniformemente espaciados entre dos los dos datos de
ingreso. Ejecución del programa

y=linspace(-2,2)

y =

Columns 1 through 12

-2.0000 -1.9596 -1.9192 -1.8788 -1.8384 -1.7980 -1.7576 -1.7172 -1.6768

Columns 13 through 24

-1.5152 -1.4747 -1.4343 -1.3939 -1.3535 -1.3131 -1.2727 -1.2323 -1.1919

Columns 25 through 36

-1.0303 -0.9899 -0.9495 -0.9091 -0.8687 -0.8283 -0.7879 -0.7475 -0.7071

Columns 37 through 48

-0.5455 -0.5051 -0.4646 -0.4242 -0.3838 -0.3434 -0.3030 -0.2626 -0.2222

Columns 49 through 60

-0.0606 -0.0202 0.0202 0.0606 0.1010 0.1414 0.1818 0.2222 0.2626

Columns 61 through 72

0.4242 0.4646 0.5051 0.5455 0.5859 0.6263 0.6667 0.7071 0.7475

Columns 73 through 84

15
16 Programación en Matlab

0.9091 0.9495 0.9899 1.0303 1.0707 1.1111 1.1515 1.1919 1.2323

Columns 85 through 96

1.3939 1.4343 1.4747 1.5152 1.5556 1.5960 1.6364 1.6768 1.7172

Columns 97 through 100

1.8788 1.9192 1.9596 2.0000

magic()

Devuelve una matriz nxn construida a partir de los enteros 1 a n2 con sumas iguales de fila
y columna. El orden n debe ser un escalar mayor o igual a 3.

Ejecución del programa

U=magic(4)

U =

16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1

inv ()

Devuelve la matriz inversa de la matriz ingresada.

Ejecución del programa

B =

3 2 1 5
7 3 5 4
1 5 2 3
6 2 5 1

>> Y=inv(B)

Y =

5.0000 -8.0000 -0.0000 7.0000


3.4000 -5.7000 0.3000 4.9000
-6.8000 10.9000 -0.1000 -9.3000
-2.8000 4.9000 -0.1000 -4.3000

>> I=Y*B

16
Sec. 1 Ejercicios 17

I =

1.0000 -0.0000 0.0000 0.0000


0.0000 1.0000 -0.0000 0
-0.0000 0.0000 1.0000 0.0000
-0.0000 0 0 1.0000

sin(), asin(), sinh(), cos(), acos(), cosh()

Estos comandos devuelven los resultados de las funciones trigonométricas seno, seno inver-
tido, seno hiperbólico, coseno, coseno invertido y coseno hiperbólico, ingreso de datos en
radianes.

Ejecución del programa

x = [-i pi+i*pi/2 -1+i*4];


>> sin(x)

ans =

0.0000 - 1.1752i 0.0000 - 2.3013i -22.9791 +14.7448i

>> asin(x)

ans =

0.0000 - 0.8814i 1.0903 + 1.9375i -0.2383 + 2.1226i

>> sinh(x)

ans =

0.0000 - 0.8415i 0.0000 +11.5920i 0.7682 - 1.1678i

>> cos(x)

ans =

1.5431 + 0.0000i -2.5092 - 0.0000i 14.7547 +22.9637i

>> acos(x)

ans =

1.5708 + 0.8814i 0.4805 - 1.9375i 1.8091 - 2.1226i

>> cosh(x)

ans =

0.5403 + 0.0000i 0.0000 +11.5487i -1.0086 + 0.8894i

17
18 Programación en Matlab

Pruebe los comandos y pegue en su documento la corrida tal como se explicó anteriormente.
7. Dadas dos variables A y b; donde A es matriz y b vector, use el comando max(),min().
1 f u n c t i o n m a t r i z 1 (A, b )
2 x=max(A)
3 y=min ( b )

Ejecución del programa

>> A=[5 4 2; 9 3 0]

A =

5 4 2
9 3 0

>> b=[9;6;5]

b =

9
6
5

>> matriz1(A,b)

x =

9 4 2

y =

>>

Explicación
El comando max() en una matriz extrae el número mayor o máximo de cada columna que lo
forma. Mientras que el comando min() extrae el menor valor o mı́nimo del vector ingresado.
8. Dada una matriz NxN agregar una columna en la posición n − 1
1 f u n c t i o n A=columna (M)
2 [ n1 n2 ]= s i z e (M) ;
3 i f n1==n2
4 v=rand ( 1 , n1 ) ;
5 M=[M’ ; v ] ’ ;
6 A=M;
7 A ( : , n2+1)=M( : , n2 ) ;
8 A ( : , n2 )=M( : , n2+1)
9 else
10 d i s p ( ’ l a m a t r i z no e s cuadrada ’ )
11 end

18
Sec. 1 Ejercicios 19

Ejecución del programa

columna(S,N)

A =

1 3 5
4 7 6
9 2 1

B =

2
4
5

vec =

1 3 2 5
4 7 4 6
9 2 5 1

Explicación:
La función valida si es que la matriz ingresada tiene mas de dos columnas, luego une la matriz
con el vector, para finalmente hacer el cambio entre la ultima y la penultima posición.
9. Dada una matriz NxN agregar una fila al principio y al final de la matriz
1 f u n c t i o n a g r e g a r (w)
2 m=s i z e (w)
3 i f m( 1 )==m( 2 )
4 z=rand ( 1 ,m( 2 ) )
5 x=rand ( 1 , m( 2 ) )
6 w=[ z ; w ; x ]
7 else
8 d i s p ( ’ orden d i s t i n t o ’ )
9 end

Ejecución del programa

>> w=[1 2 3; 4 5 6; 7 8 9]

w =

1 2 3
4 5 6
7 8 9

>> agregar(w)

m =

19
20 Programación en Matlab

3 3

z =

0.4898 0.1932 0.8959

x =

0.0991 0.0442 0.5573

w =

0.4898 0.1932 0.8959


1.0000 2.0000 3.0000
4.0000 5.0000 6.0000
7.0000 8.0000 9.0000
0.0991 0.0442 0.5573

>>

Explicación
Para este ejercicio se usó el comando rand() para generar valores aleatorios que conformen un
vector fila, luego se reordeno la nueva matriz con los vectores filas obtenidos.

10. Investigue el o los comandos para ordenar los elementos de un vector (ascendente y
descendente).
1 f u n c t i o n m a t r i z 2 (w)
2 a s c e n d e n t e=s o r t (w)
3 d e s c e n d e n t e= f l i p l r ( a s c e n d e n t e )

Ejecución del programa

>> w=[-11 9 1 0 -7]

w =

-11 9 1 0 -7

>> matriz2(w)

ascendente =

-11 -7 0 1 9

descendente =

9 1 0 -7 -11

20
Sec. 1 Ejercicios 21

>>

Explicación
En este ejercicio se usó el comando sort() para ordenar los elementos de un vector de forma
ascendente (de menor a mayor) y el comando fliplr() para obtener un vector con sus valores
descendentes (mayor a menor).

11. Dada una matriz NxM, ordenar ascendentemente la primera columna de la matriz.
1 f u n c t i o n or den 2 (A)
2 % A e s una m a t r i z de orden NxM
3 A
4 C=A( : , 1 ) ;
5 CORD=s o r t (C) ;
6 A( : , 1 )=CORD;
7 d i s p ( ’ Primera columna ordenada a s c e n d e n t e m e n t e ’ )
8 A

Ejecución del programa

orden2(B)

A =

3 2 1 5
7 3 5 4
1 5 2 3
6 2 5 1

Primera columna ordenada ascendentemente

A =

1 2 1 5
3 3 5 4
6 5 2 3
7 2 5 1

Explicacion:
La función extrae los elementos de la matriz y los ordena ascendentemente.

12. Dada una matriz MxN, ordenar descendentemente la ultima fila de la matriz.

1 f u n c t i o n or den 3 (A)
2 % A e s una m a t r i z de MxN
3 A
4 l=s i z e (A) ;
5 F=A( l ( 1 , 1 ) , : ) ;
6 FORD= f l i p l r ( s o r t (F) ) ;
7 A( l ( 1 , 1 ) , : )=FORD;
8 d i s p ( ’ Ultima f i l a ordenada d e s c e n d e n t e m e n t e ’ )
9 A

21
22 Programación en Matlab

Ejecución del programa

orden3(C)

A =

0 2 4 6
8 10 12 14
16 18 20 22

Ultima fila ordenada descendentemente

A =

0 2 4 6
8 10 12 14
22 20 18 16

Explicacion:
La función ordena la última fila en orden descendente
13. Dada una matriz NxN ordena la diagonal principal

1 f u n c t i o n d i a g o n a l (A)
2 % A e s una m a t r i z de orden MxM
3 A
4 D=d i a g (A) ;
5 d i s p ( ’ D i a g o n a l ordenada a s c e n d e n t e m e n t e ’ )
6 a s c=s o r t (D)

Ejecución del programa


diagonal(B)

A =

3 2 1 5
7 3 5 4
1 5 2 3
6 2 5 1

Diagonal ordenada ascendentemente

asc =

1
2
3
3

Explicacion:
La función extrae la diagonal principal y la ordena en un vector.

22
Bibliografı́a

[1] Moore, H.Matlab para Ingenieros


[2] Tomado de:http://minisconmatlab.blogspot.com/2014/07/funciones-con-numeros.html

23

S-ar putea să vă placă și