Está en la página 1de 14

UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE

SEDE – MATRIZ SANGOLQUI

ACTIVIDAD DE APRENDIZAJE
N°01
PRIMER PARCIAL

MÉTODOS NUMÉRICOS
NRC:10307

DYLAN MALDONADO

ING. NANCY BETANCOURT

22-mayo-2023
EJERCICIOS
1. Crear un script con las siguientes sentencias:
a) Crear un vector de n elementos.
b) Mostrar en pantalla los elementos del vector cuya posición es impar.
c) Crear una matriz de números aleatorios de orden mxn.
d) Mostrar en pantalla la última fila de la matriz.
e) Modificar todos los elementos de la primera fila de la matriz con el elemento 9.
CÓDIGO
%EJERCICIO 1
%DYLAN MALDONADO
n=5
N=rand(1,n); %literal a: crea el vector de una fila, n columnas
%el comando rand() genera números randómicos
Y=N(1:2:5)%literal b: muestra los elementos del vector cuyas posiciones son impares
%en este caso el incremento de las posiciones es 2, y las posiciones son 1,3 y 5
(impares)
m=3 %m= número de filas de la matriz
n=4 %n= número de columnas de la matriz
U=rand(m,n); %literal c: crea una matriz de elementos randómicos de orden mxn
W=U(3,:) %literal d: muestra la última fila de la matriz
%operador : nos permite acceder a todos los elementos de en este caso la última fila
de la columnas
U(1,:)=9; %literal e: cambia los elementos de la 1ra fila de la matriz por nueve
%nuevamente hacemos uso del operador : para acceder a todos los elementos de la
1era fila
% y luego asignarles con el "=" un nuevo valor de 9.

EJECUCIÓN
>> ejercicio1
n=5
Y=
0.6405 0.2867 0.1714
m=3
n=4
W=
0.7711 0.5091 0.3156 0.2603

2. Crear la función Comandos. La función tiene un dato de entrada y no tiene dato de salida.
El dato de entrada será el valor x que se observa en los siguientes ejemplos.

 Ejecute los comandos que se muestran a continuación. Explique que hace cada
comando (use comentarios para documentar su programa). Explique el valor que
toma el dato de entrada.
CÓDIGO

%EJERCICIO 2
%DYLAN MALDONADO
function comandos(x,y,z,w,v,p,u,q)
#COMANDO 1
a=abs(x)
%El comando abs() nos permite encontrar el valor absoluto de un número.
%Dato de entrada: valor de x
%COMANDO 2
s=sqrt(y)
%El comando sqrt() nos permite encontrar la raíz cuadrada de un número.
%Dato de entrada: valor de y
%COMANDO 3
si=sign(z)
%El comando single() realiza una comparación entre el número ingresado y cero, y de
acuerdo a ello regresa los siguientes datos: -1 si x<0, 0 si x=0 y 1 si x>0.
%Dato de entrada: valor de z
%COMANDO 4
r=round(w)
%El comando round() aproxima el número ingresado al entero más cercano.
%Dato de entrada: valor de w
%COMANDO 5
fi=fix(v)
%El comando fix() redondea el número ingresado al entero más cercano con respecto a
cero.
%Dato de entrada: valor de v
%COMANDO 6
fl=floor(v)
%El comando floor() aproxima el número ingresado al entero más cercano con respecto al
infinito negativo (inmediato inferior).
%Dato de entrada: valor de v
%COMANDO 7
ce=ceil(v)
%El comando ceil() aproxima el número ingresado al entero más cercano con respecto al
infinito positivo (inmediato superior).
%Dato de entrada: valor de v
%COMANDO 8
sen=sin(p)
%El comando sin() encuentra el seno del número ingresado y el resultado se expresa en
radianes(rad).
%Datos entrada: valor de p
%COMANDO 9
c=cos(u)
%El comando cos() encuentra el coseno del número ingresado y el resultado se expresa en
radianes(rad).
%Datos de entrada: valor de u
%COMANDO 10
t=tan(q)
%El comando tan() encuentra la tangente del número ingresado y el resultado se expresa en
radianes(rad).
%Datos de entrada: valor de q
EJECUCIÓN
>> comandos(-5,1420,14,33.55,-76.83,36,pi/4,90)
a=5
s = 37.683
si = 1
r = 34
fi = -76
fl = -77
ce = -76
sen = -0.9918
c = 0.7071
t = -1.9952

3. Crear la función comandos1; la función no tiene datos de entrada ni tampoco datos de


salida. Para ejecutar los comandos lea las variables usando el comando input. Use
comentarios y documente su código.

CÓDIGO

%EJERCICIO 3
%DYLAN MALDONADO
function comandos1()
%Ingresamos el valor de x por teclado, el mismo se almacena en la variable x.
x=input('Ingrese el vector o la matriz x: ');
#COMANDO 1
MAX=max(x)
%Si x es un vector, el comando encuentra el valor más grande de sus elementos.
%Si x es una matriz, el comando crea un vector fila en el que coloca los valores más grandes
%de los elementos de cada columna del vector.
#COMANDO 2
[a,b]=max(x)
%Si x es un vector, a es el valor más grande de sus elementos, mientras que
%b es la posición en la que se encuentra dicho valor dentro del vector.
%Si x es una matriz, a es un vector fila que incluye los valores más grandes de todas las
columnas de la matriz
%y b es un vector fila que incluye las posiciones en donde se encuentran dichos valores
máximos.
%Ingresamos el valor de y por teclado, el mismo se almacena en la variable y.
y=input('Ingrese el vector o la matriz y: ');
#COMANDO 3
MAX2=max(x,y)
%Para poder ejecutar el comando con normalidad el tamaño de x y y deben ser los mismos.
%Si x y y son vectores, el comando crea un vector fila con los valores más grandes de ambos
vectores
%y sus posiciones correspondientes(comparaciones).
%Si x y y son matrices, el comando crea una matriz con los elementos más grandes de
ambas matrices
%y sus posiciones correspondientes en filas y columnas(comparaciones).
#COMANDO 4
MIN=min(y)
%Si x es un vector, el comando encuentra el valor mínimo de sus elementos.
%Si x es una matriz, el comando crea un vector fila en el que coloca los valores mínimos
%de los elementos de cada columna del vector.
#COMANDO 5
[a2, b2]=min(y)
%Si x es un vector, a2 es el valor mínimo de sus elementos, mientras que
%b2 es la posición en la que se encuentra dicho valor dentro del vector.
%Si x es una matriz, a2 es un vector fila que incluye los valores mínimos de todas las
columnas de la matriz
%y b2 es un vector fila que incluye las posiciones en donde se encuentran dichos valores
mínimos.
#COMANDO 6
MIN2=min(x,y)
%Para poder ejecutar el comando con normalidad el tamaño de x y y deben ser los mismos.
%Si x y y son vectores, el comando crea un vector fila con los valores mínimos de ambos
vectores
%y sus posiciones correspondientes(comparaciones).
%Si x y y son matrices, el comando crea una matriz con los elementos mínimos de ambas
matrices
%y sus posiciones correspondientes en filas y columnas(comparaciones).

EJECUCIÓN

>> comandos1()
Ingrese el vector o la matriz x: [1 56 78; 9000 pi 78.90]
MAX =
9000.000 56.000 78.900
a=
9000.000 56.000 78.900
b=
2 1 2
Ingrese el vector o la matriz y: [64.37 10 77; pi/2 100 345.98]
MAX2 =
64.370 56.000 78.000
9000.000 100.000 345.980
MIN =
1.5708 10.0000 77.0000
a2 =
1.5708 10.0000 77.0000
b2=
2 1 1
MIN2 =
1.0000 10.0000 77.0000
1.5708 3.1416 78.9000

4. Crear una función y realizar las siguientes sentencias:


a) Dada una matriz NxN, verificar si algún elemento de la diagonal principal es cero.

CÓDIGO

%EJERCICIO 4
%LITERAL A
%DYLAN MALDONADO
%el nombre de la función en este caso es matriz1, misma que nos ayudará a realizar lo
solicitado.
function matriz1()
%Inicializamos el contador (c) en cero;
c=0;
%Ingresamos el valor del orden de la matriz por teclado.
N=input('Ingrese el orden de la matriz: ');
%Hacemos uso de un bucle externo for para el manejo de la matriz, especialmente sus
filas.
for i=1:N
%Bucle interno que maneja las columnas de la matriz
for j=1:N
%Creamos una matriz con números randómicos con valores desde 0 hasta 2, en un
tamaño de 1x1
B(i,j)=randi([0 2],1,1);
%Uso de una sentencia if externa para comparar los valores de i y j dentro de ambos
ciclos for
if (i==j)
%Uso de una sentencia if interna misma que ejecuta si la condicíon indicada es
cierta o no.
if(B==0)%El valor de los elementos en las posiciones i==j de la matriz debe ser
igual a cero.
%Tras cada repetición si se cumple la condición el contador aumenta.
c=c+1;
endif
endif
endfor
endfor
%La sentencia if en este caso verifica que, tras realizar los bucles, el contador c sea
mayor que cero o no.
if(c>0)
%Orden 1 a realizar si la condición se cumple.
fprintf('Existe al menos un cero en la diagonal principal de la matriz\n');
else
%Orden a realizar si la condición no se cumple.
fprintf('No hay ni un elemento cero en la diagonal principal\n');
endif
%Se imprime la matriz B ya con los números generados en pantalla.
disp(B)

EJECUCIÓN

>> matriz1()
Ingrese el orden de la matriz: 3
Existe al menos un cero en la diagonal principal de la matriz
0 2 1
1 2 1
2 1 0

>> matriz1()
Ingrese el orden de la matriz: 2
No hay ni un elemento cero en la diagonal principal
1 1
2 1
b) Dada una matriz NxN escriba una función que permita intercambiar 2 filas
cualquiera de la matriz.

CÓDIGO

%EJERCICIO4
%LITERAL B
%DYLAN MALDONADO
%El nombre de la función a usar en este caso es matriz2 misma que, no tiene dato ni
de entrada ni de salida.
function matriz2()
%Ingresamos el valor del orden por teclado mismo que, se almacenará en la
variable N.
N=input('Ingrese el valor del orden N de la matriz: ');
%Hacemos uso de una sentencia externa de repetición for, se encarga de las filas
de la matriz.
for i=1:N
%las repeticiones van desde i igual a uno hasta n, con un incremento de 1.
%Usamos esta secuencia interna de repetición for para manejar las columnas de la
matriz.
for j=1:N
%Al igual que con las i, las j van desde 1 hasta el valor de n con un incremento
de uno.
%Creamos una matriz de números randómicos que van desde 0 hasta 10, en un
tamaño de 1x1.
A(i,j)=randi([0 10],1,1);
endfor
endfor
%Imprimos en pantalla la matriz A creada anteriormente.
disp(A)
%Ingresamos el número de la 1era fila de la matriz que se quiere intercambiar por
teclado.
x=input('Ingrese la 1era fila a intercambiar:');
%Ingresamos el número de la 2da fila de la matriz que se quiere intercambiar por
teclado.
y=input('Ingrese la 2da fila a intercambiar:');
A([x,y],:)=A([y,x],:)
%De la matriz A se indica las filas x y y que se quieren intercambiar, y el
%operador : nos ayuda a extraer todas las columnas de dichas filas
%Por ejemplo
%A([1,3],:) Accedemos a la 1era y 3era fila de la matriz y todas las columnas de
ambas filas
%A([3,1],:) Es aquí en donde se intercambia la 1era fila por la 3era y se sigue
accediendo a ambas filas y todas sus columnas.

EJECUCIÓN

>> matriz2()
Ingrese el valor del orden N de la matriz: 3
2 0 10
4 7 2
0 2 0
Ingrese la 1era fila a intercambiar:1
Ingrese la 2da fila a intercambiar:3
A=
0 2 0
4 7 2
2 0 10

>> matriz2()
Ingrese el valor del orden N de la matriz: 5
0 0 4 0 2
4 2 8 0 8
10 7 8 9 4
0 7 4 7 8
2 10 9 9 1
Ingrese la 1era fila a intercambiar:2
Ingrese la 2da fila a intercambiar:4
A=
0 0 4 0 2
0 7 4 7 8
10 7 8 9 4
4 2 8 0 8
2 10 9 9 1

c) Sea una matriz MxN, sumar los elementos de la matriz que se encuentran en la
posición (q,k), cuando q+k sea par.

CÓDIGO

%EJERCICIO 4
%LITERAL C
%DYLAN MALDONADO
%El nombre de la función a usar es matriz3.
%La función en este caso no tiene dato ni de entrada ni de salida.
function matriz3()
%Imprimimos en pantalla el mensaje entre paréntesis.
fprintf ('Matriz de orden MXN\n');
%Ingresamos el valor de la variable M por teclado, que en este caso representa a
las filas de la matriz.
M=input('Ingrese el valor de M: ');
%Ingresamos el valor de la variable N por teclado, que en este caso representa a las
columnas de la matriz.
N=input('Ingrese el valor de N: ');
%inicializamos a la variable contador en cero.
contador=0;
%Sentencia externa de repetición for que maneja las filas de la matriz
for q=1:M %q toma valores desde 1 hasta M, con un incremento de 1.
%Sentencia interna de repetición for que maneja las columnas de la matriz.
for k=1:N %k toma valores de uno hasta el valor de N, con un incremento de 1
tras pasar cada repetición.
%Se crea la matriz B con números aleatorios que van desde 0 hasta 20, en un
tamaño de 1x1.
B(q,k)=randi([0 20],1,1);
%Sentencia if nos ayuda a comprobar si la suma entre q+k (posiciones) es par o
no.
%Usamos el comando mod() para comprobar si dicha suma es par, se divida la
misma
%para dos y el residuo debe ser igual a cero para que esta condición se cumpla.
if (mod(q+k,2)==0)
%Si la condición anteriormente indicada se cumple, el contador suma los
valores
%de los elementos que se encuentran en las posiciones pares.
contador=contador+B(q,k);
endif
endfor
endfor
%Mostramos la matriz B en pantalla.
disp(B)
%Mostramis el valor de la variable contador en pantalla, y se lo asignamos a la
variable Suma.
Suma=disp(contador)

EJECUCIÓN

>> matriz3()
Matriz de orden MXN
Ingrese el valor de M: 5
Ingrese el valor de N: 3

20 13 19
9 5 8
11 10 14
10 4 9
3 4 6
Suma = 82

5. Crear una función que evalúe la siguiente serie:

Puede utilizar el comando factorial ( ) de Matlab.

CÓDIGO

%EJERCICIO 5
%DYLAN MALDONADO
%La función serie1 en este caso no tiene dato de entrada pero si dato de salida que es Suma
function Suma=serie1()
%Ingresamos el valor de n por teclado.
n=input('Ingrese el valor de n: ');
%Ingresamos el valor de x por teclado.
x=input('Ingrese el valor de x: ');
%inicializamos la sumatoria en 0.
Suma=0;
%se hace uso del "for" para realizar la sumatoria
%la sentencia de repetición for va desde cero hasta el valor de n.
for i=0:n
Suma=Suma+(x^i)/factorial(i);
%tras cada repetición del bucle, se realizan los cálculos indicados mismos que,
se acumulan hasta tener el resultado final.
endfor

EJECUCIÓN

>> Suma=serie1( )
Ingrese el valor de n: 6
Ingrese el valor de x: 3
Suma = 19.412
>> Suma=serie1( )
Ingrese el valor de n: 10
Ingrese el valor de x: 5
Suma = 146.38

6. Una matriz es simétrica si para todo par de índices i y j se cumple que a(i,
j) == a(j, i). Escriba la función es_simetrica que indique si la matriz es simétrica o no. Cree
algunas matrices simétricas y otras que no lo sean para probar su función para todos los
casos.

CÓDIGO

%EJERCICIO 6
%DYLAN MALDONADO
%El nombre de la función en este caso es es_simetrica
function es_simetrica()
%Imprimimos el siguiente mensaje en pantalla usando el comando fprintf()
fprintf('Matriz cuadrada de orden MxN \n')
%Una vez aclarada que la matriz debe ser cuadrada, o sea tener el mismo
%número de filas que de columnas. Ingresamos el número de filas(M).
M=input('ingrese el número de filas(M): ');
%Ingresamos el número de columnas (N) por medio del teclado.
N=input('ingrese el número de columnas(N): ');
%Usando esta sentencia if verificamos que en efecto sea una matriz cuadrada en base
%a los valores de M y N ingresados anteriormente.
if (M==N) %condición a cumplir que los valores de M y N sean iguales
%Si los valores de M y N son iguales se realiza lo siguiente.
for i=1:M %Sentencia de repetición for externa que trabaja con las filas de la matriz.
%Las repeticiones van de 1 hasta M, incremento de 1.
for j=1:N%Sentencia interna de repetición for trabaja con las columnas de la matriz.
%Al igual que las filas, va de 1 hasta N y su incremento es de 1 en 1.
%Generamos los elementos de la matriz a través del teclado, esto se repite hasta M y N
veces.
B(i,j)=input('Ingrese un número: ');
endfor
endfor
fprintf('\n');
%Imprimimos en pantalla la matriz B con los elementos ingresados por teclado.
disp(B)
fprintf('\n');
%Inicializamos en cero la variable de declaración "simetria".
simetria=1;
%Hacemos uso de una sentencia externa de repetición for para realizar la lógica
%de escritura.
for i=1:M %este bucle trabaja con las filas de la matriz (M).
%Sentencia interna de repetición for misma que trabaja con las columnas de la matriz
(N).
for j=1:N
%Sentencia if para comprobar si la condición indicada se cumple o no
if(i~=j && B(i,j)~=B(j,i)) %La condición compara las posiciones tanto en i como en j
%Si la condición se cumple, a la variable simetria se le asigna el valor de 0.
simetria=0;
%Hacemos uso del break para terminar la ejecución del bucle for.
break
endif
end
end
%Sentencia if para comprobar a través de la variable simetria, si la matriz es o no
simétrica.
if(simetria==1)
%Si se cumple la condicíon inicial se imprime en pantalla el mensaje indicado.
disp("La matriz es simétrica.")
else
%Si no se cumple la condición indicada, se realiza lo siguiente.
disp("La matriz no es simétrica.")
endif
else %Si los valores de M y N ingresados no son los mismos, no se cumple la condición
inicial
%y por ende se realiza lo siguiente.
disp('Error: La matriz no es cuadrada.');
endif

EJECUCIÓN

>> es_simetrica()
Matriz cuadrada de orden MxN
Ingrese el número de filas(M): 2
Ingrese el número de columnas(N): 2
Ingrese un número: 45
Ingrese un número: 78
Ingrese un número: 78
Ingrese un número: 56

45 78
78 56

La matriz es simétrica.

>> es_simetrica()
Matriz cuadrada de orden MxN
Ingrese el número de filas(M): 2
Ingrese el número de columnas(N): 2
Ingrese un número: 4
Ingrese un número: 78
Ingrese un número: 5
Ingrese un número: 41

4 78
5 41

La matriz no es simétrica.

>> es_simetrica()
Matriz cuadrada de orden MxN
Ingrese el número de filas(M): 2
Ingrese el número de columnas(N): 4
Error: La matriz no es cuadrada.

7. Una matriz es antisimétrica si para todo par de índices i y j se cumple que a(i, j) == -a(j,
i). Escriba la función es_antisimetrica que indique si la matriz es antisimétrica o no. Cree
algunas matrices antisimétricas y otras que no lo sean para probar su función para todos los
casos.

CÓDIGO
%EJERCICIO 7
%DYLAN MALDONADO
%La función con la que vamos a trabajar se llama es_asimetrica y no tiene datos ni de
entrada ni de salida.
function es_asimetrica()
%Imprimimos el siguiente mensaje en pantalla usando el comando fprintf()
fprintf('Matriz cuadrada de orden MxN \n')
fprintf('\n');
%Una vez aclarada que la matriz debe ser cuadrada, o sea tener el mismo
%número de filas que de columnas. Ingresamos el número de filas(M).
M=input('Ingrese el número de filas(M): ');
%Ingresamos el número de columnas (N) por medio del teclado.
N=input('Ingrese el número de columnas(N): ');
fprintf('\n');
%Usando esta sentencia if verificamos que en efecto sea una matriz cuadrada en base
%a los valores de M y N ingresados anteriormente.
if (M==N) %condición a cumplir que los valores de M y N sean iguales
%Si los valores de M y N son iguales se realiza lo siguiente.
for i=1:M %Sentencia de repetición for externa que trabaja con las filas de la matriz.
%Las repeticiones van de 1 hasta M, incremento de 1.
for j=1:N%Sentencia interna de repetición for trabaja con las columnas de la matriz.
%Al igual que las filas, va de 1 hasta N y su incremento es de 1 en 1.
%Generamos los elementos de la matriz a través del teclado, esto se repite hasta M y N
veces.
B(i,j)=input('Ingrese un número: ');
endfor
endfor
fprintf('\n');
%Imprimimos en pantalla la matriz B con los elementos ingresados por teclado.
disp(B)
fprintf('\n');
%Inicializamos en cero la variable de declaración "asimetria".
asimetria=1;
%Hacemos uso de una sentencia externa de repetición for para realizar la lógica
%de escritura.
for i=1:M %este bucle trabaja con las filas de la matriz (M).
%Sentencia interna de repetición for misma que trabaja con las columnas de la matriz
(N).
for j=1:N
%Sentencia if para comprobar si la condición indicada se cumple o no
if(i~=j && B(i,j)~=-B(j,i)) %La condición compara las posiciones tanto en i como en j
%Para que una matriz sea asimétrica se debe cumplir que esa matriz debe ser
%igual a su transpuesta negativa.
%Algunas propiedades que tambíen debe cumplir es que, debe ser una matriz cuadrada
%y su diagonal principal debe ser cero en todos sus elementos.
%Si la condición se cumple, a la variable asimetria se le asigna el valor de 0.
asimetria=0;
%Hacemos uso del break para terminar la ejecución del bucle for.
break
endif
end
end
%Sentencia if para comprobar a través de la variable asimetria, si la matriz es o no
asimétrica.
if(asimetria==1)
%Si se cumple la condicíon incial se imprime en pantalla el mensaje indicado.
disp("La matriz es asimétrica.")
else
%Si no se cumple la condición indicada, se realiza lo siguiente.
disp("La matriz no es asimétrica.")
endif
else %Si los valores de M y N ingresados no son los mismos, no se cumple la condición
incial
%y por ende se realiza lo siguiente.
disp('Error: la matriz no es cuadrada.');
endif

EJECUCIÓN

>> es_asimetrica()
Matriz cuadrada de orden MxN

Ingrese el número de filas(M): 2


Ingrese el número de columnas(N): 2

Ingrese un número: 0
Ingrese un número: 5
Ingrese un número: -5
Ingrese un número: 0

0 5
-5 0

La matriz es asimétrica.

>> es_asimetrica()
Matriz cuadrada de orden MxN

Ingrese el número de filas(M): 3


Ingrese el número de columnas(N): 3

Ingrese un número: 0
Ingrese un número: 1
Ingrese un número: 5
Ingrese un número: 4
Ingrese un número: 7
Ingrese un número: 8
Ingrese un número: 4
Ingrese un número: 4
Ingrese un número: 8

0 1 5
4 7 8
4 4 8

La matriz no es asimétrica.

>> es_asimetrica()
Matriz cuadrada de orden MxN

Ingrese el número de filas(M): 3


Ingrese el número de columnas(N): 2

Error: la matriz no es cuadrada.

También podría gustarte