Sunteți pe pagina 1din 8

TALLER # 2: OPERACIONES CON MATRICES Y SISTEMAS DE ECUACIONES

UNIVERSIDAD NACIONAL DE COLOMBIA SEDE PALMIRA


PROGRAMACIÓN EN ANÁLISIS DE ESTRUCTURAS

Daniela Romero C. 314033. Gustavo Fajardo O. 314012. Ronal Erazo D. 319012

1. Defina los siguientes términos en una matriz, y revise la instrucción en el lenguaje


de programación con la cual se obtiene:

a) Traspuesta de una matriz


b) Determinante de una matriz.
c) Inversa de una matriz.
d) Rango de una matriz.
e) Traza de una matriz.

A. Transpuesta de una matriz


La matriz traspuesta de una matriz se denota por y se obtiene cambiando sus
filas por columnas (o viceversa).
Definición de la traspuesta de una matriz, En este caso para hacer los cálculos de la
matriz traspuesta solo se utiliza el carácter "'".
Código en Scilab:
-->A'
ans =
2. 4.
3. 2.
B. Determinante de una matriz
El determinante de una matriz de dimensión mxn es el resultado de restar la multiplicación
de los elementos de la diagonal principal con la multiplicación de los elementos de la
diagonal secundaria.
Usamos como ejemplo la misma matriz para calcular el determinante que en el caso de la
matriz inversa. Código en Scilab:
-->A=[2 3;4 2];
-->det(A)
ans =
- 8.
C. Inversa de una matriz

La matriz inversa de una matriz cuadrada de orden


n, es la matriz cuadrada también de orden n
que verifica:

donde I es la matriz identidad de orden n.


Existencia de la matriz inversa
Las matrices que tienen inversa se llaman regulares y las que NO tienen inversa,
singulares.
Una matriz cuadrada de orden n es regular si, y solo si, su rango es n.
Una matriz cuadrada de orden n es singular si, y solo si, su determinante es cero.

Dada la matriz A, se desea calcular la matriz inversa en Scilab:

Código en Scilab:
-->A=[2 3;4 2];
-->inv(A)
ans =
- 0.25 0.375
0.5 - 0.25
//o también se puede hacer así:
-->A^-1
ans =
- 0.25 0.375
0.5 - 0.25
Verificación de la definición de la matriz inversa:
-->A*inv(A)
ans =
1. 0.
0. 1.
D. Rango de una matriz
- El rango de una matriz A se representa como rg(A)
- El rango de una matriz es el número de filas (o columnas) linealmente independientes.
- Es lo mismo calcular el nº de filas independientes, que el nº de columnas independientes
(se obtiene el mismo número)
- El rango es un número natural comprendido entre 0 (cuando sea la matriz nula) y el
mínimo entre nº columnas y nº filas
-->A=[0 1 1 2;1 2 3 4;2 0 2 0];
rank(A)
ans = 2.
E. traza de una matriz
t = trace(A) devuelve la traza t (suma de los elementos de la diagonal) de
una matriz cuadrada A.
en scilab es utilizada como:
trace(matriz)

2. Elabore un código computacional y construya una matriz A(3x3), cuyos campos en


orden por filas sean los números enteros, y se intercale el signo positivo y el signo
negativo. Para esta matriz calcule la matriz transpuesta, su determinante, su
rango, su traza y su inversa (si existe).
clear
clc
//Matriz A
C=0
for I = 1:1:3
for J = 1:1:3
C = C+1
A(I,J)= ((-1)^(I+J))*C
end
end

disp ("Esta es la matríz A:")


disp (A)

// Matriz B
KK=0
for K=1:1:3
for L=1:1:6
B(K,L)= fix(rand()*10)
end

end

disp ("Esta es la matríz B:")


disp (B)

//OPERACIONES

FILES = 1
COLUMNS = 2

M= size(A, FILES)//3
N= size(A, COLUMNS)//3

P= size(B, FILES)//3
Q= size(B, COLUMNS)//6

if N==P then

disp ("Seleccione por cual camino desea hacer la multiplicacion. 1 es el camino


corto, 2 es el camino largo:")
rta=input("Corto (1) ó Largo (2) = ")

select rta
case 1

RPTA=A*B

case 2 //PENDIENTE

for R=1:1:M
for S= 1:1:Q
RPTA(R,S)=0
for T=1:1:N
RPTA(R,S)=RPTA(R,S)+(A(R,T)*B(T,S))
end
end
end //PENDIENTE
end

else
disp ("No se puede realizar la multiplicación")
abort
end

disp("la multiplicación de las matrices es:")


disp(RPTA)
3. Elabore un código computacional y construya una matriz B(3x6), con valores
aleatorios y realice la multiplicacion: A*B (presente dos códigos alternativos para la
realización de esta operación)

clear
clc
M= [3,2,-6;
1,3,-5;
-2,-2,1]
disp("La primera matriz es:")
disp(M)

B = [9;
3;
1]
disp("La segunda matríz es:")
disp (B)

D=det(M)

disp("El determinante de la primera matríz es:")


disp(D)

if D==0 then
disp("El sistema no tiene solución")
else
S= linsolve(M,B)// linealización
disp(S, "La solución (con LinSolve) es:")

M_inv=inv(M)
SS=M_inv*(-1)*B
disp(SS, "La solución (con inversa) es:")
end

4. Elabora un código computacional que resuelva el siguiente sistema de ecuaciones,


3 x+2 y−6 z +9=0
x−3 y−5 z +3=0
−2 x −2 y + z +1=0
clear
disp("Este algoritmo resuelve el ejercicio 4 del taller.")

R2 = sqrt(2)/2
P1=600
P2=400
M = [R2,1,0,0,0,0,0,0;
clc
-R2,0,0,0,0,0,0,0;
0,-1,1,0,0,0,0,0;
0,0,0,-1,0,0,0,0;
0,0,-1,0,-R2,1,0,0;
0,0,0,0,-R2,0,1,0;
-R2,0,0,0,R2,0,0,1;
R2,0,0,1,R2,0,0,0;]

B =[0;
-P1;
0;
-P2;
0;
0;
0;
0;]

disp ("La matriz obtenida es:")


disp (M)
disp ("La matriz del termino independiente es:")
disp (B)

d = det(M) //Linea para determinar el determinante de la matrz.

if d==0 then //Condicional para conocer si la matriz tiene solución.


disp("El sistema no se puede resolver")
else

s = linsolve(M,B) //Solución del sistema de ecuaciones.


disp(s, "La solución es: ") //Se imprime mensaje con la solución.
end

S-ar putea să vă placă și