0% encontró este documento útil (0 votos)
125 vistas6 páginas

Operaciones de Matrices en MATLAB

Este documento presenta varios ejemplos del uso de MATLAB para operaciones básicas con matrices, como creación, suma, multiplicación y división de matrices. También muestra cómo generar gráficas y resuelve ejercicios numéricos mediante programas en MATLAB.

Cargado por

geovandres988
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
125 vistas6 páginas

Operaciones de Matrices en MATLAB

Este documento presenta varios ejemplos del uso de MATLAB para operaciones básicas con matrices, como creación, suma, multiplicación y división de matrices. También muestra cómo generar gráficas y resuelve ejercicios numéricos mediante programas en MATLAB.

Cargado por

geovandres988
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd

%% 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