Está en la página 1de 24

SOFTWARE PARA INGENIERIA

TAREA 4: Emplear arreglos, matrices, gráficos 2D e interfaz gráfica


de usuario

Estudiante:

Cristian Fabian Marconi Sarmiento

Código: 1096188018

Correo electrónico: cfmarconis@unadvirtual.edu.co

Tutora: Paola Andrea Buitrago

Grupo: 203036_35

Universidad Nacional Abierta y a Distancia UNAD

Escuela de Ciencias Básicas, tecnología e ingeniería - ECBTI

Ingeniería electrónica

Bucaramanga, noviembre 2021


INTRODUCION

Para el desarrollo de estos ejercicios nos vasaremos en un conjunto de


formulas y codigos matematicos que nos llevara a cabo los resultados que
queremos ver a si ponemos en practica cada uno de los comando que vamos
a ver a continuacion y tener un mejor manejo del matlab.
1. Arreglos y matrices

a. Cree un programa en archivo .m, en él se deba ingresar el valor de


un ángulo en notación decimal y que almacene en un vector de
orden 3 el valor de dicho ángulo, pero en notación sexagesimal. La
Primera celda debe contener el correspondiente valor en grados, la
segunda celda debe contener el correspondiente valor en minutos y
la tercera celda debe contener el correspondiente valor en
segundos. Consecuentemente debe publicar un mensaje indicando
el respectivo vector.

Imágenes del programa.

Código:
clc
clear all
x = input('Digite el valor del ángulo en formato decimal: ');
grados = floor(x);
minutos = floor((x-grados)*60);
segundos = floor(((x-grados)*60-minutos)*60);
angulo = [grados minutos segundos];
rta = ['El ángulo en formato sexagesimal es: '];
disp(rta)
disp('grados minutos segundos')
disp(angulo)
b. Crear con sentencias predefinidas, propias del tratamiento de
vectores y matrices con software especializado, un vector de orden
5 que contenga números enteros. Publicar el respectivo resultado.

clc
clear all
A=[0 0 0 0 0];
for i = 1:5 num = input('ingresar numero: ');
A(i)=num;
end
disp('Resultado del vector fila resultante')
A

c. Redactar un párrafo no superior a 10 líneas, en el cual


compara de manera concluyente, lo realizado en el ítem b)
anterior, con el ítem c) anterior.

Podemos concluir que los ítems b y c del ejercicio anterior sirven para
realizar el mismo ejercicio que es crear una matriz, pero el ítem b se
hace de una manera mas explicita y larga, por lo contrario, el ítem c
aprovechamos las ventajas que nos brinda el software para hacer el
ejercicio de manera más corta lo que nos lleva a reducir el tiempo en
que desarrollamos los ejercicios planteados, Para los dos códigos se
pide un número definido de datos que conformarán el vector. En el
primer ejercicio se crea con una sentencia for y while, mientras que el
segundo se hace mucho más compacto usando una simple sentencia
for.
d. Cree un programa en archivo .m, para generar una matriz de orden
4x4 que contenga valores enteros. Para la creación de este vector
debe usar comandos propios de programación como comandos de
entrada de datos, bifurcaciones y/o ciclos, y publicación de datos en
pantalla.

clc
clear all
for i = 1:4
for j = 1:4
mensaje = 'Digite el elemento '+ string(i)+','+string(j)+' de la matriz:
';
v(i,j) = input(char(mensaje));
while(mod(v(i,j),1)~=0)
Ilustración 4 Ejercicio 1e
9
mensaje = 'El numero debe ser entero, vuelva a digitar el elemento: '+
string(i)+','+string(j)+' de la matriz: ';
v(i,j) = input(char(mensaje));
end
end
end
'la matriz ingresada es: '
disp(v)
e. Crear con sentencias predefinidas, propias del tratamiento de
vectores y matrices con software especializado, una matriz de orden
4x4 que contenga números enteros. Publicar el respectivo resultado.

clear all
clc
disp('La matriz resultante es: ')
matriz = randi([1 100],4,4)

f. Redactar un párrafo no superior a 10 líneas, en el cual compara de


manera concluyente, lo realizado en el ítem e) anterior, con el ítem
f) anterior.

Podemos concluir al desarrollar los puntos anteriores que el programa


puede usarse de diferentes maneras, en el punto y desarrollamos el
ejercicio dando órdenes al programa para que ejecute paso a paso la
matriz 4x4 mientras que en el punto f el proceso lo hace internamente
el programa de acuerdo con la instrucción introducida en el software,

h. Cree un programa en archivo .m en el que se deba ingresar el valor


de un ángulo en notación decimal y que almacene en un vector de
orden 3 el valor de dicho ángulo, pero en notación sexagesimal. La
primera celda debe contener el correspondiente valor en grados, la
segunda celda debe contener el correspondiente valor en minutos y la
tercera celda debe contener el correspondiente valor en segundos.
Consecuentemente debe publicar un mensaje indicando el respectivo
vector. Resuelto en el literal a.
i. Genere 2 matrices de números reales (A y B), de orden 4x4 y con ellas
realice las siguientes operaciones (suma, resta, multiplicación, además
de las operaciones lógicas de unión, intersección y diferencia).
Ejercicio de la suma y resta.

Ejercicio de la multiplicación y unión.


Ejercicio unión
Ejercicio diferencia e intersección

clear all
clc
A = randi([-100 100],4,4);
B = randi([-100 100],4,4);
disp('la suma de A y B es: ')
suma = A+B
disp('la resta de A y B es: ')
resta = A-B
disp('la multiplicación de A y B es: ')
multe = A*B
disp('la union de A y B es: ')
union = union(A,B)
disp('la intersección de A y B es: ')
inter = intersect(A,B)
disp('la diferencia de A y B es: ')
dif = setdiff(A,B)
j. Realice un programa que genere tres números aleatorios entre 1 y un
límite superior; esos tres números debe imprimirlos ordenados en
forma ascendente o descendente, tanto el límite superior como el orden
ascendente o descendente los establece el usuario.
clear all
clc
orden = input('Digite el orden de la matriz cuadrada: ');
lim1 = input('Digite el limite inferior del rango: ');
lim2 = input('Digite el limite superior del rango: ');
while lim2<lim1
lim2 = input('el limite superior debe ser mayor al inferior, digite
nuevamente: ');
end

disp('La matriz es: ')


M = randi([lim1 lim2],orden,orden)

dato = input('Digite el dato a buscar: ');

index = find(M==dato);
disp('las posiciones donde se encuentra el dato son: ')
disp(index')
rta2 = ['el dato se encuentra repetido ',string(length(index)),' veces'];
disp(rta2)
for i=1:length(index)
texto = 'Desea modificar el dato en la posicion '+string(index(i))+
var = input(char(texto),'s');
if var=='S'var=='s'
Ilustración 13 Ejercicio 1k parte 2
M(index(i))=input('Digite el nuevo valor: ');
else

end
disp('La matriz final es: ')
M

k. Realice un programa que genere tres números aleatorios entre 1 y un


límite superior; esos tres números debe imprimirlos ordenados en
forma ascendente o descendente, tanto el límite superior como el orden
ascendente o descendente los establece el usuario.
1.2. GRÁFICOS 2D
a. Crear un vector con los valores de la función seno desde -pi hasta
pi, utilizando las siguientes
líneas de comando:
x = -pi:0.1:pi;
y = sin(x);
Consecuentemente realice la gráfica de la función seno generada. La
gráfica debe mostrar los
valores correspondientes tanto en la abscisa como en la ordenada.
Adicionalmente, debe agregar
un título a la gráfica, texto indicando a lo que corresponden la abscisa
y la ordenada.

clear all
clc
x = -pi:0.1:pi;
y = sin(x);
plot(x,y)
title('Grafica del Seno')
xlabel('-\pi \leq x \leq \pi')
ylabel('Y = seno(x)')
xlim([-pi pi])
b. Para el gráfico final generado en el ítem anterior, genera la misma
gráfica, pero con el trazo
de la función en colores verde, rojo, negro y amarillo.

clear all
clc
%%COLOR VERDE
x = -pi:0.1:pi;
y = sin(x);
h1=subplot(2,2,1);
plot(x,y,'g')
title('Grafica del Seno')
xlabel('-\pi \leq x \leq \pi')
ylabel('Y = seno(x)')
xlim([-pi pi])

%%COLOR ROJO
x = -pi:0.1:pi;
y = sin(x);
h2=subplot(2,2,2);
plot(x,y,'r')
title('Grafica del Seno')
xlabel('-\pi \leq x \leq \pi')
ylabel('Y = seno(x)')
xlim([-pi pi])

%%COLOR NEGRO
x = -pi:0.1:pi;
y = sin(x);
h3=subplot(2,2,3);
plot(x,y,'k')
title('Grafica del Seno')
xlabel('-\pi \leq x \leq \pi')
ylabel('Y = seno(x)')
xlim([-pi pi])

%%COLOR AMARILLO
x = -pi:0.1:pi;
y = sin(x);
h3=subplot(2,2,4);
plot(x,y,'y')
title('Grafica del Seno')
xlabel('-\pi \leq x \leq \pi')
ylabel('Y = seno(x)')
xlim([-pi pi])

c. Para el gráfico final generado en el ítem anterior, genera la misma


gráfica con un color
diferente a los generados previamente, pero con el trazo de la función
en los siguientes
caracteres:
• * (asterisco)
• + (mas)
• - (menos)
• o (o minúscula).
clear all
clc
%%asterisco
x =-pi:0.1:pi;
y = sin(x);
h1=subplot(2,2,1);
plot(x,y,'c*')
title('Grafica del Seno')
xlabel('-\pi\leq x\leq\pi')
ylabel('Y = seno(x)')
xlim([-pi pi])
%%mas
x =-pi:0.1:pi;
y = sin(x);
h2=subplot(2,2,2);
plot(x,y,'c+')
title('Grafica del Seno')
xlabel('-\pi\leq x\leq\pi')
ylabel('Y = seno(x)')
xlim([-pi pi])
%%menos
x = -pi:0.1:pi;
y = sin(x);
h3=subplot(2,2,3);
plot(x,y,'c-')
title('Grafica del Seno')
xlabel('-\pi \leq x \leq \pi')
ylabel('Y = seno(x)')
xlim([-pi pi])
%%letra o
x = -pi:0.1:pi;
y = sin(x);
h3=subplot(2,2,4);
plot(x,y,'co')
title('Grafica del Seno')
xlabel('-\pi \leq x \leq \pi')
ylabel('Y = seno(x)')
xlim([-pi pi])

d. Cree un programa para trazar dos curvas en gráficos separados. La


primera con una línea
continua, en rojo y los puntos representados por asteriscos y la segunda con
una línea
punteada y en color azul. Las funciones graficar se muestran a continuación.
Usar como
dominio un intervalo desde -1500 hasta 1500.
𝑦 = 𝑥^2 ec. (1)
𝑧 = 𝑥^3 ec. (3)

clear all
clc
x=-1500:100:1500;
y1=x.^2;
y2=x.^3;
%%grafica x^2
h1=subplot(2,1,1);
plot(x,y1,'r-*')
title('Grafica x^2')
xlabel('-1500\leq x\leq 1500')
ylabel('Y = x^2')
xlim([-1500 1500])
%%grafica x^3
h1=subplot(2,1,2);
plot(x,y2,'b--')
title('Grafica x^3')
xlabel('-1500\leq x\leq 1500')
ylabel('Z = x^3')
xlim([-1500 1500])

e. Usando las mismas ecuaciones 1 y 2 cree programa para trazar dos


curvas en un mismo gráfico. La primera con una línea continua, en rojo y los
puntos representados por asteriscos y la segunda con una línea punteada y
en color azul. Usar como dominio un intervalo desde -1500 hasta 1500.

clear all
clc
x=-1500:100:1500;
y1=x.^2;
y2=x.^3;
%%grafica
plot(x,y1,'r-*',x,y2,'b--')
title('Grafica x^2 y x^3')
xlabel('-1500 \leq x \leq 1500')
ylabel('Y')
xlim([-1500 1500])
legend('x^2','x^3')

f. Consultar sobre el uso del comando subplot, para proceder a realizar un


programa que
grafique las funciones del ítem d) en subgráficos de modo horizontal, así
como de modo vertical.

clear all
clc
x=-1500:100:1500;
y1=x.^2;
y2=x.^3;
%%%vertical
%%grafica x^2
h1=subplot(1,2,1);
plot(x,y1,'r-*')
title('Grafica x^2')
xlabel('-1500 \leq x \leq 1500')
ylabel('Y = x^2')
xlim([-1500 1500])
%%grafica x^3
h1=subplot(1,2,2);
plot(x,y2,'b--')
title('Grafica x^3')
xlabel('-1500 \leq x \leq 1500')
ylabel('Y = x^3')
xlim([-1500 1500])

clear all
clc
x=-1500:100:1500;
y1=x.^2;
y2=x.^3;
%%horizontal
%%grafica x^2
h1=subplot(2,1,1);
plot(x,y1,'r-*')
title('Grafica x^2')
xlabel('-1500 \leq x \leq 1500')
ylabel('Y = x^2')
xlim([-1500 1500])
%%grafica x^3
h1=subplot(2,1,2);
plot(x,y2,'b--')
title('Grafica x^3')
xlabel('-1500 \leq x \leq 1500')
ylabel('Y = x^3')
xlim([-1500 1500])
1.3. INTERFAZ GRÁFICA DE USUARIO
Realizar una interfaz gráfica de usuario, a través de la cual se ejecute la
generación de las gráficas de las funciones indicadas en el ítem 3D.
CONCLUSIONES

Para concluir con el compromiso del desarrollo de los ejercicios me llevo la


mi mejor satisfacción de los aprendido gracias al tutor y mis compañeros por
la aclaraciones de las mis dudad y el eficaz compromiso con el aprender y
ver como de alguna manera nos facilita el trabajo realizado.
BIBLIOGRAFIA

Gil, R. M. (2003). Introducción rápida a Matlab y Simulink para ciencia e


ingeniería. Madrid, ES: Ediciones Díaz de Santos. (Capítulo 4 y 5. pp. 41-80).
https://bibliotecavirtual.unad.edu.co/login?url=http://search.ebscohost.com/
login.aspx?direct=true&db=edselb&AN=edselb.3171391&lang=es&site=eds-
live&scope=site
Hahn, B. D., & Valentine, D. T. (2013). Essential MATLAB for Engineers and
Scientists (Vol. Fifth edition). Waltham, MA: Academic Press. (Capítulos 5 y
6. pp. 111-160., Capítulo 9. Pp. 197-235).
https://bibliotecavirtual.unad.edu.co/login?url=http://search.ebscohost.com/
login.aspx?direct=true&db=nlebk&AN=485981&lang=es&site=eds-
live&scope=site
Nagar, S. (2017). Introduction to Scilab : For Engineers and Scientists.
Apress. Berkeley, CA: Apress; 2017. (Capítulos 3 y 4. pp. 55-130., Capítulo
6. pp. 145- 155).
https://bibliotecavirtual.unad.edu.co/login?url=http://search.ebscohost.com/
login.aspx?direct=true&db=edsebk&AN=1636892&lang=es&site=eds-
live&scope=site

También podría gustarte