Sei sulla pagina 1di 18

Universidad de las Fuerzas Armadas

ESPE

Laboratorio de Matemáticas
NRC 2219

Funciones Octave

Tutor:
Fabian Marcelo Ordoñez Moreno

Autor:
David Stalin Moya Román
Luis Alejandro Rosero Arciniega

30 de noviembre de 2018
Funciones Octave

Deber 1
El objetivo del deber es programar en Matlab una serie de problemas básicos, fun-
ciones y ejecutar comandos. El deber será entregado individualmente. Usted deberá crear un
documneto LATEX, que contenga:
1. El enunciado de los ejercicios.

2. El código de Matlab

3. La ejecución del programa.

4. Explicación

1. EJERCICIOS
Programe las funciones (no scripts) que sean necesarias.

1. Crear una función variable, que tome como dato de entrada dos variables y que im-
prima en pantalla la suma, la resta, la multiplicación y la división entre las variables.
Ejecute el programa usando varaibles simples (enteros, flotantes), vectores y matrices.
NO necesita hacer validaciones, ejecute con variables ideales.

Código Octave
function [ su r e pro d i v c d e f g h]= v a r i a b l e ( x , y ) ;
%[ su r e pro d i v c d e f g h]= v a r i a b l e ( x , y )
%O p eraciones con e n t e r o s y f l o t a n t e s
su=x+y ;
r e=x−y ;
pro=x∗y ;
d i v=x/y ;
%O p eraciones con v e c t o r e s
a=[x y ]
b=[y x ]
c=a+b ;
d=a−b ;
e=a . ∗ b ;
%O p eraciones con m a t r i c e s
U=[x y ; y x ]
V=[y x ; x y ]
f=U+V;
g=U−V;
h=U. ∗V;
endfunction

David Stalin Moya Román, 1


Luis Alejandro Rosero Arciniega
Funciones Octave

Ejecución del Programa

[su re pro div c d e f g h]=variable(2,3)


a =
2 3
b =
3 2
U =
2 3
3 2
V =
3 2
2 3
su = 5
re = -1
pro = 6
div = 0.66667
c =
5 5
d =
-1 1
e =
6 6
f =
5 5
5 5
g =
-1 1
1 -1
h =
6 6
6 6

2. Manipulación de matrices:

Investigue como funciona el comando mod(). Una de las funciones incorporadas en


el programa de software matemático MATLAB es el comando el comando ”mod”,
abreviatura de ”módulo”. La función ”modçalcula directamente el resto de una
operación de división.
Crear una matriz de orden nxm, extraer la cuarta fila de la matriz.
Código Octave
%M a t r i z nxm , e x t r a e r l a c u a r t a f i l a .
function [ p ] = E j e r c i c i o 2 (P)

David Stalin Moya Román, 2


Luis Alejandro Rosero Arciniega
Funciones Octave

%P = f i x (5∗ randn ( 6 , 6 ) ) ; [ p ] = E j e r c i c i o 2 (P)


P = f i x (5∗ randn ( 6 , 6 ) )
disp ( ’ Cuarta f i l a ’ )
p=P( 4 , : )
endfunction
Ejecución del Programa

P = fix(5*randn ( 6 , 6 ) );[ p ] = Ejercicio2 (P)


P =
-2 -3 8 1 -2 -1
2 10 -3 4 -3 0
-2 -5 -0 1 5 4
-1 -9 -1 1 -3 -0
0 1 7 -2 2 7
6 -1 0 -8 -0 7

Cuarta fila
p =
-1 -9 -1 1 -3 -0

Explicación El programa genera una matriz nxm de números enteros,donde se


puede ingresar el número de filas y columnas, y posteriormente a la matriz ya
generada se le extrae únicamente la cuarta fila.
Crear una matriz de orden nxm, extraer la segunda columna de la matriz.
Código Octave
%M a t r i z nxm , e x t r a e r l a segunda columna .
function [ l ] = Matriz (L)
%L = f i x (5∗ randn ( 6 , 6 ) ) ; [ l ] = M a t r i z (L)
L = f i x (5∗ randn ( 6 , 6 ) )
disp ( ’ Segunda columna ’ )
l=L ( : , 2 )
endfunction
Ejecución del Programa

L = fix(5*randn(6,6));[l] = Matriz (L)


B =
-4 7 3 -15 0 0
1 1 1 -12 -1 2
3 0 2 -2 5 -3
4 1 0 -1 -1 3
-7 -2 4 -3 -0 -1
-4 -0 2 4 7 -2

David Stalin Moya Román, 3


Luis Alejandro Rosero Arciniega
Funciones Octave

Segunda_columna
b =
7
1
0
1
-2
-0

Explicación El programa genera una matriz nxm de números enteros,donde se


puede ingresar el número de filas y columnas, y posteriormente a la matriz ya
generada se le extrae únicamente la segunda columna.
Dada una matriz de orden nxm, extraer una matriz de orden 4 x 4.
Código Octave
%M a t r i z nxm , e x t r a e r una m a t r i z de orden 4 x4 .
function [ d ] = E j e r c i c i o 4 (D)
%D = f i x (5∗ randn ( 6 , 6 ) ) ; [ d ] = E j e r c i c i o 4 (D)
D = f i x (5∗ randn ( 6 , 6 ) )
disp ( ’ M a t r i z 4 x 4 ’ )
d=D( [ 1 2 3 4 ] , [ 2 3 4 5 ] )
endfunction
Ejecución del Programa
D = fix(5*randn(6,6));[d] = Ejercicio4(D)
D =
7 5 8 6 -2 4
-7 0 -2 0 7 -5
-0 -9 -0 -1 1 -3
6 -0 0 -5 5 -6
14 -5 1 3 4 4
3 10 4 5 5 0

Matriz_4x4
d =
5 8 6 -2
0 -2 0 7
-9 -0 -1 1
-0 0 -5 5

Explicación El programa genera una matriz nxm de números enteros,donde se


puede ingresar el número de filas y columnas, y posteriormente a la matriz ya

David Stalin Moya Román, 4


Luis Alejandro Rosero Arciniega
Funciones Octave

generada se le extrae 4 columnas y 4 filas para generar una nueva matriz de orden
4x4.
Dada una matriz de orden nxn cualquiera, use los siguientes comandos: sum, prod.
Escriba al menos 2 ejemplos de uso.
Código Octave
%M a t r i z nxn .
function [M,N] = E j e r c i c i o 5 (X)
%X = f i x (5∗ randn ( 4 , 4 ) ) ; [M,N] = E j e r c i c i o 5 (X)
X = f i x (5∗ randn ( 4 , 4 ) )

disp ( ’ Ejemplo 1 ’ )
disp ( ’Suma de l o s e l e m e n t o s de l a s columnas ’ )
M=sum(X)

disp ( ’ Producto de l o s e l e m e n t o s de l a s columnas ’ )


N=prod (X)

disp ( ’ Ejemplo 2 ’ )
disp ( ’Suma de l o s e l e m e n t o s de l a u l t i m a f i l a ’ )
M=sum(X( 4 , : ) )

disp ( ’ Producto de l o s e l e m e n t o s de l a primera f i l a ’ )


N=prod (X( 1 , : ) )
endfunction
Ejecución del Programa
X = fix(5*randn(4,4));[M,N] = Ejercicio5(X)
X =
2 -5 -3 1
-0 2 4 -8
2 4 -0 -2
10 -6 -3 5

Ejemplo_1
Suma de los elementos de las columnas
M =
14 -5 -2 -4

Producto de los elementos de las columnas


N =
-0 240 -0 80

Ejemplo_2
Suma de los elementos de la ultima fila

David Stalin Moya Román, 5


Luis Alejandro Rosero Arciniega
Funciones Octave

M = 6
Producto de los elementos de la primera fila
N = 30

Explicación El programa genera una matriz nxn de números enteros, el programa


realiza operaciones con los comandos sum y prod entre filas y columnas.
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 una matriz.
Código Octave
%M a t r i z .
function [ med , var , des ]= E j e r c i c i o 6 (A)
%A = f i x (5∗ randn ( 4 , 4 ) ) ; [ med , var , d e s ]= E j e r c i c i o 6 (E)
A = f i x (5∗ randn ( 4 , 4 ) )
disp ( ’ Media ’ )
med = mean(A)

disp ( ’ Varianza ’ )
var = var (A)

disp ( ’ D e s v i a c i o n E s t a n d a r ’ )
des = std (A)
endfunction
Ejecución del Programa

A = fix(5*randn(4,4));[med,var,des]= Ejercicio6(E)
A =
6 6 -0 -1
0 0 -6 0
-2 2 4 -12
3 -3 -1 1

Media
med =
1.75000 1.25000 -0.75000 -3.00000

Varianza
var =
12.250 14.250 16.917 36.667

Desviacion_Estandar
des =
3.5000 3.7749 4.1130 6.0553

David Stalin Moya Román, 6


Luis Alejandro Rosero Arciniega
Funciones Octave

Explicación El programa genera una matriz de números enteros, donde se pue-


de ingresar el número de filas y columnas, posteriormente se calcula la media,
varianza y desviación estandar de cada una de las columnas de la matriz.
3. Investigue para que sirven los siguientes comandos de Matlab. Que datos sirven como
entrada y cual es la salida o resultado que envı́a el comando.

mod().- Devuelve el residuo de la división de dos números enteros, sus datos de


entrada son dos valores (x, y).
>> mod(5,12)
ans = 5
>> mod(5,120)
ans = 5
>> mod(5,125)
ans = 5
>> mod(5,65)
ans = 5
>> mod(5,21)
ans = 5
>> mod(120,3)
ans = 0
>> mod(23,2)
ans = 1

diag().- Devuelve una matriz diagonal cuadrada con los elementos de vector ~v
como su diagonal principal.
>> v=[2 2 3 4 5]
v =

2 2 3 4 5

>> diag(v)
ans =

Diagonal Matrix

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

David Stalin Moya Román, 7


Luis Alejandro Rosero Arciniega
Funciones Octave

real().- Devuelve la parte real de un número complejo.


>> real(25+2i)
ans = 25

imag().- Devuelve la parte imaginaria de un número complejo.


>> imag(23+24i)
ans = 24

round().- Redondea un número o un valor. Su dato de entrada es (x), donde x es


el número a redondear.
>> round(2.32423423423423423)
ans = 2

fix().- Elimina la parte decimal. Su dato de entrada es un número decimal.


>> fix(2.94353452345234)
ans = 2

floor(). Redondea los decimales al menor entero, el cual es el más cercano. Su dato
de entrada es un entero.
>> floor(2.54989894567)
ans = 2

ceil().- Redondea los decimales al mayor entero más cercano. Su dato de entrada
es un número.
>> ceil(2.549876545678)
ans = 3

sign().- Devuelve el unitario del numero complejo ingresado x + yi. Su dato de


entrada es un número x + yi.
>> sign(-123-123i)
ans = -0.70711 - 0.70711i
>> sign(123-123i)
ans = 0.70711 - 0.70711i
>> sign(123-1i)
ans = 0.9999670 - 0.0081298i

David Stalin Moya Román, 8


Luis Alejandro Rosero Arciniega
Funciones Octave

log().- Devuelve el cálculo de la función logaritmo Neperiano. Su dato de entrada


es x Si y solo si {x ∈ R ∧ x 6= 0}.
>> log(1)
ans = 0
>> log(e)
ans = 1
>> log(2)
ans = 0.69315
>> log(-2)
ans = 0.69315 + 3.14159i
>> log(0)
ans = -Inf

log10().- Devuelve el cálculo de la función logaritmo de base diez. Su Su dato de


entrada es x Si y solo si {x ∈ R ∧ x 6= 0}.
>> log10(20)
ans = 1.3010
>> log10(10)
ans = 1
>> log10(-10)
ans = 1.0000 + 1.3644i
>> log10(1)
ans = 0

exp().- Es la función exponencial de base e. Su entrada es un número x tal que


exp(x) = ex .
>> exp(0)
ans = 1
>> exp(1)
ans = 2.7183
>> exp(e)
ans = 15.154

linspace().- Devuelve un vector fila con n elementos espaciados linealmente entre


la base y el lı́mite. Sus datos de entrada son (x, y) tal que x es el minimo y y el
máximo.
>> linspace(1,1.2)
ans =

Columns 1 through 18:

1.0000 1.0020 1.0040 1.0061 1.0081 1.0101 1.0121 1.0141 1.0162 1.0182 1.0202 1.0222 1.0242 1.0263
1.0283 1.0303 1.0323 1.0343

Columns 19 through 36:

1.0364 1.0384 1.0404 1.0424 1.0444 1.0465 1.0485 1.0505 1.0525 1.0545 1.0566 1.0586 1.0606 1.0626
1.0646 1.0667 1.0687 1.0707

David Stalin Moya Román, 9


Luis Alejandro Rosero Arciniega
Funciones Octave

Columns 37 through 54:

1.0727 1.0747 1.0768 1.0788 1.0808 1.0828 1.0848 1.0869 1.0889 1.0909 1.0929 1.0949 1.0970 1.0990
1.1010 1.1030 1.1051 1.1071

Columns 55 through 72:

1.1091 1.1111 1.1131 1.1152 1.1172 1.1192 1.1212 1.1232 1.1253 1.1273 1.1293 1.1313 1.1333 1.1354
1.1374 1.1394 1.1414 1.1434

Columns 73 through 90:

1.1455 1.1475 1.1495 1.1515 1.1535 1.1556 1.1576 1.1596 1.1616 1.1636 1.1657 1.1677 1.1697 1.1717
1.1737 1.1758 1.1778 1.1798

Columns 91 through 100:

1.1818 1.1838 1.1859 1.1879 1.1899 1.1919 1.1939 1.1960 1.1980 1.2000

magic().- Devuelve una matriz cuadrada nxn construida con números enteros
donde la suma de sus filas es igual a la suma de sus columnas y es iguala a la
suma de sus diagonales. Su dato de entrada es n.
>> magic(9)
ans =

47 58 69 80 1 12 23 34 45
57 68 79 9 11 22 33 44 46
67 78 8 10 21 32 43 54 56
77 7 18 20 31 42 53 55 66
6 17 19 30 41 52 63 65 76
16 27 29 40 51 62 64 75 5
26 28 39 50 61 72 74 4 15
36 38 49 60 71 73 3 14 25
37 48 59 70 81 2 13 24 35

inv().- Permite obtener la matriz inversa. Su dato de entrada es A. Si y solo si



A ∈ Mnxn
∃ det{A} =6 0
>> A=magic(3)
A =

8 1 6
3 5 7
4 9 2

>> inv(A)
ans =

0.147222 -0.144444 0.063889


-0.061111 0.022222 0.105556
-0.019444 0.188889 -0.102778

David Stalin Moya Román, 10


Luis Alejandro Rosero Arciniega
Funciones Octave

sin(), asin(), sinh(), cos(), acos(), cosh().- Devuelven el cálculo de cada una de
las Funciones trigonometricas según su representacion. Su dato de entrada es θ
en radianes.
>> O=0.32
O = 0.32000
>> B=[sin(O) asin(O) sinh(O) cos(O) acos(O) cosh(O)]
B =

0.31457 0.32573 0.32549 0.94924 1.24507 1.05164

Pruebe los comandos y pegue en su documento la corrida tal como se explicó anterior-
mente.

4. Dada una matriz NxN agregar una columna en la posición n-1.


Código Octave
%M a t r i z nxn a g r e g a r una columna en n−1.
function [ x , y , z , a ] = E j e r c i c i o A g r e g a r ( a )
%a=[9 2 7 ; 1 5 3 ; 4 8 6 ] ; [ x , y , z , a ] = E j e r c i c i o A g r e g a r ( a )
a =[9 2 7 ; 1 5 3 ; 4 8 6 ]
z =[1 5 7 ]

disp ( ’ Agregar una columna en n−1. ’ )

x=[a ( 1 , 1 : 2 ) ; a ( 2 , 1 : 2 ) ; a ( 3 , 1 : 2 ) ] ;
y=[a ( 1 , 3 ) ; a ( 2 , 3 ) ; a ( 3 , 3 ) ] ;
R e s u l t a d o =[x z ’ y ]
endfunction

Ejecución del Programa

a=[9 2 7 ; 1 5 3 ; 4 8 6];[x,y,z,a] = EjercicioAgregar (a)


a =
9 2 7
1 5 3
4 8 6

z =
1 5 7

Agregar una columna en n-1.


Resultado =
9 2 1 7
1 5 5 3

David Stalin Moya Román, 11


Luis Alejandro Rosero Arciniega
Funciones Octave

4 8 7 6

Explicación El programa genera una matriz nxn de números enteros y un vector igual
de números enteros, se agrera el vector columna en la posicion n-1 a la matriz para
formar una nueva matriz resultante.

5. Dada una matriz NxN agregar una fila al principio y al final de la matriz.
Código Octave
function [X Y Z]= a d i c i o n a r (X)
%[X Y Z]= a d i c i o n a r (X)
disp ( ’ F i l a a a g r e g a r ’ )
Z=[1 2 3 4 ]
X=magic ( 4 )
disp ( ’ Agregar f i l a a l i n i c i o ’ )
Y=[Z ;X]
disp ( ’ Agregar f i l a a l f i n a l ’ )
Z=[X; Z ]
endfunction

Ejecución del Programa

>> [X Y Z]=adicionar(X)
Fila a agregar
Z =

1 2 3 4

X =

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

Agregar fila al inicio


Y =

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

David Stalin Moya Román, 12


Luis Alejandro Rosero Arciniega
Funciones Octave

Agregar fila al final


Z =

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

Explicación Se crea una matriz fila de 1x4 y una matriz 4x4 a continuación se coloca
en la posición deseada la matriz fila con respecto a la matriz cuadrada sea al inicio o
al final.

6. Dadas 2 variables A y b; donde A es matriz y b vector, use el comando max(), min().


Código Octave
% Variables
function [ c d e f ]= v a r i a b l e s ( a )
% a=f i x (10∗ rand ( 4 , 4 ) ) ; [ c d e f ]= v a r i a b l e s ( a )
a=f i x (10∗ rand ( 4 , 4 ) )
b=[9 7 5 4 ]
c=max( a )
d=min( a )
e=max( b )
f=min( b )
endfunction

Ejecución del Programa

a=fix(10*rand(4,4));[c d e f]= variables(a)


a =
8 0 0 8
3 8 1 3
4 7 3 9
6 6 6 2

b =
9 7 5 4

c =
8 8 6 9

d =

David Stalin Moya Román, 13


Luis Alejandro Rosero Arciniega
Funciones Octave

3 0 0 2

e = 9
f = 4

Explicación El programa genera una matriz a de números enteros y un vector b de


numeros enteros, y se pide por las funciones max y min encontrar los valores máximos
y mı́nimos tanto del vector como de la matriz.
7. Investigue el o los comandos para ordenar los elementos de un vector (ascedente y
descendente).

a) Definir el vector.
>> X=[1 4 2 2 3 6 8 12]

b) Si se quiere ordenar los elementos del vector en forma ascendente se usa el comando
sort()
>> Y=sort(X)
Y =

1 2 2 3 4 6 8 12

c) Si se quiere ordenar los elementos del vector en forma descendente se usa el co-
mando sort( ,’descend’)
>> Y=sort(X,’descend’)
Y =

12 8 6 4 3 2 2 1

8. Dada una matriz NxM, ordenar ascendentemente la primera columna de la matriz.


Código Octave
%M a t r i z nxm ordenar primera columna .
function [ a , b ] = Ordenacolumna (X)
%X = f i x (5∗ randn ( 5 , 6 ) ) ; [ a , b ] = Ordenacolumna (X)
X = f i x (5∗ randn ( 5 , 6 ) )
disp ( ’ Ordenar primera columna ’ )
Z=(X ( : , 1 ) ) ;
a=sort (Z ) ;
b=[X( 1 , 2 : 6 ) ;X( 2 , 2 : 6 ) ;X( 3 , 2 : 6 ) ;X( 4 , 2 : 6 ) ;X ( 5 , 2 : 6 ) ] ;
R e s u l t a d o =[a b ]
endfunction

David Stalin Moya Román, 14


Luis Alejandro Rosero Arciniega
Funciones Octave

Ejecución del Programa

X = fix(5*randn(5,6));[a,b] = Ordenacolumna(X)
X =
-1 -0 -7 -4 -1 1
-4 -0 -7 -0 -13 6
2 -10 11 3 2 -1
-0 -1 1 8 -1 -2
3 -2 -3 -5 -4 2

Ordenar_primera_columna
Resultado =
-4 -0 -7 -4 -1 1
-1 -0 -7 -0 -13 6
-0 -10 11 3 2 -1
2 -1 1 8 -1 -2
3 -2 -3 -5 -4 2

Explicación El programa genera una matriz nxm de números enteros, se separa la


primera columna de la matriz ya generada y se la guarda en una variable z, a z se
ordena con la función ”sort”, en otra variable b se ordena a la matriz generada, para
finalmente unir las dos variables z; b y formar una matriz resultante.

9. Dada una matriz MxN, ordenar descendentemente la última fila de la matriz.


Código Octave
function [m n]= O r d e n a r f i l a (B)
%B=magic ( 4 ) ; [m n]= O r d e n a r f i l a (B)
B=magic ( 4 )
u=(B ( 4 , : ) ) ; %u l t i m a f i l a
m=sort ( u , ’ descend ’ ) ; %Ordenamos l a u l t i m a f i l a
n=[B ( 1 , 1 : 4 ) ; B ( 2 , 1 : 4 ) ; B ( 3 , 1 : 4 ) ] ; %Construimos l a
%m a t r i z s i n l a u l t i m a f i l a
R e s u l t a d o =[n ; m] %R e s u l t a d o con l a u l t i m a f i l a ordenada
endfunction

Ejecución del Programa

B=magic(4); [m n]=Ordenarfila(B)
B =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1

David Stalin Moya Román, 15


Luis Alejandro Rosero Arciniega
Funciones Octave

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

Explicación El programa genera una matriz de mxn de la cual vamos a selecciones


la última fila evaluar y ordenar decendente la misma costruiremos una nueva matriz
sin la ultima fila y finalmente integraremos la ultima fila a la matriz que generamos
anteriormente.

10. Dada una matriz NxN, ordenar la diagonal principal.


Código Octave
%M a t r i z nxm ordenar d i a g o n a l p r i n c i p a l .
function [ d , e ] = O r d e n a r d i a g o n a l (Y)
%Y = f i x (5∗ randn ( 4 , 4 ) ) ; [ d , e ] = O r d e n a r d i a g o n a l (Y)
Y = f i x (5∗ randn ( 4 , 4 ) )
q=diag (Y ) ;
s=sort ( q ) ;
q1=s ( 1 , 1 ) ;
q2=s ( 2 , 1 ) ;
q3=s ( 3 , 1 ) ;
q4=s ( 4 , 1 ) ;
c =[Y ( 1 , 2 : 4 ) ] ;
c1 =[Y( 2 , 1 ) ] ;
c2 =[Y ( 2 , 3 : 4 ) ] ;
c3 =[Y ( 3 , 1 : 2 ) ] ;
c4 =[Y( 3 , 4 ) ] ;
c5 =[Y ( 4 , 1 : 3 ) ] ;

R e s u l t a d o =[ q1 c ; c1 q2 c2 ; c3 q3 c4 ; c5 q4 ]

endfunction

Ejecución del Programa

Y = fix(5*randn(4,4));[d,e] = Ordenardiagonal(Y)
Y =
4 -9 -14 4
-9 10 10 2
-0 -6 3 -1

David Stalin Moya Román, 16


Luis Alejandro Rosero Arciniega
Funciones Octave

5 -10 3 -5

Resultado =
-5 -9 -14 4
-9 3 10 2
-0 -6 4 -1
5 -10 3 10

Explicación El programa genera una matriz nxm de números enteros, se separa la


diagonal principal de la matriz ya generada y se la guarda en una variable q, a q se
ordena con la función ”sort”, en otra variable s se ubica cada elemento de la diagonal
principal, y en una variable e se ubica la matriz ya generada,para finalmete unir las
dos variables e; s y formar una matriz resultante.

David Stalin Moya Román, 17


Luis Alejandro Rosero Arciniega

Potrebbero piacerti anche