Nothing Special   »   [go: up one dir, main page]

Taller 1 de Matlab

Descargar como txt, pdf o txt
Descargar como txt, pdf o txt
Está en la página 1de 6

%% HERRAMIENTAS COMPUTACIONALES

%% Nombre: Geovany Muñoz


%% Tarea desarrollada en el programa MATLAB

%% CREAR MATRIZ

clc, clear, clear all


A=[1 2 3; 4 5 6; 7 8 9]
B=[1 2 3; 0 3 1; 2 1 1]

%% MATRIZ IDENTIDAD (Opción 1)

clc, clear, clear all


A= [1 2 3; 4 5 6; 7 8 9];
I= [1 0 0; 0 1 0; 0 0 1];
H= A.*I
T=diag(H)

%% MATRIZ IDENTIDAD (Opción 2)

clc, clear, clear all


I= [1 0 0; 0 1 0; 0 0 1];
H= diag(I)

%% MATRIZ DE CEROS

clc, clear, clear all

j= zeros (4,2)

%% OPERACIONES BÁSICAS CON MATLAB

%% Compare los resultados de A*B y A.*B . Que hizo Matlab?

clc, clear, clear all

A=[1 2 3; 4 5 6; 7 8 9];
B=[1 2 3; 0 3 1; 2 1 1];

C=A*B %% Brinda el resultado del producto (multiplicación) de 2 vectores o


matrices.Supongamos AxB, en este caso el número de columnas del vector o matriz A,
debe ser igual al número de filas del vector o matriz B

D=A.*B %% Brinda el resultado de la operación del producto término a término


(multiplicación por elementos) de un vector o una matriz.

%% A*B = B*A. Explique

clc, clear, clear all

A=[1 2 3; 4 5 6; 7 8 9];
B=[1 2 3; 0 3 1; 2 1 1];

C=A*B
D=B*A %% El producto de dos matrices no es conmutativa, por tanto, A*B~=B*A

%% A.*B = B.*A. Explique


clc, clear, clear all

A=[1 2 3; 4 5 6; 7 8 9];
B=[1 2 3; 0 3 1; 2 1 1];

C=A.*B
D=B.*A %% En este caso, como es una multiplicación término a término, es posible la
propiedad permutativa de dos matrices, por tanto, A.*B=B.*A

%% Crear una matriz D=B-1. Que es D*B= ?

clc, clear, clear all

B= [1 2 3; 0 3 1; 2 1 1]
D= inv (B) % La condición inicial para que una matriz sea inversible o regular, es
que debe ser cuadrada.
E=D*B % Esta operación arroja la matriz identidad, indicando que la matriz D es
inversa de B.

%% Compare con A/B y A\B. Cual es la diferencia?

clc, clear, clear all

A=[1 2 3; 4 5 6; 7 8 0]; % Se cambia el valor (3,1) que es 9, por 0, para poder


desarrollar sin problema el ejemplo ya qué según indica matlab "Advertencia: Matriz
está cerca de singular o mal escalado. Los resultados pueden ser inexactos."
B=[1 2 3; 0 3 1; 2 1 1];

C=A/B %% División derecha de matrices: El comando / nos permite realizar divisiónes


entre dos matrices, ya que al verificar la operación A*inv(B) se obtiene igual
resultado.
D=A\B %% División izquierda de matrices: Este comando \ también se expresa como una
división, ya que en este caso al verificar la operación inv(A)*B se obtiene igual
resultado.

%% Crear una matriz E 3×3 con todos los elementos de la diagonal iguales a 6 y el
resto de los elementos como 0.

clc, clear, clear all

v= [3 3 3];
j= diag (v)

%% OPERADOR DOS PUNTOS (:)

%% Defina un vector x con el siguiente comando x=1:10. Explique

clc, clear, clear all

x= 1:10 % Genera secuencia númerica que inicia y tiene paso de 1 y finaliza en 10.

%% Que hace x=1:2:10. Explique.

clc, clear, clear all

x= 1:2:10 % Genera secuencia númerica que inicia en 1, con paso de 2 y finaliza en


10.

%% Extracción de submatrices e indexación


%% Use el comando MM=magic(4) para generar un matriz
clc, clear, clear all

MM= magic(4)

AA=MM(3, 2) %% Saque el valor que está en la fila 3 columna 2 de MM.


MM(1,4)=26 %% Coloca en la matriz MM en la fila 1 columna 4 el número 26.
CC=MM(:,[2 4]) %% Extraiga de MM todos los valores de la columna 2 y 4 y
almacénelos en aa (CC)
DD=MM(end,:) %% Que pasa cuando MM(end,:)?. Explique. Rta/ Se está tomando la
última fila con "end" y todas las columnas de dicha fila con ":".
EE=MM([1 3], 2:end) %% Que pasa cuando bb=MM([1 3],2:end). Rta/ Se está tomando la
fila 1 y 3, además la columna 2 hasta el final (4), formando una matriz (2x3)
FF=size(EE) %% Que hace el comando size(bb)?. Explicar. Rta/ Brinda el tamaño de
la matriz EE, en este caso 2x3
FF=size(EE,1) %% Que pasa si size(bb,1). Explicar. Rta/ Brinda el tamaño de
las filas
FF=size(EE,2) %% Que pasa si size(bb,2). Explicar. Rta/ Brinda el tamaño de
las columnas

%% GRAFICAS EN MATLAB

clc, clear, clear all

h=0.01;
t=0:h:5;

y1=sin(2*pi*t);
y2=cos(2*pi*t);
plot (t, y1, 'r', t, y2, '--b')
xlabel ('Tiempo [s]')
ylabel ('Aceleración [m/s2]')
legend ('Sen', 'Cos')

A=[1 2 3; 4 5 6; 7 8 9]
B=[1 2 3; 0 3 1; 2 1 1]

%% EJERCICIOS

%% 1. Suma de 2 números

clc, clear, clear all


x=input('Ingrese el primer número: ');
y=input('Ingrese el segundo número: ');
z=x+y;
fprintf('La suma es = %d', z)

%% 2. Escriba un programa para que lea cuatro números del teclado y muestra el
mayor de ellos

clc, clear, clear all


A=input('Ingrese el primer número: ');
B=input('Ingrese el segundo número: ');
C=input('Ingrese el tercer número: ');
D=input('Ingrese el cuarto número: ');
if (A>B && A>C && A>D)
fprintf('El mayor valor es = %f', A);
elseif (B>A && B>C && B>D)
fprintf('El mayor valor es = %f', B);
elseif (C>A && C>A && C>D)
fprintf('El mayor valor es = %f', C);
elseif (D>A && D>B && D>C)
fprintf('El mayor valor es = %f', D);
else
fprintf('Los valores dados son iguales')
end

%% 3. Dibuje la respuesta de un sistema oscilatorio amortiguado

t=0:0.01:30;

x=5*exp(-0.1*t).*cos(4*t-0.7048);

plot(t,x)

grid

xlabel('Tiempo(segundos)')

ylabel('Desplazamiento X(metros)')

%% 3. Dibuje la respuesta de un sistema oscilatorio amortiguado

clc, clear, clear all

J= 0.01; %Razón de amortiguamiento


wn= 10; %Frecuencia natural
Uo=0.3; %Desplazamiento
dUo=0.3
wd= wn*(sqrt(1-(J^2)));
h=0.1;
t=0:h:50;

Ut=(exp(-(J*(wn.*t)))).*((Uo*cos(wd.*t)+(((Uo+(J*wn*dUo))/(wd))*sin(wd.*t))));

plot(t, Ut, '-b')

%% 4. Diseña el algoritmo que sume todos los números naturales anteriores a un


número N dado.

clc, clear, clear all

x= input('Ingrese el valor final: ');

y=1:x;
z=sum(y);
fprintf('La suma es = %d', z)

%% 5. Crear una tabla con el comando TABLE


clc, clear, clear all
Barra=[2; 3; 4; 5; 6; 7; 8]; % Número de barra
Diametro=[6.4; 9.5; 12.7; 15.9; 19.1; 22.2; 25.4]; % Diametro barra
Area=[32; 71; 129; 199; 284; 387; 510]; % Area barra

datatable=table(Barra, Diametro, Area)

A=input ('digite No. de barra ')


if (A==2);
datatable(1,:)
elseif (A==3)
datatable(2,:)
elseif (A==4)
datatable(3,:)
elseif (A==5)
datatable(4,:)
elseif (A==6)
datatable(5,:)
elseif (A==7)
datatable(6,:)
elseif (A==8)
datatable(7,:)
else input('Digite una barra entre No. 2 y No. 8')
end

%% 6. Media aritmetica

clc, clear, clear all

suma=0;
contador=0;
x=input('digite un número (el número cero (0) termina el ejercicio)= ');
while (x~=0);
suma=x+suma;
contador=contador+1;
x=input('digite un número (el número cero (0) termina el ejercicio)= ');
end
if contador>0;
media=suma/contador;
fprintf('La media aritmetica es= %f', media)
else disp('Registre un valor distinto de cero')
end

%% Cargar y graficar el sismo de El Centro (1949) usando el código mostrado a


continuación. El vector de tiempo tt está en segundos y la amplitud del sismo en
aceleración está en . Determine la aceleración pico del registro y muestrela en la
figura con un círculo rojo.

clc, clear, clear all

elcentro = load('elcentro.txt');
MQ = [elcentro(1:end-150,1)/(100)];
dt = .02;
tt = [0:dt:((length(MQ)-1)*dt)]';
plot(tt,MQ), grid on
ylabel('Aceleración [m/s^2]')
xlabel('Tiempo [s]')

%% Sismo luna vs sismo tierra


clc, clear, clear all

lunax = load('lp_1973_shallow_acc_12_LP_x.txt');
x = [lunax(1:end-38000,2)/(40)];
dt = .02;
ttx = [0:dt:((length(x)-1)*dt)]';
subplot(2, 1, 1)
plot(ttx,x), grid on
ylabel('Aceleración [m/s^2]')
xlabel('Tiempo [s]')
mx=abs(max(x));
fprintf('La aceleración pico en x es [m/s^2]= %f', mx)

lunay = load('lp_1973_shallow_acc_12_LP_y.txt');
y = [lunay(1:end-38000,2)/(40)];
dt = .02;
tty = [0:dt:((length(x)-1)*dt)]';
subplot(2, 1, 2)
plot(tty,y), grid on
ylabel('Aceleración [m/s^2]')
xlabel('Tiempo [s]')
my=abs(max(y));
fprintf('\n La aceleración pico en y es [m/s^2]= %f', my)

También podría gustarte