Beruflich Dokumente
Kultur Dokumente
Diego Almachi
Mishelle Alban
Departamento de Electronica
ESPE
10 de abril de 2019
1
1. Ejercicios
1.1. Crear una función varibles. que tome como dato
de entrada dos variables y que imprima en pan-
talla la suma, la resta, la multiplicación y la di-
visión entre las variables. Ejercute el programa
usando variables simples(enteros. flotante), vec-
tores y matrices. NO necesita hacer validaciones,
ejecute ideales.
function [ S R M D] = v a r i a b l e s ( a , b )
%[ S R M D] = v a r i a b l e s ( 3 , 4)
S=a+b ;
R=a−b ;
M=a∗b ;
D=a/b ;
endfunction
%para v e c t o r e s
function [ Sv Rv Mv] = v a r i a b l e s ( a , b )
%[ Sv Rv Mv] = v a r i a b l e s ( [ 2 : 2 : 4 ] , [ 3 ] )
%No e x i s t e d i v i s i o n e n t r e v e c t o r e s y l a m u l t i p l i c a c i o n s o l o s e da e n t r e
Sv=a+b ;
Rv=a−b ;
Mv=a . ∗ b ;
endfunction
%para M a t r i c e s
function [ St Rt Mt ] = v a r i a b l e s ( a , b )
%[ St Rt Mt ] = v a r i a b l e s ( [ 2 2 ] , [ 3 ] )
%No e x i s t e d i v i s i o n e n t r e v e c t o r e s y l a m u l t i p l i c a c i o n s o l o s e da e n t r e
St=a+b ;
Rt=a−b ;
Mt=a . ∗ b ;
endfunction
Corrida del programa .
2
>> [S R M D] = variables (3, 4)
S = 7
R = -1
D = 0.75000
?>> [Sv Rv Mv] = variables ([2:2:4],[3])
Sv =
5 7
Rv=
-1 1
Mv=
6 12
St =
5 5
Rt=
-1 -1
Mt=
6 6
El comando mod es aquel que nos ayuda a saber cual es el resto o residuo en
3
una división enter para tener como resultado un entero. Auque no siempre va
a ser positivo el signo que existe por lo cual si influye el signo en la división.
Código
function e j e r c i c i o 2 (m)
a =
7 5 2 1 3
2 4 3 7 0
9 2 4 1 8
5 5 6 2 3
2 4 5 6 7
3 4 5 6 3
4
>> ejercicio2(a)
nueva_matriz =
8 3 6 3 4 8 9 2 9 5 4 9 9
7 1 2 8 1 6 1 2 0 5 2 6 6
3 4 3 4 9 6 8 9 3 2 6 6 6
8 1 2 0 7 5 9 6 5 8 1 1 2
9 10 1 6 9 3 7 6 2 6 3 0 1
1 1 1 8 8 2 4 3 2 9 8 5 9
2 4 5 5 2 4 3 3 6 6 0 10 8
6 9 9 2 7 6 5 3 3 6 8 4 3
3 4 7 5 5 2 9 1 6 4 1 5 4
9 9 6 7 3 5 7 8 0 0 4 7 10
8 10 3 8 4 3 5 3 6 9 7 1 4
4 8 7 1 0 7 9 9 2 3 4 5 9
cuarta_fila =
5 5 6 2 3
segunda_columna =
5
4
2
5
4
4
matriz4x4 =
7 5 2 1
2 4 3 7
9 2 4 1
5 5 6 2
5
mente una matriz cuadrada de orden 4matriz4x4 = m(1 : 4, 1 : 4) . Para
empezar se crea una matriz ramdomica parapoder extraer tanto las filas y
columnas que deseemos extraer de la matriz. En el caso de extraer una fila o
columna que no exista aparecera el mensaje que no se puede mostrar dicha
fila o columna, otra alternativa de cometer error es cuando la matriz no tiene
la dimension necesaria como para devolvernos una 4x4 ya que tomaos de la
primera fila a la cuarta columna y la la primera columna a la cuarta fila.
Código
function e j e r c i c i o 2 _ p a r t e 2 (m)
lm=s i z e (m) ;
i f ( lm(1)==lm ( 2 ) )
columnas_sum=sum(m)
Total_sum=sum( columnas_sum )
columnas_prod=prod (m)
Total_prod=prod ( columnas_prod )
else
f p r i n t f ( ’ Esta ␣ m a t r i z ␣no␣ e s ␣ cuadrada ’ )
end
>> a=[1 2 3; 2 3 4; 3 4 5]
a =
1 2 3
2 3 4
3 4 5
>> ejercicio2_parte2(a)
columnas_sum =
6 9 12
Total_sum = 27
columnas_prod =
6 24 60
6
Total_prod = 8640
l a=s i z e ( a ) ;
n=prod ( l a ) ;
t o t a l 1=sum(sum( a ) ) ;
media=t o t a l 1 /n
med_matriz ( 1 : l a ( 1 ) , 1 : l a (2))= media ;
b=a−med_matriz ;
b=b . ^ 2 ;
v a r i a n z a=sum(sum( b ) ) / n
d e s v i a c i o n _ e s t a n d a r=v a r i a n z a ^ ( 1 / 2 )
e =
1 2 3
4 5 6
7 8 9
7
luego "n"va a ser el valor del producto del numero de elementos de la matriz,
"total1.es el valor de la suma de cada uno de los elementos de la matriz, en-
tonces sabemos que la media viene dada por la suma de los elementos de la
matriz dividido para el numero total de elementos asi obtenemos media.
En el caso de la varianza primero calculamos las desviaciones respecto a la
media por lo tanto podemos usar la expresion ”a − medm atriz” y la misma
expresion elevar al cuadrado y dividimos para el numero total de elementos.
La desviación estandar se calcula con la raiz cuadrada de la varianza.
diag()
Este comando nos muestra la diagonal principal que tiene una matriz
real()
Este comando nos devuelve la parte real de un numero imaginario
imag()
Este comando nos devuelve la parte imaginario de un numero complejo
round()
Este comando redondea al entero mas cercano
fix()
Este comando solo mantiene la parte entera de un numero decimal
floor()
Este comando redondea un número al entero inferior.
ceil()
Este comando redondea un número al entero superior.
8
sign()
Este comando nos permite observar el signo de un numero que llegue-
mos a ingresar
log()
Este comando es la funciń de logaritmo neperiano o logaritmo natural
log10()
Este comandoes la función logaritmo
exp()
Este comando es la función exponencial
linspace()
Este comando general un vector cuyos puntos estan espaciados lineal-
mente
magic()
Este comando permite generar una matriz de nxn dimensiones
inv()
Este comando nos permite recibir la matriz inversa a la que hemos
ingresado
sin(), asin(),sinh(),cos(),acos(),cosh()
Este comando son las funciones del seno y coseno entre las cuales entan
las inversar e hiperbolicas
1 2 3
2 3 4
3 4 5
9
1
3
5
>> real(1+4i)
ans = 1
>> imag (1+4i)
ans = 4
>> round (9/4)
ans = 2
>> fix(1.44444)
ans = 1
>> floor(2.5555)
ans = 2
>> ceil (2.5555)
ans = 3
>> sign(-5)
ans = -1
>> log(20)
ans = 2.9957
>> log10(20)
ans = 1.3010
>> exp(3)
ans = 20.086
>> linspace (3,3,1)
ans = 3
>> A=magic(4)
A =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> inv(A)
warning: matrix singular to machine precision, rcond = 1.30614e-017
ans =
10
9.3825e+013 2.8147e+014 -2.8147e+014 -9.3825e+013
2.8147e+014 8.4442e+014 -8.4442e+014 -2.8147e+014
-2.8147e+014 -8.4442e+014 8.4442e+014 2.8147e+014
-9.3825e+013 -2.8147e+014 2.8147e+014 9.3825e+013
>> sin(60)
ans = -0.30481
>> asin(60)
ans = 1.5708 - 4.7874i
>> sinh(60)
ans = 5.7100e+025
>> cos(60)
ans = -0.95241
>> acos(60)
ans = 0.00000 + 4.78742i
>> cosh(60)
ans = 5.7100e+025
l a=s i z e ( a )
i f ( l a (1)== l a ( 2 ) )
for i =1: l a ( 1 )
co =0;
for j =1: l a (1)+1
i f ( j==l a (1) −0)
mat_ag ( i , j )= f i x ( ( 3 ∗ rand ( ) ) ) ; ;
co =1;
else
mat_ag ( i , j )=a ( i , j−co ) ;
end
end
11
end
mat_ag
else
f p r i n t f ( ’ l a ␣ m a t r i z ␣ i n g r e s a d a ␣no␣ e s ␣ cuadrada ’ )
end
>> a=[1 2 3; 3 2 2; 1 2 3]
a =
1 2 3
3 2 2
1 2 3
3 3
mat_ag =
1 2 0 3
3 2 0 2
1 2 0 3
l a=s i z e ( a ) ;
12
i f ( l a (1)== l a ( 2 ) )
co =0;
for i =1: l a (1)+2
for j =1: l a ( 1 )
i f ( i ==1)
mat_ag ( i , j )= f i x ( ( 3 ∗ rand ( ) ) ) ;
co =1;
e l s e i f ( i==l a (1)+2)
mat_ag ( i , j )= f i x ( ( 3 ∗ rand ( ) ) ) ;
else
mat_ag ( i , j )=a ( i −co , j ) ;
end
end
end
mat_ag
else
f p r i n t f ( ’ l a ␣ m a t r i z ␣ i n g r e s a d a ␣no␣ e s ␣ cuadrada ’ )
end
e =
1 2 3
4 5 6
7 8 9
3 3
mat_ag =
2 2 2
1 2 3
4 5 6
7 8 9
13
1 0 2
Explicación
Para empezar definimos nuestra variable de entrada y empezamos con un
if el cual me permita añadir filas si la matriz es cuadrada de igual manera
con 2 ciclos for puedo colocar el lugar donde quiero que las filas aparezcan y
mediante un randomico coloco los numeros en las filas y con el comando fix
hago que solo aparezcan numeros enteros en las posiciciones.
lA=s i z e (A ) ;
l b=s i z e ( b ) ;
max( lA )
min( l b )
>> a=[1 2 3; 2 3 4; 3 4 5]
a =
1 2 3
2 3 4
3 4 5
>> b=[1 2 3 4 4 4]
b =
1 2 3 4 4 4
14
3 3
lb =
1 6
ans = 3
ans = 1
function e j e r c i c i o 8 (m)
lm=s i z e (m) ;
n=lm ;
15
for i =1:n
for j =1:n−i
i f m( j )>m( j +1)
aux=m( j ) ;
m( j )=m( j +1);
m( j +1)=aux ;
end
end
end
d i s p l a y (m)
>> f=[7 8 9; 1 2 3; 4 5 6]
f =
7 8 9
1 2 3
4 5 6
3 3
1 8 9
4 2 3
7 5 6
16
lM=s i z e (M) ;
N=sort ( (M( 3 , : ) ) , ’ descend ’ )
P=sort ( (M( 1 , : ) ) ) ;
Q=sort ( (M( 2 , : ) ) ) ;
f p r i n t f ( ’ l a ␣ m a t r i z ␣ con ␣ l a ␣ u l t i m a ␣ f i l a ␣ ordenada ␣ en ␣ forma ␣ d e s c e n d e n t e ␣ e s \n
d i s p l a y ( [ P ; Q ;N ] )
>> f=[7 8 9; 1 2 3; 4 5 6]
f =
7 8 9
1 2 3
4 5 6
3 3
N =
6 5 4
17
lM=s i z e (M) ;
i f ( lM(1)==lM ( 2 ) )
d1=diag (M)
d2=sort ( d1 )
p=(M( 1 , 2 ) ) ;
q=(M( 1 , 3 ) ) ;
r =(M( 2 , 1 ) ) ;
s =(M( 2 , 3 ) ) ;
t =(M( 3 , 1 ) ) ;
u=(M( 3 , 2 ) ) ;
a=(M( 1 , 1 ) ) ;
b=(M( 2 , 2 ) ) ;
c=(M( 3 , 3 ) ) ;
%d i s p l a y (M=[0 p q ; r 0 s ; t u 0 ] ) ;
%d i s p l a y (N=[ a 0 0 ; 0 b 0 ; 0 0 c ] )
d2=sort ( [ a , b , c ] ) ;
M( 1 : 4 : 9 ) = d2
e l s e f p r i n t f ( ’ l a ␣ m a t r i z ␣ i n g r e s a d a ␣no␣ e s ␣nxn ’ )
end
>> f=[7 8 9; 1 2 3; 4 5 6]
f =
7 8 9
1 2 3
4 5 6
3 3
18
d1 =
7
2
6
d2 =
2
6
7
d2 =
2 6 7
M =
2 8 9
1 6 3
4 5 7
19