0% encontró este documento útil (0 votos)
41 vistas14 páginas

Operaciones de Matrices en MATLAB

Cargado por

bullcuatro
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 DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
41 vistas14 páginas

Operaciones de Matrices en MATLAB

Cargado por

bullcuatro
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 DOCX, PDF, TXT o lee en línea desde Scribd

DEBER ALGEBRA LINEAL MATLAB

1. SUMA Y RESTA DE MATRICES

% Definir las matrices

A = [3 5;3 8];

B = [5 9;7 2];

% Suma de matrices

C=A+B

% Resta de matrices

D=A–B

2. Multiplicación de una matriz por un escalar:

% Definir la matriz y el escalar

A = [8 3 5 ; 2 5 3];

B = 3;

% Multiplicación de la matriz por el escalar

B=B*A
3. Multiplicación entre dos matrices.

% Definir las matrices

A = [2 5 7; 8 2 9; 2 6 6];

B = [9 8 7; 5 2 7; 9 8 4];

% Multiplicación de las matrices

C=A*B

4. Transpuesta de una matriz

% Definir la matriz

A = [3 7 5; 4 5 6; 2 5 7];

% Calcular la transpuesta de la matriz

A_transpuesta = transpose(A); % O también se puede usar A'

% Mostrar la matriz original y su transpuesta

disp("Matriz original:");

disp(A)

disp("Transpuesta de la matriz:");

disp(A_transpuesta)
5. Determinante de una matriz

% Definir la matriz

A = [9 -2 6; -5 8 2; 2 5 7];

% Calcular el determinante de la matriz

determinante = det(A);

% Mostrar el resultado

disp("El determinante de la matriz es:")

disp(determinante)

6. Inversa de una matriz: Función inv() de Matlab

% Calcular el determinante de la matriz

determinante = det(A);

% Verificar si el determinante no es igual a cero

if determinante ~= 0

% Calcular la inversa de la matriz

inversa = inv(A);
7. Inversa de una matriz: Método de Gauss-Jordan

% Definir la matriz

A = [3 5 6 ; 0 1 4; - 4 4 5 ];

% Calcular el determinante de la matriz

determinante = det(A);

% Verificar si el determinante no es igual a cero

if determinante ~= 0

% Obtener el tamaño de la matriz

[m, n] = size(A);

% Agregar la matriz identidad al lado derecho de A

A_aumentada = [A eye(m)];

% Mostrar la matriz inicial

disp("Matriz Inicial:");

disp(rats(A_aumentada));

% Aplicar el método de Gauss-Jordan

for i = 1:m

% Dividir la fila i por el pivote

pivot = A_aumentada(i, i);

A_aumentada(i, :) = A_aumentada(i, :) / pivot;

% Reducir a cero las otras filas

for j = 1:m

if j ~= i

factor = A_aumentada(j, i);

A_aumentada(j, :) = A_aumentada(j, :) ( factor )

A_aumentada(i, :) ;

end

end

% Mostrar la matriz actualizada en cada paso

disp("Paso " + num2str(i) + ":");

disp(rats(A_aumentada));
end

% Extraer la matriz inversa de A_aumentada

inversa = A_aumentada(:, n+1:end);

% Mostrar el resultado

disp("La matriz inversa es:");

disp(rats(inversa));

else

% Mostrar un mensaje de error si el determinante es igual a cero

disp( “La matriz no tiene inversa debido a que su determinante es igual a

cero”. );

end

8. Inversa de una matriz: Método de la matriz adjunta

% Definir la matriz

A = [2 5 6 ; 0 1 4; -5 5 7];

% Calcular el determinante de la matriz

determinante = det(A);

% Mostrar el determinante de la matriz original

disp("El determinante de la matriz original es:");

disp(determinante);
% Verificar si el determinante no es igual a cero

if determinante ~= 0

% Obtener el tamaño de la matriz

[m, n] = size(A);

% Calcular la matriz de cofactores

cofactores = zeros(m, n);

for i = 1:m

for j = 1:n

% Calcular el cofactor para cada elemento de A

cofactores(i, j) = (-1)^(i+j) * det(A([1:i-1 i+1:end], [1:j-1

j+1:end]));

end

end

% Mostrar la matriz de cofactores

disp("La matriz de cofactores es:");

disp(rats(cofactores));

% Calcular la adjunta de la matriz

adjunta = cofactores';

% Mostrar la adjunta de la matriz

disp("La adjunta de la matriz es:");

disp(rats(adjunta));

% Calcular la matriz inversa dividiendo la adjunta por el determinante

inversa = adjunta / determinante;

% Mostrar el resultado

disp("La matriz inversa es:");

disp(rats(inversa));

else

% Mostrar un mensaje de error si el determinante es igual a cero


disp("La matriz no tiene inversa debido a que su determinante es igual a

cero.");

enD

% Definir la matriz de coeficientes A

A = [7 8 9 ; 2 -1 3; 3 7 1 ];

% Definir el vector de términos independientes b

b = [5; 4; 8];

% Combinar la matriz de coeficientes A y el vector de términos independientes

matriz_aumentada = [A, b];

% Mostrar la matriz aumentada inicial

disp("Matriz aumentada inicial:");

disp(matriz_aumentada);

disp("---------------------------");

% Obtener el número de filas y columnas de la matriz aumentada

[num_filas, num_columnas] = size(matriz_aumentada);

% Aplicar el método de Gauss

for pivot_fila = 1:num_filas

% Paso 1: Selección del pivote

pivot = matriz_aumentada(pivot_fila, pivot_fila);


% Paso 2: Verificar si el pivote es cero y realizar pivoteo parcial

if pivot == 0

% Buscar una fila no nula para intercambiar

for fila = pivot_fila+1:num_filas

if matriz_aumentada(fila, pivot_fila) ~= 0

% Intercambiar filas

matriz_aumentada([pivot_fila, fila], :) =

matriz_aumentada([fila, pivot_fila], :);

break;

end

end

% Mostrar la matriz aumentada después del pivoteo parcial

disp("Matriz aumentada después del pivoteo parcial:");

disp(rats(matriz_aumentada));

disp("---------------------------");

% Actualizar el pivote

pivot = matriz_aumentada(pivot_fila, pivot_fila);

end

% Paso 3: Eliminación hacia abajo

for fila = pivot_fila+1:num_filas

factor = matriz_aumentada(fila, pivot_fila) / pivot;

matriz_aumentada(fila, :) = matriz_aumentada(fila, :) - factor *

matriz_aumentada(pivot_fila, :);

end

% Mostrar la matriz aumentada después de la eliminación hacia abajo

disp("Matriz aumentada después de la eliminación hacia abajo:");

disp(rats(matriz_aumentada));
disp("---------------------------");

end

% Verificar si la última fila contiene solo ceros a excepción del último

elemento

if all(matriz_aumentada(end, 1:end-1) == 0) && matriz_aumentada(end, end) ~=

disp("El sistema de ecuaciones no tiene solución.");

else

% Verificar si hay filas de ceros

num_filas_ceros = sum(all(matriz_aumentada(:, 1:end-1) == 0, 2));

if num_filas_ceros > 0

disp("El sistema de ecuaciones tiene infinitas soluciones.");

else

% Aplicar el método de sustitución hacia atrás para obtener las

soluciones

soluciones = zeros(num_filas, 1);

for fila = num_filas:-1:1

soluciones(fila) = (matriz_aumentada(fila, end) -

matriz_aumentada(fila, 1:end-1) * soluciones) / matriz_aumentada(fila, fila);

end

disp("El sistema de ecuaciones tiene solución única.");

disp("Solución única:");

disp(rats(soluciones));

end
end

[Link]ón de un sistema de ecuaciones lineales: Método de Gauss-Jordan

% Definir la matriz de coeficientes A

A = [5 6 9; 2 -9 4; 1 5 3];

% Definir el vector de términos independientes b

b = [5; 4; 8];

% Combinar la matriz de coeficientes A y el vector de términos independientes

matriz_aumentada = [A, b];

% Mostrar la matriz aumentada inicial

disp("Matriz aumentada inicial:");


disp(matriz_aumentada);

disp("---------------------------");

% Obtener el número de filas y columnas de la matriz aumentada

[num_filas, num_columnas] = size(matriz_aumentada);

% Aplicar el método de Gauss-Jordan

for pivot_fila = 1:num_filas

% Paso 1: Selección del pivote

pivot = matriz_aumentada(pivot_fila, pivot_fila);

% Paso 2: Verificar si el pivote es cero y realizar pivoteo parcial

if pivot == 0

% Buscar una fila no nula para intercambiar

for fila = pivot_fila+1:num_filas

if matriz_aumentada(fila, pivot_fila) ~= 0

% Intercambiar filas

matriz_aumentada([pivot_fila, fila], :) =

matriz_aumentada([fila, pivot_fila], :);

break;

end

end

% Verificar si se llegó a una fila de ceros en la parte inferior

if all(matriz_aumentada(pivot_fila+1:end, pivot_fila) == 0)

% Mostrar la matriz aumentada final en forma escalonada reducida

(rref)

disp("Matriz aumentada final (rref):");

disp(rats(matriz_aumentada));

% Verificar si la última columna también es cero

if all(matriz_aumentada(end, 1:end) == 0)

disp("El sistema de ecuaciones tiene infinitas soluciones.");


else

disp("El sistema de ecuaciones no tiene solución.");

end

return;

end

% Mostrar la matriz aumentada después del pivoteo parcial

disp("Matriz aumentada después del pivoteo parcial:");

disp(rats(matriz_aumentada));

disp("---------------------------");

% Actualizar el pivote

pivot = matriz_aumentada(pivot_fila, pivot_fila);

end

% Paso 3: Hacer que el pivote sea igual a 1

matriz_aumentada(pivot_fila, :) = matriz_aumentada(pivot_fila, :) /

pivot;

% Mostrar la matriz aumentada después de hacer el pivote igual a 1

disp("Matriz aumentada después de hacer el pivote igual a 1:");

disp(rats(matriz_aumentada));

disp("---------------------------");

% Paso 4: Eliminación hacia abajo y hacia arriba

for fila = 1:num_filas

if fila ~= pivot_fila

factor = matriz_aumentada(fila, pivot_fila);

matriz_aumentada(fila, :) = matriz_aumentada(fila, :) - factor *

matriz_aumentada(pivot_fila, :);

end
end

% Mostrar la matriz aumentada después de la eliminación hacia abajo y

hacia arriba

disp("Matriz aumentada después de la eliminación hacia abajo y hacia

arriba:");

disp(rats(matriz_aumentada));

disp("---------------------------");

end

% Verificar si la última fila contiene solo ceros a excepción del último

elemento

if all(matriz_aumentada(end, 1:end-1) == 0) && matriz_aumentada(end, end) ~=

% Mostrar la matriz aumentada final en forma escalonada reducida (rref)

disp("Matriz aumentada final (rref):");

disp(rats(matriz_aumentada));

disp("El sistema de ecuaciones no tiene solución.");

else

% Mostrar la matriz aumentada final en forma escalonada reducida (rref)

disp("Matriz aumentada final (rref):");

disp(rats(matriz_aumentada));

disp("El sistema de ecuaciones tiene solución única.");

% Extraer las soluciones

soluciones = matriz_aumentada(:, end);

disp("Soluciones:");

disp(rats(soluciones));

end

También podría gustarte