Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Guia 4 Trabajo Con Matrices y Gauss 2023

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

GUIA # 4 Operaciones con Matrices y eliminación Gausiana.

Objetivos General: Utilizar operadores y funciones relacionados al calculo con matrices en


FreeMat.

Entender y Elaborar un código para resolver sistemas de ecuaciones mediante la técnica de


eliminación de Gauss.

Objetivos específicos:

1. Definir matrices en FreeMat.


2. Realizar diferentes operaciones con matrices en FreeMat.
3. Utilizar funciones de librería asociadas a matrices en FreeMat.
4. Utilizar matrices en FreeMat para resolver sistemas de ecuaciones lineales.
5. Entender el algoritmo de eliminación de variables de Gauss simple.
6. Crear un código en FreeMat para resolver sistemas de ecuación lineal con el método
de eliminación de Gauss simple.
7. Resolver problemas prácticos que requieren resolver sistemas de ecuaciones
lineales.

FreeMat puede operar con matrices por medio de los mismos operadores utilizados
para escalares Los operadores matriciales de FreeMat son los siguientes:

Todos estos operadores son coherentes con las correspondientes operaciones matriciales:
no se puede por ejemplo sumar matrices que no sean del mismo tamaño. Si los operadores
no se usan de modo correcto se obtiene un mensaje de error.
Los operadores anteriores se pueden aplicar también de modo mixto, es decir con un
operando escalar y otro matricial. En este caso la operación con el escalar se aplica a cada
uno de los elementos de la matriz.

Practica:

9 0−14
1 2−5
Sean las matrices 𝐴 = [ 2 ] 𝐵 = [6 − 8 2] 𝐶 = [ ] Determine si es
−7 9 3
−1 −4 5 9
posible:
𝐷 = 𝐵𝑥𝐴
𝐷 = 𝐶𝑥𝐵
𝐷 = −5𝐵
𝐷 =𝐴+𝐵

Funciones que actúan sobre matrices


Las siguientes funciones exigen que el/los argumento/s sean matrices. En este
grupo aparecen algunas de las funciones más útiles y potentes de FreeMat.

size(A) devuelve el número de filas m y de columnas n de una matriz rectangular A


inv(A) calcula la inversa de A.
det(A) devuelve el determinante d de la matriz cuadrada A.
A' calcula la traspuesta (conjugada) de la matriz A
eye(n) forma la matriz unidad de tamaño (n×n)
zeros(i,j) forma una matriz de ceros de tamaño (i×j)
zeros(n) ídem de tamaño (nxn)
ones(n) forma una matriz de unos de tamaño (n×n)
ones(i,j) idem de tamaño (i×j)
rand(n) forma una matriz de números aleatorios entre 0 y 1, con distribución uniforme,
de tamaño (n×n)
rand(i,j) idem de tamaño (i×j)
randn(n) forma una matriz de números aleatorios de tamaño (n×n), con distribución
normal, de valor medio 0 y varianza 1.
A=diag(x) forma una matriz diagonal A cuyos elementos diagonales son los elementos
de un vector ya existente x

Ejemplo:
Realice lo siguiente:
1- Cree una matriz A aleatoria de (4x4).
2- Cree una matriz unitaria B de (4x4)
3- Compruebe que AxB=BxA=A.
4-Obtenga la matriz C=5A

Practica 3: Resolver sistemas de ecuaciones lineales.

Resolver el siguiente sistema de ecuaciones:


𝑥+𝑦+𝑧+𝑤 =4
𝑥 + 2𝑦 + 3𝑧 − 𝑤 = −1
{ }
3𝑥 + 4𝑦 + 2𝑧 + 𝑤 = −5
𝑥 + 4𝑦 + 3𝑧 − 𝑤 = −7
Un sistema de ecuaciones se puede interpretar como el producto de dos matrices:
1 1 1 1 4
123−1 −1
[ ] ∗ [𝑥, 𝑦, 𝑧, 𝑤] = [ ]
3421 −5
143−1 −7

Es decir se interpreta de la forma AX=B Donde A es la matriz de coeficientes, X es el


vector de incógnitas y B es la parte derecha.
Por lo tanto la solución será: X= inv(A)*B En FreeMat será:
Serían los valores de las incógnitas (x,y,z,w).

Método de eliminación de Gauss

La eliminación de incógnitas.

La eliminación de incógnitas mediante la combinación de ecuaciones es un método


algebraico que se ilustra con un sistema de ecuaciones de 2 incógnitas:

𝒂𝟏𝟏 𝒙 + 𝒂𝟏𝟐 𝒚 = 𝒃𝟏𝟏 (1)


𝒂𝟐𝟏 𝒙 + 𝒂𝟐𝟐 𝒚 = 𝒃𝟐𝟏 (2)

La estrategia consiste en multiplicar constantes de tal forma que se eliminen las variables
al combinar linealmente las ecuaciones; por ejemplo, si se desea eliminar “x” multiplico
la ecuación 1 por 𝑎21 y la ecuación 2 por 𝑎11 luego:

𝒂𝟐𝟏 𝒂𝟏𝟏 𝒙 + 𝒂𝟐𝟏 𝒂𝟏𝟐 𝒚 = 𝒂𝟐𝟏 𝒃𝟏𝟏 (1)


𝒂𝟐𝟏 𝒂𝟏𝟏 𝒙 + 𝒂𝟐𝟐 𝒂𝟏𝟏 𝒚 = 𝒂𝟏𝟏 𝒃𝟐𝟏 (2)
Luego al restar la ecuación 1 de la ecuación 2, se elimina la variable “x”

𝒂𝟐𝟏 𝒂𝟏𝟏 𝒙 − 𝒂𝟐𝟏 𝒂𝟏𝟏 𝒙 + 𝒂𝟐𝟐 𝒂𝟏𝟏 𝒚 − 𝒂𝟐𝟏 𝒂𝟏𝟐 𝒚 = 𝒂𝟏𝟏 𝒃𝟐𝟏 − 𝒂𝟐𝟏 𝒃𝟏𝟏

(𝒂𝟐𝟐 𝒂𝟏𝟏 − 𝒂𝟐𝟏 𝒂𝟏𝟐 )𝒚 = 𝒂𝟏𝟏 𝒃𝟐𝟏 − 𝒂𝟐𝟏 𝒃𝟏𝟏 Despejando:


𝑎 𝑏
𝒂𝟏𝟏 𝒃𝟐𝟏 − 𝒂𝟐𝟏 𝒃𝟏𝟏 | 11 11 |
𝑎21 𝑏21
𝑦= =
(𝒂𝟐𝟐 𝒂𝟏𝟏 − 𝒂𝟐𝟏 𝒂𝟏𝟐 ) |𝑎11 𝑎12 |
𝑎21 𝑎22
Sustituyendo “y” en cualquiera de las ecuaciones “x” nos queda:

𝑏 𝑎
𝒃𝟏𝟏 𝒂𝟐𝟐 − 𝒃𝟐𝟏 𝒂𝟐𝟏 | 11 11 |
𝑏 𝑎
𝑥= = 𝑎21 𝑎21
(𝒂𝟐𝟐 𝒂𝟏𝟏 − 𝒂𝟐𝟏 𝒂𝟏𝟐 ) | 11 12 |
𝑎21 𝑎22

La eliminación de incógnitas puede extenderse a sistemas de más de dos incógnitas,


sin embargo, los múltiples cálculos que se requieren para sistemas más grandes
hacen que el método sea extremadamente tedioso para realizarse a mano. No
obstante, la técnica puede llegar a formalizarse y programarse fácilmente en un
computador.
A dicha técnica se le denomina “Eliminación de Gauss simple”

Eliminación de Gauss Simple:

El proceso de eliminación de una variable consistió en dos pasos:


1. Las ecuaciones se manipularon para eliminar una de las incógnitas. El
resultado fue el de una sola ecuación con una incógnita.
2. La ecuación resultante se pudo resolver directamente y el resultado pudo
sustituirse atrás en una de las ecuaciones originales para encontrar la
incógnita restante.
Esta técnica puede extenderse a sistema grandes de ecuaciones desarrollando un
esquema sistemático o algorítmico para eliminar incógnitas y sustituir hacia atrás.
La eliminación de Gauss es el más básico de dichos esquemas.
El método se idea para resolver sistemas de “n” ecuaciones:

𝑎11 𝑥1 + 𝑎12 𝑥2 + 𝑎13 𝑥3 + 𝑎14 𝑥4 … . 𝑎1𝑛 𝑥𝑛 = 𝑏11 (1)


𝑎21 𝑥1 + 𝑎22 𝑥2 + 𝑎23 𝑥3 + 𝑎24 𝑥4 … . 𝑎2𝑛 𝑥𝑛 = 𝑏21
𝑎31 𝑥1 + 𝑎32 𝑥2 + 𝑎33 𝑥3 + 𝑎34 𝑥4 … . 𝑎3𝑛 𝑥𝑛 = 𝑏31
.
.
𝑎𝑛1 𝑥1 + 𝑎𝑛2 𝑥2 + 𝑎𝑛3 𝑥3 + 𝑎𝑛4 𝑥4 … . 𝑎𝑛𝑛 𝑥𝑛 = 𝑏𝑛1

Eliminación de incógnitas hacia adelante:

La primera fase es reducir el conjunto de ecuaciones a un sistema triangular


superior, Eliminando la primera incógnita a partir de la segunda fila, la segunda
incógnita a partir de la tercera y así sucesivamente. Para la primera incógnita, se
𝑎
multiplica la primera ecuación por 𝑎21 y el resultado se le resta a la ecuación 2.
11

𝑎21 𝑎 𝑎 𝑎 𝑎
𝑎21 𝑥1 + 𝑎12 𝑥2 + 𝑎13 𝑎21 𝑥3 + 𝑎14 𝑎21 𝑥4 … . 𝑎1𝑛 𝑎21 𝑥𝑛 = 𝑏11 𝑎21
𝑎11 11 11 11 11
Al restar con ecuación 2

𝑎21 𝑎21 𝑎21


0 + (𝑎22 − 𝑎12 ) 𝑥2 + (𝑎23 − 𝑎13 )𝑥3 + ⋯ . (𝑎2𝑛 − 𝑎1𝑛 )𝑥
𝑎11 𝑎11 𝑎11 𝑛
𝑎21
= 𝑏21 − 𝑏11
𝑎11
𝑎 𝑎21
Luego se puede expresar como: 𝑎′22 = (𝑎22 − 𝑎12 𝑎21 ) 𝑎′ 23 = (𝑎23 − 𝑎13 )
11 𝑎11

𝑎′𝑖𝑗 indica que el elemento ha cambiado su nuevo valor original.


𝑎
Para eliminar la fila 3 el factor debe ser 𝑎31 por lo que los elementos de la fila 3
11
quedarían:

𝑎31
𝑎′32 = (𝑎32 − 𝑎12 )
𝑎11
𝑎31
𝑎′ 33 = (𝑎33 − 𝑎12 )
𝑎11

𝑎31
𝑎′3𝑗 = (𝑎3𝑗 − 𝑎12 )
𝑎11
Al terminar el proceso la matriz quedaría:

𝑎11 𝑥1 + 𝑎12 𝑥2 + 𝑎13 𝑥3 + 𝑎14 𝑥4 … . 𝑎1𝑛 𝑥𝑛 = 𝑏11 (1)


0 + 𝑎′22 𝑥2 + 𝑎′23 𝑥3 + 𝑎′24 𝑥4 … . 𝑎′2𝑛 𝑥𝑛 = 𝑏′21
0 + 𝑎′32 𝑥2 + 𝑎33 𝑥3 + 𝑎34 𝑥4 … . 𝑎3𝑛 𝑥𝑛 = 𝑏′31
.
.
0 + 𝑎′𝑛2 𝑥2 + 𝑎′𝑛3 𝑥3 + 𝑎′𝑛4 𝑥4 … . 𝑎′𝑛𝑛 𝑥𝑛 = 𝑏′𝑛1
𝑎 𝑎
En general cada elemento 𝑎′𝑖𝑗 = 𝑎𝑖𝑗 − 𝑎1,𝑗 𝑎 𝑖,1 y 𝑏′𝑖1 = 𝑏𝑖1 − 𝑏1,𝑗 𝑎 𝑖,1
1,1 1,1
Lo siguiente es eliminar la segunda variable a partir de la fila 3, para eso se debe
𝑎′
multiplicar el nuevo elemento 𝑎′2,2 por el factor 𝑎′3,2 y restar a la fila 3.
2,2
𝑎′3,2
𝑎′′(3,3) = 𝑎′(3,3) − 𝑎′(2,3)
𝑎′2,2
𝑎′3,2
𝑎′′(3,4) = 𝑎′(3,4) − 𝑎′(2,4)
𝑎′2,2
Se repite el proceso hasta terminar todas las filas, en general los segundos términos
quedan:

𝑎′𝑖,2
𝑎′′(𝑖,𝑗) = 𝑎′(𝑖,𝑗) − 𝑎′(2,𝑗)
𝑎′2,2
Y así sucesivamente hasta llegar a eliminar (n-1) incógnitas.

Iter Factor del Valor de 𝑎′′(𝑖,𝑗) Valor de 𝑏(𝑖,𝑗)


(‘) pivoteo fila i
1 (‘) 𝑎𝑖,1 𝑎 𝑎𝑖,1
𝑎′𝑖𝑗 = 𝑎𝑖𝑗 − 𝑎1,𝑗 𝑎 𝑖,1 𝑏′(𝑖,𝑗) = 𝑏(𝑖,𝑗) − 𝑏(1,1)
𝑎1,1 1,1 𝑎1,1
2 (‘’) 𝑎′𝑖,2 𝑎′𝑖,2 𝑎𝑖,2
𝑎′′(𝑖,𝑗) = 𝑎′(𝑖,𝑗) − 𝑎′(2,𝑗) 𝑏′′(𝑖,𝑗) = 𝑏′(𝑖,𝑗) − 𝑏′(2,1)
𝑎′2,2 𝑎′2,2 𝑎2,2
3(‘’’) 𝑎′′𝑖,3 𝑎′′𝑖,3 𝑎𝑖,3
𝑎′′′(𝑖,𝑗) = 𝑎′′(𝑖,𝑗) − 𝑎′′(3,𝑗) 𝑏′′′(𝑖,𝑗) = 𝑏′′(𝑖,𝑗) − 𝑏′′(3,1)
𝑎′′3,3 𝑎′′3,3 𝑎3,3

El código sería el siguiente:

función [x,y]=norma(A,B)
%A es la matriz de coeficientes y B la matriz de respuesta
n=size(A);
if n(1,1)~=n(1,2)
break
else for k=1:n(1,1)-1 %Contador de primas
for i=k+1:n(1,1) %Contador de filas
fac=A(i,k)/A(k,k);
for j=k:n(1,1)
A(i,j)=A(i,j)-A(k,j)*fac;
end
B(i,1)=B(i,1)-B(k,1)*fac;
end
end
x=A;
y=B;
end
end

𝟐, 𝟒, 𝟑 −𝟏
Practica 1 Determinar la matriz triangular superior de 𝑨 = [−𝟏, 𝟑, 𝟒] 𝑩 = [ 𝟑 ]
𝟗, 𝟑, 𝟒 𝟒
A=[2,4,3;-1,3,4;9,3,4];
--> B=[-1;3;4];
--> [x,y]=norma(A,B)
x=
2.0000 4.0000 3.0000
0 5.0000 5.5000
0 0 7.0000
y=
-1.0000
2.5000
16.0000
Sustituciones de hacia atrás:

Cuando la matriz se normaliza después de eliminar todas las variables queda la


matriz triangular superior:

𝑎11 𝑥1 + 𝑎12 𝑥2 + 𝑎13 𝑥3 + 𝑎14 𝑥4 … . 𝑎1𝑛 𝑥𝑛 = 𝑏11 (1)


0 + 𝑎′22 𝑥2 + 𝑎′23 𝑥3 + 𝑎′24 𝑥4 … . 𝑎′2𝑛 𝑥𝑛 = 𝑏′21
0 + 0 + 𝑎′′33 𝑥3 + 𝑎′′34 𝑥4 … . 𝑎′′3𝑛 𝑥𝑛 = 𝑏′′31
0 + 0 + 0 + 𝑎′′′4,4 𝑥4 … . 𝑎′′′4𝑛 𝑥𝑛 = 𝑏′′′41

.
.
0 + 0 + 0 + 0 … . 𝑎𝑛−1 𝑛𝑛 𝑥𝑛 = 𝑏 𝑛−1 𝑛1

Para un sistema de 4 ecuaciones nos quedaría:

𝑎11 𝑥1 + 𝑎12 𝑥2 + 𝑎13 𝑥3 + 𝑎14 𝑥4 = 𝑏11


0+ 𝑎′22 𝑥2 + 𝑎′23 𝑥3 + 𝑎′24 𝑥4 = 𝑏′21
0+ 0 + 𝑎′′33 𝑥3 + 𝑎′′34 𝑥4 = 𝑏′′31
0+0+0+ 𝑎′′′34 𝑥4 = 𝑏′′′41

De la última ecuación se puede despejar la última variable:


𝑏 ′′′
𝑥4 = 𝑎′′′41 Se puede sustituir este resultado en la penúltima ecuación y así despejar
44
la incógnita 𝑥3
𝑎′′33 𝑥3 + 𝑎′′34 𝑥4 = 𝑏′′31
Despejando 𝑥3

𝑎′′33 𝑥3 + 𝑎′′ 34 𝑥4 = 𝑏′′31

𝑏′′31 − 𝑎′′ 34 𝑥4
𝑥3 =
𝑎′′33
Luego despejando 𝑥2 𝑎′22 𝑥2 + 𝑎′23 𝑥3 + 𝑎′24 𝑥4 = 𝑏′21

𝑏′21 − (𝑎′ 23 𝑥3 + 𝑎′ 24 𝑥4 )
𝑥2 =
𝑎′22
𝑏 𝑖−1 (𝑖)−∑𝑛
𝑘=𝑖+1 𝑎
𝑖−1 (𝑖,𝑘)𝑥
𝑘
En general 𝑥𝑖 =
𝑎𝑖−1 (𝑖,𝑖)

El código será el siguiente.


función X = sustitucion(A,B)
m=size(B);
n=m(1,1);
X(n)=B(n,1)/A(n,n);
for i=n-1:-1:1
sum=0;
for k=i+1:n
sum=sum+A(i,k)*X(k);
end
X(i)=(B(i,1)-sum)/A(i,i);
End

𝟐, 𝟒, 𝟑 𝒙𝟏 −𝟏
Determinar la solución del sistema [−𝟏, 𝟑, 𝟒] [𝒙𝟐 ] = [ 𝟑 ]
𝟗, 𝟑, 𝟒 𝒙𝟑 𝟒
A=[2,4,3;-1,3,4;9,3,4];
B=[-1;3;4];
[x,y]=norma(A,B)
x=
2.0000 4.0000 3.0000
0 5.0000 5.5000
0 0 7.0000
y=
-1.0000
2.5000
16.0000
--> px=sustitucion(x,y)
px =
0.1000 -2.0143 2.2857
Se puede comparar con los métodos anteriores:
inv(A)*B
ans =
0.1000
-2.0143
2.2857
--> A\B
ans =
0.1000
-2.0143
2.2857

También podría gustarte